改善此表的列间距

改善此表的列间距

我正在尝试美化这张表的外观:

\begin{tabular}{rr@{\hspace{2em}}rr@{\hspace{2em}}rr@{\hspace{2em}}rr}
\toprule
\multicolumn{2}{c@{\hspace{2em}}}{\textbf{Word C}}&
\multicolumn{2}{c@{\hspace{2em}}}{\textbf{Char C}}&
\multicolumn{2}{c@{\hspace{2em}}}{\textbf{Chess}}&
\multicolumn{2}{c}{\textbf{Matching}}\\
\multicolumn{2}{c@{\hspace{2em}}}{\textbf{9 trials}}&
\multicolumn{2}{c@{\hspace{2em}}}{\textbf{9 trials}}&
\multicolumn{2}{c@{\hspace{2em}}}{\textbf{12 trials}}&
\multicolumn{2}{c}{\textbf{12 trials}}\\
$N$&$V$&$N$&$V$&$N$&$V$&$N$&$V$\\
\midrule
10 &  1 & 12 &  3 & 16 &  3 & 4 & 0 \\
10 &  1 & 12 &  6 & 16 &  3 & 4 & 0 \\
10 &  1 & 12 &  9 & 16 &  5 & 4 & 1 \\
10 &  2 & 24 &  6 & 16 &  5 & 4 & 1 \\
% ... many more rows ...
\bottomrule
\end{tabular}

这是目前的样子。最大的问题是每个列和相应的列,并且该空间在四个组之间大小可变。

呈现的前四行的屏幕截图

我想要的是每个之间有一个固定的、较小的距离列和相应的列;组标题之间的距离更大;并且 N/V 列对应位于其标题下方的中央。每列中的数字应继续右对齐。我该如何实现这一点?

注意:所有省略的行都只包含数字,没有三位数或更大的数字。

答案1

这是一个并不完全令人满意的解决方案。

\documentclass{article}
\usepackage{booktabs}
\newcommand\clap[1]{\hbox to0pt{\hss#1\hss}}
\newcommand\MC[1]{%
        \multicolumn{2}{c@{\hspace{2em}}}{\clap{\textbf{#1}}}%
}
\begin{document}
\begin{tabular}{rr@{\hspace{2em}}rr@{\hspace{2em}}rr@{\hspace{2em}}rr}
\toprule
\MC{Word C}&
\MC{Char C}&
\MC{Chess}&
\MC{Matching}\\
\MC{9 trials}&
\MC{9 trials}&
\MC{12 trials}&
\MC{12 trials}\\
$N$&$V$&$N$&$V$&$N$&$V$&$N$&$V$\\
\midrule
10 &  1 & 12 &  3 & 16 &  3 & 4 & 0 \\
10 &  1 & 12 &  6 & 16 &  3 & 4 & 0 \\
10 &  1 & 12 &  9 & 16 &  5 & 4 & 1 \\
10 &  2 & 24 &  6 & 16 &  5 & 4 & 1 \\
% ... many more rows ...
\bottomrule
\end{tabular}
\end{document}

在此处输入图片描述

答案2

\documentclass{article}

\usepackage{array,booktabs,ragged2e}
\newcommand\MC[1]{\multicolumn{2}{@{}l}{\textbf{#1}}}

\def\SP{\hspace{15mm}}
\begin{document}

\begin{tabular}{@{} rl @{\SP} rl @{\SP} rl @{\SP} rl@{}}\toprule
\MC{Word C}  &\MC{Char C}  &\MC{Chess}    &\MC{Matching}\\
\MC{9 trials}&\MC{9 trials}&\MC{12 trials}&\MC{12 trials}\\
$N$&$V$&$N$&$V$&$N$&$V$&$N$&$V$\\\midrule
 10 &  1 & 12 &  3 & 16 &  3 & 4 & 0 \\
 10 &  1 & 12 &  6 & 16 &  3 & 4 & 0 \\
 10 &  1 & 12 &  9 & 16 &  5 & 4 & 1 \\
 10 &  2 & 24 &  6 & 16 &  5 & 4 & 1 \\
% ... many more rows ...
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

答案3

这是一个普通版本,你可以根据自己的喜好更改\groupheadingskip\columnsepskip

\documentclass{article}
\newskip\groupheadingskip \groupheadingskip=2em
\newskip\columnsepskip    \columnsepskip=1em
\newskip\rowsepskip       \rowsepskip=3pt
\def\header#1{\multispan2\hidewidth\bf#1\hidewidth}
\begin{document}
\begin{table}
\vbox{\openup\rowsepskip\hrule height 1pt \medskip
  \divide\groupheadingskip by 2
  \halign{&\tabskip\columnsepskip\hskip\groupheadingskip\hfil$#$&
    \hfil$#$\hskip\groupheadingskip\cr
    \header{Word C}&  \header{Char C}&  \header{Chess}&    \header{Matching}\cr
    \header{9 trials}&\header{9 trials}&\header{12 trials}&\header{12 trials}\cr
    N&V&   N&V&   N&V&   N&V\cr
    \noalign{\smallskip\hrule\medskip}
    10&1&  12&3&  16&3&  4&0\cr
    10&1&  12&6&  16&3&  4&0\cr
    10&1&  12&9&  16&5&  4&1\cr
  }
  \medskip \hrule height 1pt
}
\end{table}
\end{document}

代码输出

答案4

毫不奇怪(正如我所写),我会使用siunitx像这样的数字表。对我来说

\documentclass{article}
\usepackage{booktabs,siunitx}
\begin{document}
\sisetup{table-format=2.0}
\begin{tabular}{SSSSSSSS}
\toprule
\multicolumn{2}{c}{\textbf{Word C}}&
\multicolumn{2}{c}{\textbf{Char C}}&
\multicolumn{2}{c}{\textbf{Chess}}&
\multicolumn{2}{c}{\textbf{Matching}}\\
\multicolumn{2}{c}{\textbf{9 trials}}&
\multicolumn{2}{c}{\textbf{9 trials}}&
\multicolumn{2}{c}{\textbf{12 trials}}&
\multicolumn{2}{c}{\textbf{12 trials}}\\   $N$&$V$&$N$&$V$&$N$&$V$&$N$&$V$\\
\midrule
10 &  1 & 12 &  3 & 16 &  3 & 4 & 0 \\
10 &  1 & 12 &  6 & 16 &  3 & 4 & 0 \\
10 &  1 & 12 &  9 & 16 &  5 & 4 & 1 \\
10 &  2 & 24 &  6 & 16 &  5 & 4 & 1 \\    % ... many more rows ...
\bottomrule
\end{tabular}

\end{document}

看起来不错。我不太清楚你所说的间距是什么意思:LaTeX 包含一些列间空间作为标准,对我来说,表格看起来可读性很好,无需添加额外的空间。

作为参考,我得到的是 使用 siunitx 的表

相关内容