如何防止节标题和 longtabu 表之间出现分页符?

如何防止节标题和 longtabu 表之间出现分页符?

section我创建了一个由和一个表组成的最小工作示例(MWE)longtabu

\documentclass{report}

\usepackage{longtable,tabu}

\begin{document}
An initial line of text

\vskip 47.5em % Offset the section to close to the bottom of the page

\section{Test section}

\begin{longtabu}{l X}
    \textbf{Column 1} & \textbf{Column 2} \\
    \hline
    \\
    \endhead
    Cell 1 & Cell 2 \\
\end{longtabu}

Additional content

\end{document}

在编译后的文档中,文档长度为两页,章节标题位于第一页的末尾,而表格 ( longtabu) 位于另一页的末尾。为什么 LaTeX 不能阻止在章节标题后直接插入分页符?如何修复?如果 LaTeX 必须在表格完成之前分页,我希望在章节标题之前插入分页符。

理想情况下,如果在节标题和表格之间有分页符,我希望获得与clearpage在节标题开始之前插入相同的结果。

答案1

看看needspace包裹。例如,此功能也存在于 中memoir。您可以使用它添加以下内容:\needspace{5\baselineskip}在标题之前。如果页面上没有剩余给定空间,则会插入分页符,并且在您的情况下,标题将出现在下一页上。

答案2

绝对,绝对,防止分页

Just enclose your text in an unbreakable unit; before it issue a combination of glue and penalties that will fill the page if the unit has to go to the next one. 

这适合您的情况,并且不会产生尴尬、不必要的分页符。

\documentclass{report}
\usepackage{longtable,tabu}

\newenvironment{absolutelynopagebreak}
  {\par\nobreak\vfil\penalty0\vfilneg
   \vtop\bgroup}
  {\par\xdef\tpd{\the\prevdepth}\egroup
   \prevdepth=\tpd}

\begin{document}
An initial line of text

\vskip 47.5em % Offset the section to close to the bottom of the page

\begin{absolutelynopagebreak}
\section{Test section}
\nopagebreak
\begin{longtabu}{l X}
    \textbf{Column 1} & \textbf{Column 2} \\
    \hline
    \\
    \endhead
    Cell 1 & Cell 2 \\
\end{longtabu}
\end{absolutelynopagebreak}

\end{document}

答案3

我以前在类似情况下用过一个有点丑陋的技巧。如果你当然你总是希望表格和标题在同一页上,然后将它们放在例如 a 中,minipage那么它们就不能设置在不同的页面上。这是一个相当丑陋的黑客行为,当你开始编辑东西时,它会充满问题,因为它们minipage总是会在那里......

\documentclass{report}

\usepackage{longtable,tabu}

\begin{document}
An initial line of text

\vskip 47.5em % Offset the section to close to the bottom of the page
foo

\noindent
\begin{minipage}{\textwidth}
\section{Test section}

\begin{longtabu}{l X}
    \textbf{Column 1} & \textbf{Column 2} \\
        \hline
        \\
        \endhead
        Cell 1 & Cell 2 \\
\end{longtabu}
\end{minipage}

\end{document}

相关内容