通过列分隔调整表格大小

通过列分隔调整表格大小

我有一张大桌子,比我的文本宽度略宽(约 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@{}}

这样列填充就从两个都外边缘不在表格的列之间。

相关内容