多列标题与成对列的对齐

多列标题与成对列的对齐

所以我想制作一个表格,其中每个多列的标题代表一定的距离,子列代表与之相关的一些数值测量。

\begin{tabular}{cccc}
\centering                %% <-- Move outside tabular
\hrule                    %% <-- It is either \toprule or \hline

\multicolumn{2}{c}{290cm} & \multicolumn{2}{c}{190cm}\\
n & m & n & m\\
\cmidrule(lr){1-2}
\cmidrule(l){3-4}
14 & 100 & 6 & 50 \\
2 & 17 & 5 & 45\\
4 & 30 & & \\
9 & 80 & & \\
\end{tabular}

问题是由于某种原因,“290cm”没有作为多列标题对齐,而只是作为第二个子列的标题对齐。哪里出了问题?

答案1

\centering对我来说,如果将移出表格并更改\hrule为,它似乎可以正确编译\toprule。但是,如果使用四c列,则第二列比另一列宽,第三列稍窄。因此,第二个标题(190cm)似乎稍微偏移一点,但我认为这只是视觉错觉。也许你应该考虑使用四个固定宽度的列,就像我在测试示例中所做的那样。

在测试示例中,我设置了具有固定宽度列的表格(wc{<wd>}),以证明对齐方式正确。出于同样的原因,我添加了垂直线。它们用于说明目的,应删除:

示例 1 – 测试版本

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{array}

\begin{document}
\centering

\begin{tabular}{*{4}{wc{1cm}|}}
\toprule
\multicolumn{2}{c}{290cm} & \multicolumn{2}{c}{190cm}\\
n & m & n & m\\
\cmidrule(lr){1-2}
\cmidrule(l){3-4}
14 & 100 & 6 & 50 \\
2 & 17 & 5 & 45\\
4 & 30 & & \\
9 & 80 & & \\
\end{tabular}
\end{document}

示例 2 – 最终版本 A

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{array}

\begin{document}
\centering

%\begin{tabular}{*{4}{wc{1cm}|}}
\begin{tabular}{*{4}{c}}
\toprule
\multicolumn{2}{c}{290cm} & \multicolumn{2}{c}{190cm}\\
n & m & n & m\\
\cmidrule(r){1-2}
\cmidrule(l){3-4}
14 & 100 & 6 & 50 \\
2 & 17 & 5 & 45\\
4 & 30 & & \\
9 & 80 & & \\
\bottomrule
\end{tabular}
\end{document}

示例 3 – 最终版本 B

这是一个具有固定宽度列的版本。在获得Overfull hboxes 之前,最小宽度为 15 pt:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{array, caption}

\begin{document}

\begin{table}
\caption{A table\label{tab:a-table}}
\centering
\begin{tabular}{*{4}{Wc{15pt}}}
\toprule
\multicolumn{2}{c}{290cm} & \multicolumn{2}{c}{190cm}\\
\multicolumn{1}{c}{n} & \multicolumn{1}{c}{m} & \multicolumn{1}{c}{n} & \multicolumn{1}{c}{m}\\
\cmidrule(r){1-2}
\cmidrule(l){3-4}
14 & 100 & 6 & 50 \\
2   &  17  & 5 & 45\\
4   &  30  &    &     \\
9   &  80  &    &     \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

答案2

也用于siunitx更好地对齐图形。

\documentclass{article}
\usepackage{booktabs,siunitx}

\begin{document}

\begin{tabular}{
  S[table-format=2.0]
  S[table-format=3.0]
  S[table-format=2.0]
  S[table-format=2.0]
}
\toprule
\multicolumn{2}{c}{\SI{290}{cm}} &
\multicolumn{2}{c}{\SI{190}{cm}} \\
\cmidrule(lr){1-2} \cmidrule(lr){3-4}
{$n$} & {$m$} & {$n$} & {$m$} \\
\midrule
14 & 100 & 6 & 50 \\
2 & 17 & 5 & 45\\
4 & 30 & & \\
9 & 80 & & \\
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

相关内容