段落を開始したページと同じページに保持する

段落を開始したページと同じページに保持する

会議の小冊子用にいくつかの要約を作成しているのですが、一部が長すぎるため、ページを区切る必要があります。

冊子のレイアウトが終わったら、要約を編集して短くし、それぞれが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}

ここに画像の説明を入力してください

関連情報