Longtabu 总宽度,固定左边距

Longtabu 总宽度,固定左边距

我试图在某一时刻制作一个longtabu比更宽的textwidth。我尝试过不同的方法,但总是遇到不同的问题:

第一种可能性:如果我使用环境,adjustwidthlongtabu 无法正确对齐。左边距保持固定,右边距超出页面。相比之下,如果我做同样的事情来制作一个tabu(而不是longtabu),它会完美地工作。我认为使用adjustwidth是最好的方法,但我无法让它工作。

第二种可能性:我找到了一个使用fullwidth包的解决方案。该包可以解决问题,但使用 endhead 和 endfirsthead 完全被忽略了。所以它对我也没什么帮助,因为我需要它。

最后一种可能性:使用geometry包可以解决问题,但是当我开始使用包时,它会添加分页符,我无法做到这一点。它必须直接位于某些文本下方,这些文本具有较窄的textwidth

干杯。

我添加一个小例子:

\documentclass[a4paper]{article}
\usepackage{longtable}
\usepackage{chngpage}
\usepackage{lipsum}
\usepackage{tabu}

\begin{document}
\section{This is the original textwidth.}
\lipsum[1]

\section{This is the width I need for my longtabu}
\begin{adjustwidth}{-1in}{-1in}
    \begin{tabu} to \linewidth {*{13}{|X[l]} |}
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
   \end{tabu}
\end{adjustwidth}

\section{This is what happens}
\begin{adjustwidth}{-1in}{-1in}
    \begin{longtabu} to \linewidth {*{13}{|X[l]} |}
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    \end{longtabu}
\end{adjustwidth}

\end{document}

答案1

longtable让您设置左边距和右边距,但不幸的是,tabu包装器longtable总是传递一个可选参数,该参数将边距设置为0pt\fill取决于lcr对齐方式。

因此,longtabu除了将边距设置为 之外,-1in您还需要修补tabu默认c对齐方式(这会将它们重置为\fill)。

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage{longtable}
\usepackage{chngpage}
\usepackage{lipsum}
\usepackage{tabu}

\begin{document}
\section{This is the original textwidth.}
\lipsum[1]

\setlength\LTleft{-1in}
\setlength\LTright{-1in}
\section{This is the width I need for my longtabu}


\noindent\kern-1in X \dotfill X\kern-1in\mbox{}



\makeatletter
\g@addto@macro\tabu@setup{\def\tabu@aligndefault{x}}
\makeatother

    \begin{longtabu} to \dimexpr\linewidth+0in\relax  {*{13}{|X[l]} |}
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 \\
    \end{longtabu}


\end{document}

相关内容