当我使用锚点和全局设置选项在两个节点之间绘制一条边时[->]
,我在路径中最后一条边的开头获得了一个额外的箭头符号。例如在
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) at (0,0) {$A$};
\node (B) at (1,0) {$B$};
\draw[->] (A.north east) edge (B.north west);
\draw (A.south east) edge[->] (B.south west);
\end{tikzpicture}
\end{document}
第一个\draw
命令产生不正确的输出,而第二个命令产生正确的输出:
是我做错了什么,还是这是 TikZ 的一个错误?
答案1
这与您使用有关\draw
,而edge
通常与一起使用\path
。
使用该edge
操作时,TikZ 首先将所有内容绘制到edge
关键字,然后every edge
使用操作中指定的节点/坐标之间的样式开始一条新路径edge
。因此,使用edge
本质上将您的\draw
命令分为两部分:
\draw[->] (A.north east) edge (B.north west);
相当于说
\draw[->] (A.north east);
\path[every edge,->] (A.north east) -- (B.north west);
第一行只会创建向上的箭头,而第二行则会创建带有箭头的实际线。
您的例子可以这样纠正:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) at (0,0) {$A$};
\node (B) at (1,0) {$B$};
\path[->] (A.north east) edge (B.north west);
\draw (A.south east) edge[->] (B.south west);
\end{tikzpicture}
\end{document}
答案2
尝试使用to
而不是edge
like \draw[->] (A.north east) to (B.north west);
。我遇到过类似的情况,并且to
对我有用。