带有 TikZ 边缘和锚点的奇怪箭头标记。

带有 TikZ 边缘和锚点的奇怪箭头标记。

当我使用锚点和全局设置选项在两个节点之间绘制一条边时[->],我在路径中最后一条边的开头获得了一个额外的箭头符号。例如在

\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而不是edgelike \draw[->] (A.north east) to (B.north west);。我遇到过类似的情况,并且to对我有用。

相关内容