我有一张大桌子,比我的文本宽度略宽(约 1 厘米),我想稍微挤压一下它,以便它适合。在这种情况下,旋转它或调整文本大小是不可取的。到目前为止,我已经设法获得以下内容以产生所需的行为:
\begin{table}[t]
\setlength{\tabcolsep}{4pt}
\begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} c c c c c c c}
% content
\end{tabular*}
\end{table}
简要说明:第 2 行略微缩小了所有列之间的空间,使表格的宽度略小于文本宽度;第{\textwidth}
3 行将表格的宽度扩展为文本的宽度;然后@{\extracolsep{\fill}}
添加一个微小的额外空间以略微移动列,使它们正确地与表格的右边缘对齐。
所以我对此有几个问题:
首先,表格环境中的第 2 行是否只会更改此表格的列分隔,还是会影响文档中的其他表格?我只希望此表格受到影响。
其次,有没有更好的方法可以解决这个问题?理想情况下,我会使用某种工具自动扩展或收缩列间距/宽度以达到指定的表格宽度。
答案1
\begin{table}[t]
\setlength{\tabcolsep}{4pt}
\begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} c c c c c c c}
% content
\end{tabular*}
\end{table}
\setlength
是本地设置,因此它受周围table
环境的影响,因此仅影响此表。但请注意@
移除tabcolsep 的使用位置,因此如果表格很紧凑,则第一列和第二列之间根本没有分隔。您可以使用包!
中的类型array
,它类似于@
但不删除默认空格,或者正常习惯用法是
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}l c c c c c c c@{}}
这样列填充就从两个都外边缘不在表格的列之间。