使文档中的所有长表都占满整个页面宽度

使文档中的所有长表都占满整个页面宽度

我有一组使用该软件包的包含大量表格的文档longtable。我正在寻找一种方法来强制所有表格占满整个页面的宽度。我知道这可以通过在序言中设置来实现:

\setlength\LTleft{0pt}
\setlength\LTright{0pt}

然后添加\extracolsep{\fill}到每个表中。

但是有没有办法在不修改每个表的情况下实现相同的效果?也许通过使用renewenvironment重新定义longtable以便\extracolsep{\fill}始终使用?

答案1

在此处输入图片描述

\documentclass{article}

\usepackage{longtable,etoolbox}

\begin{document}

Nice
\begin{longtable}{cc}
\textbf{heading a}&\textbf{heading b}\\
1&2\\3&4\\5&6\\1&2\\3&4\\5&6
\end{longtable}

Horrible
{\setlength\LTleft{0pt}\setlength\LTright{0pt}
\begin{longtable}{@{\extracolsep{\fill}}cc@{}}
\textbf{heading a}&\textbf{heading b}\\
1&2\\3&4\\5&6\\1&2\\3&4\\5&6
\end{longtable}}

\makeatletter
\patchcmd\LT@array{\tabskip\z@}{\tabskip\fill}{\typeout{OK}}{\typeout{BAD}}
\setlength\LTleft{0pt}\setlength\LTright{0pt}
\makeatletter

Automatically Horrible
\begin{longtable}{cc}
\textbf{heading a}&\textbf{heading b}\\
1&2\\3&4\\5&6\\1&2\\3&4\\5&6
\end{longtable}

\end{document}

相关内容