评论

评论

我正在尝试使用 TikZ 创建一个表

  1. 第一列右对齐,并且每个单元格中的文本位于同一行
  2. 其余列居中对齐,每列宽度为 1cm

我的尝试如下:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
  \matrix(dict)[matrix of nodes,below=of game,
    nodes={align=center,text width=1cm},
    row 1/.style={anchor=south},
    column 1/.style={text width=2cm,align=right},
  ]{
    meaning & $b_1$ & $b_2$ & $b_3$ & $b_1b_2$ & $b_1b_3$ & $b_2b_3$ & $b_1b_2b_3$\\
    common list \\
    private list\\
  };
  \draw(dict-1-1.south west)--(dict-1-8.south east);
  \draw(dict-1-1.north east)--(dict-3-1.south east);
\end{tikzpicture}

\end{document}

在此处输入图片描述

输出结果并不理想,因为单元格dict-2-1和中的文本分布在两行中。此外,尽管在之后指定了dict-3-1第 1 列中的文本,但它并未右对齐。column 1/.stylenode/.style

我应该怎么办?

答案1

评论

这只是@Qrrbrbirlbel的评论已转化为答案。

执行

\documentclass[tikz]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
    \matrix(dict)[matrix of nodes,%below=of game,
        nodes={align=center,text width=1cm},
        row 1/.style={anchor=south},
        column 1/.style={nodes={text width=2cm,align=right}}
    ]{
        meaning & $b_1$ & $b_2$ & $b_3$ & $b_1b_2$ & $b_1b_3$ & $b_2b_3$ & $b_1b_2b_3$\\
        common list \\
        private list\\
    };
    \draw(dict-1-1.south west)--(dict-1-8.south east);
    \draw(dict-1-1.north east)--(dict-3-1.south east);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容