强制段落停留在开始的同一页上

强制段落停留在开始的同一页上

我正在为会议手册整理几篇摘要;其中一些太长,因此需要分页。

完成小册子布局后,我将编辑摘要,使其更短,并确保每个摘要只占用一页,但现在我想力量每个摘要都保留在自己的页面内,即使这意味着文本会“溢出”到当前页面下方。

这在 LaTeX 中可以实现吗?

答案1

您可以使用\filbreak(The TeXbook,第 111 页)。

纯 TeX 提供的用于页面排版的最有趣的宏称为\filbreak。它的意思是,大致意思是“在这里分页,并在底部填充空白,除非还有空间容纳后面跟着 的更多副本\filbreak。”因此,如果你在每个段落的末尾都放\filbreak,并且段落不是太长,那么每个分页符都会出现在段落之间,TeX 会在每页上容纳尽可能多的段落。 的确切含义\filbreak

\vfil\penalty-200\vfilneg

根据附录 B;并且 TeX 基元的这种简单组合产生了所需的结果:如果在 处进行中断\penalty-200,则前面的\vfil会用空白填充页面底部,并且 会\vfilneg在中断后被丢弃;但如果在惩罚处不进行中断,则\vfil\vfilneg会相互抵消并且不起作用。

这是一个实现。

\documentclass{article}
\usepackage{lipsum} % for mock text

\newenvironment{abs}[2]
 {% #1 = title, #2 = author
  \par\vspace{\bigskipamount}\filbreak
  {\centering\textbf{#1}\par\vspace{1ex}\textit{#2}\par\vspace{1ex}}%
 }
 {\par}

\begin{document}

\begin{abs}{A title}{John Doe}
\lipsum*[1][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[2][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[1][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[2][1-3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3]
\end{abs}

\begin{abs}{A title}{John Doe}
\lipsum*[3-5]
\end{abs}

\end{document}

在此处输入图片描述

相关内容