LaTeX は文書全体を見渡して改ページの位置を自分で決めますが、ときには人が手を入れたくなります。「ここで必ずページを変えたい」「この見出しと本文を引き離したくない」「段落の最初の 1 行だけがページの底に取り残された」——こうした場面で使う道具は大きく三系統。改ページを促す/強制する 命令、改ページを防ぐ 仕掛け、そして ウィドウ・オーファン(泣き別れ)を抑えるペナルティです。このページではその使い分けを見ていきます。
改ページを促すか、強制するか
まず「ページを変える」側の道具です。ここでの最重要点は、**\pagebreak と \newpage の違い にあります。どちらもその位置でページを終えますが、残った余白の扱いが正反対です。\pagebreak は、ページ下端(通常の下マージン)まで届くように 縦方向の空きを引き伸ばして 本文を均します。一方 \newpage は引き伸ばさず、ページの残りを空白のまま** 残して次のページに移ります。
使い分けは目的しだいです。本文を下端まで自然に詰めて区切りたいなら \pagebreak、まっさらな次ページから始めたい(章の終わりなど)なら \newpage です。ただし \pagebreak は、その効果として 段落の途中でも改ページしうる 点に注意。公式リファレンスも、\pagebreak ではページの縦空きが可能な範囲で引き伸ばされるため、\flushbottom が効いていると アンダーフル box の警告 が出たり、見た目が不自然になったりしうると述べています。
\pagebreak には強さを表す **オプション引数 \pagebreak[n](n は 0〜4)** があります。4 は完全な強制で、引数を省いたときの既定値も 4。数を下げるほど「できれば」という弱い要望になり、\pagebreak[0] は「ここで折ってもよい」という許可程度の意味になります。行を折る \linebreak[n] と同じ流儀で、ページ版だと考えてください。
フロートを片付ける clearpage
\newpage の一段強力な親戚が **\clearpage です。ページを終えて次へ移るのに加えて、保留中の図表(フロート)をすべて出力してから** 改ページします。LaTeX は figure や table を最適な位置へ自動で浮かせるため、コードを書いた場所より後ろのページに出ることがあります。あるセクションが「その図表より必ず後に来てほしい」ときは、境目に \clearpage を置くと、溜まったフロートを先に吐き出してから新しいページを始められます。
両面印刷では **\cleardoublepage** が役立ちます。\clearpage と同じくフロートを片付けたうえで、twoside オプションのもとでは 次の本文を必ず奇数(右)ページから 始めます。必要なら裏面(偶数ページ)に空白ページを 1 枚挟みます。章を必ず右ページ起こしにしたい書籍(book クラスの既定の挙動)でおなじみの動作です。なお、二段組のときの \newpage は 段(カラム)を終える だけで、ページ全体を終えるには \clearpage / \cleardoublepage が必要になります。
改ページを防ぐ
逆に「ここでは折ってほしくない」側の道具です。基本は **\nopagebreak[n]**。その位置での改ページを抑制する命令で、n は粘りの強さ(0〜4、既定 4)。\nopagebreak[0] は「できれば避けて」という提案、\nopagebreak[4] は強い禁止です。見出しと直後の本文や、図とその説明文のあいだなど、引き離されたくない継ぎ目に置きます。
もう少し広い範囲をまとめて 1 ページに収めたいなら、宣言 **\samepage** や同名の samepage 環境があります。これは囲んだ範囲のあらゆる改ページ候補に 無限大のペナルティ を与えて、その内側で折られないようにする仕組みです。ただし TeX FAQ も注意するとおり万能ではありません。続きの地の文をまとめたいときは 環境の内側で段落を終える 必要があり、中の要素が独自の改ページ指示を出す場合は \samepage では抑えられません。
より確実なのが **needspace パッケージ** です。\usepackage{needspace} のうえで **\needspace{3\baselineskip} と書くと、「いまの位置からページ下端まで 3 行分の空きがなければ改ページする」——逆に言えば、3 行ぶん入るならそのまま続け、入らないなら新しいページに送る** という挙動になります。見出しと最初の数行を必ず同じページに置きたいときの定番です。長さは \baselineskip(行送り)の倍数で書くのが直感的ですが、pt や cm でも構いません。より厳密に空きを確保する \Needspace{...}、さらに \flushbottom のもとで短いページを下揃えにする \Needspace*{...} もあります(後者二つは段落間で使います)。
ウィドウとオーファン(泣き別れ)
段落の 最初の 1 行だけがページの最下部に取り残される のが オーファン(orphan)、段落の 最後の 1 行だけが次ページの先頭にぽつんと載る のが ウィドウ(widow) です。どちらも読みにくく、組版では避けたい泣き別れです(用語の対応は資料によって揺れることがありますが、TeX FAQ はオーファンを「ページ末尾の段落第 1 行」、ウィドウを「ページ先頭の段落最終行」と定義しています)。
これらを抑えるのが二つのペナルティ整数値です。**\clubpenalty がオーファン(段落第 1 行のあとで折ること)を、\widowpenalty がウィドウ(段落最終行の前で折ること)を司ります。値を大きくするほど、その位置での改ページが「割に合わない」と判断され、避けられやすくなります。標準クラスの既定は 150(軽い抑制)。TeX FAQ によれば設定に意味のある幅は二つだけで、有限(150 や 500——どちらでも大差ない)なら泣き別れを許容、無限大(10000 以上)なら禁止** です。
禁止したいなら、プリアンブルで両方を最大値にします。次のように書くのが定番です。
\clubpenalty=10000
\widowpenalty=10000ただし全面禁止には代償があります。LaTeX は泣き別れを避けるためにページの行数を 1 行減らすので、各ページの下端がそろわず凸凹になる ことがあります。だからこそ既定は「軽い抑制」止まりなのです。実務では全体を 10000 に固定するより、最終校正の段階で問題のある箇所だけを手で直す ほうが質の高い仕上がりになります。狙い撃ちの常套手段が **\enlargethispage{\baselineskip}。これは 現在のページの \textheight だけを一時的に広げ**、もう 1 行ぶん押し込めるようにする命令で、これでページ末尾の段落を 1 行伸ばせば、こぼれていた最終行を同じページに収めてウィドウを解消できます。空きを詰めてでも 1 行詰め込みたいときは星付きの \enlargethispage*{\baselineskip} を使います。
命令の早見表
改ページまわりの主な命令とパラメータを一覧にします。needspace の各命令はパッケージの読み込みが必要で、それ以外は LaTeX 標準です。
| 命令 | 働き | |
|---|---|---|
\pagebreak[n] | 改ページを促す/強制(n=0〜4、既定 4)。縦空きを引き伸ばして下端まで均す | 段落途中でも折りうる |
\newpage | その場でページを終える。引き伸ばさず残りは空白 | 二段組では段を終えるだけ |
\clearpage | ページを終え、保留中のフロート(図表)をすべて出力してから改ページ | セクションを図表の後ろに置きたいとき |
\cleardoublepage | clearpage に加え、twoside では次を奇数(右)ページから。必要なら空白ページを挿入 | 章を右起こしにする書籍向け |
\nopagebreak[n] | その位置の改ページを抑制(n=0〜4、既定 4) | 見出しと本文を引き離さない |
\samepage | 囲んだ範囲の改ページ候補に無限ペナルティを与えて 1 ページに保つ(環境あり) | 万能ではない。内側で段落を閉じる |
\needspace{N\baselineskip} | 残りに N 行ぶんの空きがなければ改ページ(needspace) | 見出しと最初の数行を同じページに |
\clubpenalty | オーファン(段落第 1 行の取り残し)を抑える整数。既定 150、禁止は 10000 | 値が大きいほど避ける |
\widowpenalty | ウィドウ(段落最終行の取り残し)を抑える整数。既定 150、禁止は 10000 | 値が大きいほど避ける |
\enlargethispage{\baselineskip} | 現在のページの textheight だけを広げ、もう 1 行収める | 星付きは空きを詰めて 1 行押し込む |
実務での使い方
改ページの調整は 執筆の最後にまとめて行う のが鉄則です。本文が一文字でも増減すれば全ページの折り位置はずれるので、途中で手作業の \newpage を散りばめると、あとで原稿を直すたびに不自然な空白が残ります。まずは中身を完成させ、最終段階でページ送りを点検しましょう。ウィドウ・オーファン対策も、プリアンブルでの全面禁止に頼りきらず、目立つ箇所だけを \enlargethispage などで個別に直すのが、下端のそろった美しい仕上がりへの近道です。
なお、改ページは 行の折り方(\linebreak や \\)とは別レイヤーの話で、figure・table の 配置 とも密接に関わります。行の調整は「改行位置の調整」、段落そのものの扱いは「改行・改段落の扱い」、フロートの置き方は「図表の配置」のページを参照してください。