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

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

我有几个连续的小节,每个小节标题后都只包含一个长表。因此,有些小节标题位于页面底部,而相应的表格位于下一页,这显然很丑陋。

在这种情况下,我可以阻止小节标题后的分页符吗?

当然,我可以手动解决有问题的部分,但我正在寻找可以应用于所有这些部分的通用解决方案。

以下是演示此问题的 MWE:

\documentclass{article}
\usepackage{longtable}

\begin{document}
\vspace*{17cm}
\section{First section}
\begin{longtable}{l}
Header
\endhead\hline\hline
row1\\\hline
row2\\\hline
row3
\end{longtable}
\end{document}

答案1

有两个问题,主要问题是它longtable不能很好地处理这个问题。(怪作者。)另一个问题是,即使longtable准确地检测到问题并试图防止出现中断,之前的页面仍会不够满,除非有足够的柔性胶水来填充空间,否则 TeX 不会希望在该部分之前中断。

可能最简单的做法是使用它needspace来检查标题前是否有足够的空间,如果没有,则强制分页。理论上,将其放在每个部分之前应该是安全的,并且只会在需要时强制分页。如果它不起作用,你可以责怪不同的包作者,这是一个优势。

这会将节标题和表格放在第 2 页。

\documentclass{article}
\usepackage{longtable,needspace}

\begin{document}
\vspace*{17cm}
\Needspace{5\baselineskip}
\section{First section}
\begin{longtable}{l}
Header
\endhead\hline\hline
row1\\\hline
row2\\\hline
row3
\end{longtable}
\end{document}

相关内容