相当简单的问题。在下面的 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
答案2
正如@Torbjørn T. 指出的那样,修复了问题。为了进行比较,下面是使用而不是 的anchor=center
同一幅图像,其代码略微简单一些。tikz-cd
matrix
\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}