关于如何在多列下均匀分布表格列的答案似乎表明这是不可能的,例如https://tex.stackexchange.com/a/60604/36836。似乎很难相信 LaTeX 有这个限制。
下面是一个示例,展示了均匀分布列的基本问题:
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{cccc}
\toprule
& \multicolumn{3}{c}{some longer text here}\\
\cmidrule{2-4}
& 1 & 2 & 3\\
\midrule
some text here & A & B & C \\
\bottomrule
\end{tabular}
\end{document}
最后一列(第 3 列)比其他列占用更多空间。
答案1
您可以尝试按如下方式更新源。更改第 3 列的位置。希望这会有所帮助。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{cccl}
\toprule
& \multicolumn{3}{c}{some longer text here}\\
\cmidrule{2-4}
& 1 & 2 & 3\\
\midrule
some text here & A & B & C \\
\bottomrule
\end{tabular}
\end{document}
根据评论进行编辑。您可以根据需要在表格位置环境中设置值。下面显示了一个示例。抱歉回复迟了。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\renewcommand*{\arraystretch}{1}
\begin{tabular}{lp{1cm}p{1cm}p{1cm}}
\toprule
& \multicolumn{3}{c}{some longer text here}\\
\cmidrule{2-4}
& 1 & 2 & 3\\
\midrule
some text here & A & B & C \\
\bottomrule
\end{tabular}
\end{document}
答案2
问题似乎在于将 LaTeX 命令放在了前面\toprule
。
请注意,您只需使用\makebox
一行来确定宽度。
\documentclass{article}
\usepackage{booktabs}
\newsavebox\tempbox
\begin{document}
\savebox{\tempbox}{some longer text here}% measure width
\begin{tabular}{cccc}
\toprule
\dimen0=\dimexpr \wd\tempbox/3 - 4\tabcolsep/3\relax
& \multicolumn{3}{c}{\usebox\tempbox}\\
\cmidrule{2-4}
& \makebox[\dimen0]{1} & \makebox[\dimen0]{2} & \makebox[\dimen0]{3}\\
\midrule
some text here & A & B & C \\
\bottomrule
\end{tabular}
\end{document}