を使用して次の例から PDF を作成するとpdflatex
、Adobe Reader と TeXworks で異なる結果が得られます。これは、Reader が不透明度/透明度を処理する方法のバグだと思います。
私の目標は、黒いノードと各エッジの間に小さなスペースを設けることです (TeXworks がレンダリングする方法のように)。そのためには、各ノードに黒い塗りつぶしとcolor=transparent
/エッジを設定します。opacity=0
一貫した結果を得るための良い回避策を提案してくれる人はいませんか? この問題に悩まされている多くの木をレンダリングしようとしているのですが、エッジとノードの間のスペースを白ではなく透明にしたいと思っています。
完全に透明なノードを描画し、その上に小さな黒いノードを描画できるかもしれません。これをスタイルの一部として自動化できますかstate
? または、すべてのエッジの開始と終了の間にギャップを設定できますか? (どのように実行すればよいですか?)
\documentclass{article}
\usepackage{tikz}
\tikzstyle{lts}=[
state/.style={circle,draw,minimum size=4pt,inner sep=0pt,line width=2pt,draw opacity=0,color=transparent,fill=black},
edge from parent/.style={-stealth,draw},
obs/.style={edge from parent/.style={-stealth,draw,very thick}},
]
\begin{document}
\begin{tikzpicture}[lts]
\node[state] {}
child[obs] {node[state] {}
edge from parent node {}}
child[obs] {node[state] {}
edge from parent node {}};
\end{tikzpicture}
\end{document}
TeXworks と Reader でのレンダリングを比較します。
答え1
draw=none
の代わりにを使用するとcolor=transparent
、Acrobat で適切に表示されるようです。左側の画像は を使用したものでcolor=transparent
、右側の画像は を使用した場合draw=none
の Acrobat での表示です。
ノート:
- 代わり
tikzset
に使用しましたtikzstyle
TikZ スタイルを定義するには、\tikzset または \tikzstyle を使用する必要がありますか?
コード:
\documentclass{article}
\usepackage{tikz}
\tikzstyle{lts}=[
state/.style={circle,draw,minimum size=4pt,inner sep=0pt,line width=2pt,draw opacity=0,color=transparent,fill=black},
edge from parent/.style={-stealth,draw},
obs/.style={edge from parent/.style={-stealth,draw,very thick}},
]
\tikzset{MyState/.style={circle,draw,minimum size=4pt,inner sep=0pt,line width=2pt,draw opacity=0,draw=none,fill=black}}
\tikzset{MyObs/.style={edge from parent/.style={-stealth,draw,very thick}}}
\begin{document}
\begin{tikzpicture}[lts]
\node[state] {}
child[obs] {node[state] {}
edge from parent node {}}
child[obs] {node[state] {}
edge from parent node {}};
\end{tikzpicture}%
\begin{tikzpicture}
\node[MyState] {}
child[MyObs] {node[MyState] {}
edge from parent node {}}
child[MyObs] {node[MyState] {}
edge from parent node {}};
\end{tikzpicture}
\end{document}