web-dev-qa-db-ja.com

ノードラベル上の下付き文字と上付き文字の配置を改善する

ノードラベルに下付き文字と上付き文字の両方を使用する場合、それらが互いに直接上になるように位置を変更することができます。

例:

digraph G {
        x11[label=<X<SUB>1</SUB><SUP>(1)</SUP>>];   
        x21[label=<X<SUB>2</SUB><SUP>(1)</SUP>>];
        x11 -> x21 
    }

どれが

enter image description here

(#)を少し右ではなく#の真上に置くことは可能ですか?ありがとう


stylesheet = "styles.css";を使用してcssスクリプトにカスタムdotスクリプト(re: HTML:上付き文字のすぐ下に下付きテキストを配置できますか? )を追加しようとしました(re: GraphvizのHTMLラベルでCSSクラスを使用 )ただし、エラーが返されます

エラー:1行目の不明なHTML要素<span>

30
user2957945

GraphvizのネイティブHTMLのようなノードレンダリングは非常に制限されています。 Graphvizのドキュメントはこれを明確に述べています。私はあなたが望むことをするためにそれを同軸化する方法があるとは信じていません。たとえば、微調整する方法がある場合でも<table>定義すると、結果が悪く見える可能性があります。

したがって、 dot2tex を参照することをお勧めします。その全体的な目的は、ノードをレンダリングするためのLaTeXの全機能を可能にすることです。セットアップは簡単ではありませんが、結果はそれだけの価値があります。

これはページです LaTeX-set mathをノードに含むグラフの例を示します。

あなたは出力がどうあるべきかを言っていませんでした。しかし、LaTeXをさまざまな形式に変換する方法があります。最も簡単なのはPostscriptとPDFです。しかし、画像フォーマットも可能です。

追加

さて、私はdot2texをインストールしました、そしてここに結果があります:

GraphViz graph with stacked subscripts under superscripts

これは対応するdotコードです:

digraph G {
  a_1 [texlbl="$X_{1}^{(1)}$"];
  a_2 [texlbl="$X_{1}^{(2)}$"];
  a_3 [texlbl="$X_{1}^{(3)}$"];
  a_1-> a_2 -> a_3 -> a_1;
}

でコンパイルしました

$ dot2tex foo.gv -f tikz > foo.tex
$ pdflatex foo.tex

すでにLaTeXを使用しているため、これを調整して、問題なく正確な要件を満たすことができます。

9
Gene

Graphvizのドキュメントによれば、それらの 'HTML-Like Labels' にはspan要素が含まれておらず、font-stylingタグはスタイル属性(またはその他)を許可していません。

<SUB
  <!-- No attributes -->
>

<SUP
  <!-- No attributes -->
>

正確なテキストレイアウトの2つの最適なオプションは次のようです。

1)HTMLのようなテーブルでラベルを使用します。これにより、カスタムのスタイル設定が可能になります(垂直に配置されたテキストをとにかくうまく処理します)。

x11[label=<
    <TABLE border="0" cellborder="0" cellspacing="0">
    <TR><TD rowspan="2" style="...">X</TD><TD style="...">(1)</TD></TR>
    <TR>                                  <TD style="...">1</TD></TR>
    </TABLE>>];

2)PostScriptドライバーを使用している場合、 ノード生成を完全にオーバーライド し、希望どおりに描画するpsファイルを提供します。

4
gz.

おそらく、独自のmakeシステム、潜在的なセキュリティの問題、独自のフォントと色の名前の管理、共有文字列、C++コンパイラの依存関係を持つ、より強力なHTMLレンダラー(私はlitehtmlとsciterに気づきました)を導入できます。メモリリーク、たとえばlitehtmlはわずか16K行のコードで、最近はほとんどメーターを動かしませんが、graphvizのビルドがLinuxカーネルよりも難しいというツイートを見ると、いつも少し罪悪感を感じます。スティーブンノース

4