tikzpicture - 矩阵行中的边缘未对齐| 错误?

tikzpicture - 矩阵行中的边缘未对齐| 错误?

相当简单的问题。在下面的 MWE 中,我试图在图中绘制 2 个节点,每个节点之间都有边,一个节点进入第一个标记节点,一个节点离开最后一个标记节点。为了生成进入和离开的边,我在矩阵中创建了 2 个空元素(每个端点一个)。虽然一切都正常,但如果你看下面的图片,

在此处输入图片描述

进入节点 (1) 的第一条边、连接 (1) 和 (2) 的边以及离开节点 (2) 的最后一条边未对齐。看起来(对我和我问过的其他人而言)进入/离开图的边略微“倾斜”。

有 Bug 吗?或者我遗漏了什么...(也许有更简单的方法可以完成我想做的事情)。

 \documentclass{article}

 \usepackage{tikz}
   \usetikzlibrary{decorations,shapes,arrows,matrix,positioning,fit}

 \begin{document}

 \begin{figure}[h]
 \centering
 \begin{tikzpicture}[>=stealth,->,shorten >=1.5pt,transform canvas={scale=1.05},line 
 width=1.0pt]
 \matrix (a) [matrix of nodes,row sep=0.5em, column sep=7em, every node/.style= 
 {circle,draw,font=\small\sffamily,minimum width=1.25cm},
 n.node/.style={font=\bf\small\sffamily},
 empty.node/.style={draw=none,minimum width=1.5cm}]
 { |[empty.node]| & [-2em]|[n.node]|$N_1$  & |[n.node]|$N_2$ & [-2em]|[empty.node]|\\};]
 \path[>=stealth,font=\small] (a-1-2) edge  (a-1-3);
 \path[>=stealth,->,font=\small] (a-1-1) edge (a-1-2) ;
 \path[>=stealth,->,font=\small] (a-1-3) edge (a-1-4) ;
 \end{tikzpicture}
 \end{figure}

 \end{document}

答案1

我认为没有什么错误,你错过了这个:

在此处输入图片描述

如果添加anchor=center样式,every node则对齐是正确的。

答案2

正如@Torbjørn T. 指出的那样,修复了问题。为了进行比较,下面是使用而不是 的anchor=center同一幅图像,其代码略微简单一些。tikz-cdmatrix

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}
 
\begin{tikzcd}[cells={nodes={draw, line width=1pt, circle, minimum size=1.25cm, anchor=center}}, 
    column sep=7em, arrows={line width=1pt, >=stealth,->,shorten >=1.5pt}]
|[draw=none]|\arrow[r] &[-2em] N_1\arrow[r] & N_2\arrow[r] &[-2em] |[draw=none]|
\end{tikzcd}
 
\end{document}

相关内容