
会議の小冊子用にいくつかの要約を作成しているのですが、一部が長すぎるため、ページを区切る必要があります。
冊子のレイアウトが終わったら、要約を編集して短くし、それぞれが1ページだけを占めるようにするつもりですが、今のところは力各要約は、たとえテキストが現在のページの下からはみ出すことになるとしても、それぞれのページ内に留まるようにします。
これは 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}