表格列的填充左对齐

表格列的填充左对齐

我有一张表格,其列标题(中心对齐\multicolumn{1}{c}{Foobar here})比左对齐数据宽。这看起来有点奇怪,因为每列都有很大的右边距。

用一个例子来说明我的查询可能是最简单的方法。假设列标题为 10em,列中的数据从 2em 到 3em 不等。目前,每行数据的右边距在 8em 到 7em 之间(因为数据是左对齐的,所以右边距会弥补任何不足)。

我想要的是一种使其均衡的方法;因此左边距为 (10em - 3em) / 2 = 3.5em,右边距在 3.5em 和 4.5em 之间变化。

我该怎么做?我知道每个列标题的文本和表格中最宽数据部分的文本。

答案1

eqparbox软件包将解决这个问题。这是一个示例(根据eqparbox文档修改,使其具有如您所描述的左对齐数据,并使用 使其更加美观booktabs)。(您必须将其通过 latex 运行两次,以使框宽度收敛。)

\documentclass{article}
\usepackage{eqparbox}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{@{}lccc@{}} \toprule
& \multicolumn{3}{c}{Sales (in millions)} \\ \cmidrule{2-4}
Product &
October & November & December \\ \midrule
Widgets & \eqparbox{oct}{55.2} &
\eqparbox{nov}{\textbf{89.2}} &
\eqparbox{dec}{57.9} \\
Doohickeys & \eqparbox{oct}{\textbf{65.0}} &
\eqparbox{nov}{64.1} &
\eqparbox{dec}{9.3} \\
Thingamabobs & \eqparbox{oct}{10.4} &
\eqparbox{nov}{8.0} &
\eqparbox{dec}{\textbf{109.7}} \\ \bottomrule
\end{tabular}
\end{document}

为了使包装更加自动化,你可以对包装eqparbox做一些小技巧array

\documentclass{article}
\usepackage{eqparbox}
\usepackage{array}
\newsavebox{\tempbox}
\newcolumntype{Q}[1]{>{\begin{lrbox}{\tempbox}}%
    c<{\end{lrbox}\eqparbox{#1}{\unhcopy\tempbox}}}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{@{}lQ{oct}Q{nov}Q{dec}@{}}
\toprule
    & \multicolumn{3}{c}{Sales (in millions)} \\ 
\cmidrule{2-4}
Product      & 
\multicolumn{1}{c}{October} & 
\multicolumn{1}{c}{November} & 
\multicolumn{1}{c}{December} \\
\midrule
Widgets      & 55.2 & 89.2 & 57.9 \\
Doohickeys   & 65.0 & 64.1 & 9.3 \\
Thingamabobs & 10.4 & 8.0  & 109.7 \\
\bottomrule
\end{tabular}
\end{document} 

答案2

我只是创建了多列(并使用了多列标题)。然后在表格主体内,我只需要替换&-> &&; 而不需要输入太多内容。在第一行中,您可以添加一些间距命令,以确保空列不会太窄。


如果你想让你的表格主体保持非常简单,这里还有另一个技巧:

\newcommand{\filler}{\hspace{2em}}
\begin{tabular}{r@{\filler}r@{\filler}r@{\filler}}
    \multicolumn{1}{c}{Long heading} &
    \multicolumn{1}{c}{Long heading} &
    \multicolumn{1}{c}{Long heading} \\
      1 &  2 & 123 \\
    111 & 12 &  23 \\
     21 &  2 &   3 \\
      1 & 22 &  13
\end{tabular}

相关内容