使 tikz 矩阵的列具有相同的宽度,行具有相同的高度(最大单元格)

使 tikz 矩阵的列具有相同的宽度,行具有相同的高度(最大单元格)
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[align=left, text ragged, transform shape]
  \matrix [matrix of math nodes, every node/.style={font=\ttfamily, scale = 1, inner sep = 10pt},
        column 1/.style={align=left},
        nodes={font=\ttfamily, draw, left, minimum height=3em},
        row 1/.style={nodes={align=center}},
        ]
  {
    AAAA & BBB & CCCCCC\\
    EE & F & GGG \\
    aaaaa & bbbbb & c\\
  };
\end{tikzpicture}
\end{document}

每个单元格周围的每个矩形框大小不同因为每个单元格的宽度和高度都不同。我希望单元格的宽度为列的最大宽度(即该列中最大单元格的宽度),同样,为行的高度。这样,矩形的大小正确,文本居中即可按预期工作。

我不想对尺寸进行硬编码,因为我事先不知道尺寸会是多少,而且这可能需要进行调整才能正确......而且无论如何都需要做大量工作。

另一个例子来自

tikz 矩阵中的垂直对齐

但就我而言,我希望问题单元格实际上扩展同一行中所有其他单元格的高度(因此第三行的高度约为其他行的 1.5 倍(或其他值)。不过,同样,这些值应该自动计算,而不是尝试手动确定。

答案1

matrixcells您可以使用Andrew Stacey 制作的优秀软件包可在启动板上

\documentclass{article}
\usepackage{tikz, matrixcells}
\usetikzlibrary{matrix}
\begin{document}

\begin{tikzpicture}
  \matrix [
    matrix of nodes, 
    matrix grid,
    matrix border,
    nodes={font=\ttfamily}
]
  {
    AAAA & BBB & CCCCCC\\
    EE & F & GGG \\
    aaaaa & b & c\\
  };
\end{tikzpicture}
\end{document}

相关内容