我想要一个图形,其中每条边都有一个箭头。当我\draw
用 tikz 画边时,发生了一些奇怪的事情:“相同”的代码会产生不同的结果。
代码
\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
\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
您应该使用两条单独的路径,每个箭头一条:
\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}
如果要将其保存在一条路径中,请使用操作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)
;