我正在尝试美化这张表的外观:
\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 包含一些列间空间作为标准,对我来说,表格看起来可读性很好,无需添加额外的空间。
作为参考,我得到的是