我一直在尝试创建一个表格来详细记录速度随时间的变化,并注意到最后一列(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 的表格格式!