Tikz 矩阵中不同长度的文本节点的水平对齐方式(如 Tex 表格中)

Tikz 矩阵中不同长度的文本节点的水平对齐方式(如 Tex 表格中)

在 中tablular,我们使用{r|c|l}来定义对齐。 是否有类似的内容Tikz matrix。例如,通过使用matrix,以下 MWE 生成节点矩阵,这些节点似乎对每列都居中对齐。

不过,我希望节点在第一列右对齐,中间一列居中对齐,而第三列左对齐。我该如何实现这个目标?(另请注意,节点可能有不同的样式)

\documentclass[border=5pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}[align=center]
\matrix[matrix of nodes,row sep=0.5cm,column sep=2cm,
    nodes={rectangle, draw}]{
col1 & col2 & col3 \\
col111111111 & col2222222222 & col33333\\
col1111 & col22222 & col3333333333 \\
};

\end{tikzpicture}
\end{document}

结果是:

在此处输入图片描述

答案1

Tikz 矩阵定义了样式column X,允许为不同的列传递单独的选项(在本例中为锚点)。记录中,样式row X与行的样式相同,您可以将两者结合起来以引用特定单元格。

\documentclass[border=5pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}[align=center]
  \matrix[matrix of nodes,row sep=0.5cm,column sep=2cm,
    nodes={rectangle, draw},
    column 1/.style={anchor=base east},
    column 2/.style={anchor=base},
    column 3/.style={anchor=base west}
  ]{
    col1 & col2 & col3 \\
    col111111111 & col2222222222 & col33333\\
    col1111 & col22222 & col3333333333 \\
  };

\end{tikzpicture}
\end{document}

在此处输入图片描述

更多信息请访问pgfmanual(第 17.3.3 节)。

相关内容