我正在为会议手册整理几篇摘要;其中一些太长,因此需要分页。
完成小册子布局后,我将编辑摘要,使其更短,并确保每个摘要只占用一页,但现在我想力量每个摘要都保留在自己的页面内,即使这意味着文本会“溢出”到当前页面下方。
这在 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}