表格最后一列太宽

表格最后一列太宽

我一直在尝试创建一个表格来详细记录速度随时间的变化,并注意到最后一列(22 秒)的宽度不成比例。有什么方法可以缩小它的尺寸,使其与其他列的宽度相同吗?

\begin{center}
\begin{tabularx}{\columnwidth}{|l|l|l|l|l|l|l|l|l|l|l|l|X|}
\hline
Time (sec)    & 0  & 2  & 4  & 6  & 8  & 10 & 12 & 14 & 16 & 18 & 20 & 22 \\
 \hline
Speed (m/sec) & 10 & 14 & 20 & 24 & 22 & 18 & 16 & 15 & 14 & 14 & 13 & 11 \\
 \hline
\end{tabularx}
\end{center}\\

答案1

如果您希望表格跨越一定的宽度(例如文本块的宽度),但不需要(或不希望)所有列都等宽,则可以使用环境tabular*而不是tabularx当前使用的环境。(该指令@{\extracolsep{\fill}}用于插入额外的列间空格。)

在此处输入图片描述

\documentclass{article}
\begin{document}
\noindent
\begin{tabular*}{\columnwidth}{ @{\extracolsep{\fill}} |l| *{12}{l|} }
\hline
Time (sec)    & 0  & 2  & 4  & 6  & 8  & 10 & 12 & 14 & 16 & 18 & 20 & 22 \\
 \hline
Speed (m/sec) & 10 & 14 & 20 & 24 & 22 & 18 & 16 & 15 & 14 & 14 & 13 & 11 \\
 \hline
\end{tabular*}
\end{document}

与@BenediktBauer 在他的回答中所发表的评论相呼应,您可能需要认真考虑省略所有垂直线 - 相信我,它们会增加混乱而不是提供清晰度 - 并用包\hline的宏替换指令booktabs,因为它们会产生具有改进的间距属性的水平线。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\setlength\tabcolsep{0.1pt} % let tabular* figure out the intercolumn separation
\noindent
\begin{tabular*}{\columnwidth}{ @{} l @{\extracolsep{\fill}} *{12}{r} @{}}
\toprule
Time (sec)    & 0  & 2  & 4  & 6  & 8  & 10 & 12 & 14 & 16 & 18 & 20 & 22 \\
\midrule
Speed (m/sec) & 10 & 14 & 20 & 24 & 22 & 18 & 16 & 15 & 14 & 14 & 13 & 11 \\
\bottomrule
\end{tabular*}
\end{document}

答案2

您正在使用环境X的列类型tabularx。Atabularx基本上将表格拉伸到作为参数给出的宽度(\columnwidth在您的例子中)。在这种情况下,X列将占用其他列未占用的所有空间,以将表格扩展到全宽。如果您有多个X列,则可用空间将在它们之间平均分配。

为了解决您的问题,您可以将除第一列之外的所有列设置为一X列:

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\linewidth}{|l|X|X|X|X|X|X|X|X|X|X|X|X|}
\hline
Time (sec)    & 0  & 2  & 4  & 6  & 8  & 10 & 12 & 14 & 16 & 18 & 20 & 22 \\
\hline
Speed (m/sec) & 10 & 14 & 20 & 24 & 22 & 18 & 16 & 15 & 14 & 14 & 13 & 11 \\
\hline
\end{tabularx}
\end{document}

或者,如果表格不一定是全列宽,则只需使用tabular包含所有l列的正常环境:

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
Time (sec)    & 0  & 2  & 4  & 6  & 8  & 10 & 12 & 14 & 16 & 18 & 20 & 22 \\
\hline
Speed (m/sec) & 10 & 14 & 20 & 24 & 22 & 18 & 16 & 15 & 14 & 14 & 13 & 11 \\
\hline
\end{tabular}
\end{document}

对于包含数字的表格,我更喜欢后一种解决方案。

另外,关于样式,我只想说一句:从排版的角度来看,表格中的垂直线很糟糕,因为它们会影响表格的可读性,因此只能在非常稀疏的情况下使用,以突出/阐明表格的某些特征。尽量不要过分遵循这种类似 Excel 的表格格式!

相关内容