请考虑下图:
如何对齐水平文本节点,使得它们的.west
节点相对于组中最宽的节点垂直对齐?
另外,我如何添加垂直文本节点,以便它自动位于最宽的水平文本节点左侧一点?
笔记:最宽的水平文本节点必须放在网格旁边,如图所示。
以下是我的示例代码:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [thick] (0,0) grid (5,5);
\foreach \y/\text in {
1/A,
2/Two words,
3/Something longer,
4/The,
5/begininning of a sentence%
}{
\node at (0,\y) [left] {\text};
}
\node at (-3.5,2.5) [rotate=90] {\textbf{Some Label}};
\end{tikzpicture}
\end{document}
答案1
这是使用该positioning
库的一种方法。它需要明确设置偏移量。您可能会发现使用是\matrix
另一种可行的方法。
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\draw [thick] (0,0) grid (5,5);
\begin{scope}[node distance=4.1cm]
\foreach \y/\text in {
1/A,
2/Two words,
3/Something longer,
4/The,
5/begininning of a sentence%
}{
\node (A\y) [left=of {(0,\y)},anchor=west] {\text};
}
\end{scope}
\node at (-3.5,2.5) [rotate=90,left=of A3,anchor=base] {\textbf{Some Label}};
\end{tikzpicture}
\end{document}