如何将一组节点与最宽的节点对齐

如何将一组节点与最宽的节点对齐

请考虑下图:

在此处输入图片描述

如何对齐水平文本节点,使得它们的.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}

相关内容