如何在不固定表格宽度的情况下均匀分布列?

如何在不固定表格宽度的情况下均匀分布列?

关于如何在多列下均匀分布表格列的答案似乎表明这是不可能的,例如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}

演示

相关内容