4

Graphviz を起動して動作させようとしていますが、ノード ラベルに下付き文字がどうしても必要です。残念ながら、似たような問題を抱えている人々との果てしない投稿を見ると、私は提案されたすべての解決策に適合しているように見えますが、まだ機能していません。私がコードのために持っているものは次のとおりです。

 digraph G{
execute [label=<ex<SUB>2</SUB>>];
main -> parse -> execute;
main -> init;
main -> cleanup;
init -> make_string;
main -> printf;
}

これも実行します:

$ dot -Tps:cairo -v test.gv -o out.ps

そして出力として:

> dot - graphviz version 2.26.3 (20100126.1600)
Activated plugin library: libgvplugin_pango.so.6
Using textlayout: textlayout:cairo
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
Using render: cairo:cairo
Using device: ps:cairo:cairo
The plugin configuration file:
    /usr/lib/graphviz/config6
        was successfully loaded.
    render  :  cairo dot fig gd map ps svg tk vml vrml xdot
    layout  :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device  :  canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pdf plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml wbmp x11 xdot xlib
    loadimage   :  (lib) eps gd gd2 gif jpe jpeg jpg png ps svg
Error: Unknown HTML element <SUB> on line 1 
fontname: "Times-Roman" resolved to: (ps:pango  Times Roman,) (PangoCairoFcFont) "DejaVu Sans 14" 
in label of node execute
network simplex:  7 nodes 6 edges maxiter=2147483647 balance=1
network simplex: 7 nodes 6 edges 0 iter 0.00 sec
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross G: 0 crossings, 0.00 secs.
network simplex:  13 nodes 16 edges maxiter=2147483647 balance=2
network simplex: 13 nodes 16 edges 1 iter 0.00 sec
routesplines: 6 edges, 18 boxes 0.00 sec
Using render: cairo:cairo
Using device: ps:cairo:cairo

私は cairo や svg renders にあまり詳しくなく、これが graphviz と一緒にパッケージ化されているのか、それとも別のライブラリでまとめられているのか、よくわかりません。apt-get経由でgraphvizをインストールしたUbuntu 12があります。どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

4

理由は次のとおりです-graphvizのドキュメントから:

太字、イタリック、下線、下付き文字、上付き文字 ( <B><I>、; および>) のフォント マークアップは<U>2011 年 10 月 14 日以降のバージョンでのみ利用可能であり、現在 cairo および svg レンダラーを介してのみ利用可能です。<SUB><SUP

あなたのバージョンは2010 年 1 月からの 2.26.3です。

アップグレードすることをお勧めします。

同様の質問に対するこの回答も参照してください

于 2013-07-24T10:00:12.773 に答える
2

もう 1 つの考えられる問題は、一部の SVG レンダラー (inkscape?) が、graphviz -Tsvg (-Tsvg:core:core) 出力の添え字に使用されるベースラインスキップ構造を認識しないように見えることです。

-Tsvg:cairo をお試しください。これは、cairo レンダラーが独自の低レベルのグリフ配置を行い、SVG の厄介な高レベル機能に依存しないため、機能する可能性があります。

スティーブン・ノース

于 2014-09-21T00:47:46.547 に答える