
すべてのエッジに矢印がある図を作成したいと思います。tikz\draw
でエッジを作成すると、奇妙なことが起こります。「同じ」コードで異なる結果が生成されます。
コード
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,
auto,node distance=3.5cm, thick,node/.style={circle,draw}]
\node[node] (L) {Lousy};
\node[node] (R) [right of=L] {Right};
\draw
(L) to [in=300, out=240, looseness=3] node [below] {A} (L)
(R) to [in=300, out=240, looseness=3] node [below] {A, B, C} (R)
;
\end{tikzpicture}
結果
観察
左側には矢印がありませんが、右側には矢印があります。ただし、エッジを描画する関数呼び出しは同じであるようです。
私は tikz を使い始めたばかりで、これを修正する方法が全く分かりません。なぜこのようなことが起こるのか、またどのように修正するのかについて、何かご意見があれば、ぜひ教えてください。
答え1
2 つの\draw
コマンドが必要です。->
周囲のオプションの中からtikzpicture
:
\draw
(L) to [in=300, out=240, looseness=3] node [below] {A} (L)
;
\draw
(R) to [in=300, out=240, looseness=3] node [below] {A, B, C} (R)
;
詳細はpgf/TikZ マニュアル, 「16.2 矢印の先端が配置される場所とタイミング」。
答え2
矢印ごとに 1 つずつ、2 つの別々のパスを使用する必要があります。
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,
auto,node distance=3.5cm, thick,node/.style={circle,draw}]
\node[node] (L) {Lousy};
\node[node] (R) [right of=L] {Right};
\draw
(L) to [in=300, out=240, looseness=3] node [below] {A} (L);
\draw
(R) to [in=300, out=240, looseness=3] node [below] {A, B, C} (R);
\end{tikzpicture}
1 つのパスに保持したい場合は、edge
の代わりに 操作を使用しますto
。
\draw
(L) edge [in=300, out=240, looseness=3] node [below] {A} (L)
(R) edge [in=300, out=240, looseness=3] node [below] {A, B, C} (R)
;