我使用一个固定节点宽度的矩阵进行节点定位。但是,由于某些节点包含多行文本,因此某些节点在 y 轴上发生了偏移,我不知道为什么或如何修复此问题。节点内部在 y 轴上似乎有足够的空间。我还连接了一些节点,结果图片很丑。
MWE 显示了这种行为:
\documentclass[tikz]{standalone}
\usetikzlibrary{matrix,fit}
\begin{document}
\begin{tikzpicture}
\matrix (m) [%
matrix of nodes,%
nodes in empty cells,%
nodes={rectangle, draw ,align=center,minimum height=1.5cm, text width=3.5cm,font=\scriptsize, inner sep= 0cm, outer sep= 0cm, fill=white},%
column sep=.5cm,%
row sep=.5cm,%
anchor=center
]%
{
&{Two\\line\\breaks}&{One line}&& \\
{One\\linebreak}&&&& \\
&&&{Two\\line\\break}& \\
&&One&& \\
};
\foreach \row/\rownext in {1/2,2/3,3/4,4/4}
{
\foreach \col/\colnext in {1/2,2/3,3/4,4/5,5/5}
{
\draw(m-\row-\col) to (m-\row-\colnext);
\draw(m-\row-\col) to (m-\rownext-\col);
}
}
\end{tikzpicture}
\end{document}
图片或结果:
答案1
您只需添加anchor=center
到节点。您只是将此选项添加到矩阵(节点),而不是添加到矩阵内的节点。笔记:这个问题已经有人问过了这里。在写答案的时候我并不知道这一点。
\documentclass[tikz]{standalone}
\usetikzlibrary{matrix,fit}
\begin{document}
\begin{tikzpicture}
\matrix (m) [%
matrix of nodes,%
nodes in empty cells,%
nodes={rectangle, draw ,align=center,minimum height=1.5cm, text
width=3.5cm,font=\scriptsize, inner sep= 0cm, outer sep= 0cm,
fill=white,anchor=center},%
column sep=.5cm,%
row sep=.5cm,%
anchor=center
]%
{
& {Two\\ line \\breaks} & {One line} && \\
{One\\linebreak}&&&& \\
&&&{Two\\line\\breaks}& \\
&&One&& \\
};
\foreach \row/\rownext in {1/2,2/3,3/4,4/4}
{
\foreach \col/\colnext in {1/2,2/3,3/4,4/5,5/5}
{
\draw(m-\row-\col) to (m-\row-\colnext);
\draw(m-\row-\col) to (m-\rownext-\col);
}
}
\end{tikzpicture}
\end{document}