多列标题后的列宽

多列标题后的列宽

当表格中的多列标题使用的水平空间比它们所“标示”的列多时,则额外的宽度将完全分配给最右边的列。以下 MWE:

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lccc}\toprule
  & \multicolumn{3}{c}{Wide multicolumn cell}\\
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabular}
\end{document}

生成:

在此处输入图片描述

我想为 x、y 和 z 列分配相同数量的水平空间。我确实意识到一个简单的解决方法是使用固定宽度的 x、y 和 z 列,但我正在寻找一个动态解决方案。所以我的问题如下:

1)有没有一种简单的方法可以将水平空间均匀地分配给 x、y 和 z 列?

2)假设 1)的答案是否定的:有什么优雅的方法可以将单个可变宽度列的宽度增加一定百分比,例如,将 x 列的宽度增加到默认值的 150%?

答案1

有几种可能性:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,tabularx}
\begin{document}
\setlength\parskip{1cm}

\begin{tabular}{lccc}\toprule
  & \multicolumn{3}{c}{Wide multicolumn cell}\\
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabular}

\dotfill


\begin{tabular*}{.5\textwidth}
                {l!{\extracolsep{\textwidth minus \textwidth}}lccc}
\toprule
  & \multicolumn{3}{c}{Wide multicolumn cell}\\
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabular*}

\begin{tabular}{lc@{\hspace{4em}}c@{\hspace{4em}}c}\toprule
  & \multicolumn{3}{c}{Wide multicolumn cell}\\
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabular}

\begin{tabularx}{.5\textwidth}{l*{3}{>{\centering\arraybackslash}X}}\toprule
  & \multicolumn{3}{c}{Wide multicolumn cell}\\
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabularx}

\begin{tabular}{lccc}\toprule
  & &\makebox[60pt]{Wide multicolumn cell}&\\
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabular}


\end{document}

答案2

感谢您的这些建议。我更喜欢使用表格环境,因此我被第二个带有 的建议所吸引@{\hspace{4em}},但要扩大两端的列宽,需要在列的左侧和右侧添加一半的空间。结果是多列单元格也包含额外的空间,这是不希望的。此外,它似乎与在多列单元格下划线 ( \cline{2-4}) 配合得不太好。

目前我更喜欢以下解决方案(即使它可能是一个丑陋的黑客......):

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\newcommand{\cspace}{\hspace*{2.5em}}
\begin{tabular}{lccc}
&  \cspace & \cspace & \cspace \\ [-2.5ex]
\toprule
  & \multicolumn{3}{c}{Wide multicolumn cell}\\ \cline{2-4}
  & x & y & z  \\ \midrule
A & 1 & 2 & 3  \\  \bottomrule
\end{tabular}
\end{document}

结果:

在此处输入图片描述

相关内容