改ページの調整

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 は figuretable を最適な位置へ自動で浮かせるため、コードを書いた場所より後ろのページに出ることがあります。あるセクションが「その図表より必ず後に来てほしい」ときは、境目に \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(行送り)の倍数で書くのが直感的ですが、ptcm でも構いません。より厳密に空きを確保する \Needspace{...}、さらに \flushbottom のもとで短いページを下揃えにする \Needspace*{...} もあります(後者二つは段落間で使います)。

ウィドウとオーファン(泣き別れ)

段落の 最初の 1 行だけがページの最下部に取り残される のが オーファン(orphan)、段落の 最後の 1 行だけが次ページの先頭にぽつんと載る のが ウィドウ(widow) です。どちらも読みにくく、組版では避けたい泣き別れです(用語の対応は資料によって揺れることがありますが、TeX FAQ はオーファンを「ページ末尾の段落第 1 行」、ウィドウを「ページ先頭の段落最終行」と定義しています)。

これらを抑えるのが二つのペナルティ整数値です。\clubpenalty がオーファン(段落第 1 行のあとで折ること)を、\widowpenalty がウィドウ(段落最終行の前で折ること)を司ります。値を大きくするほど、その位置での改ページが「割に合わない」と判断され、避けられやすくなります。標準クラスの既定は 150(軽い抑制)。TeX FAQ によれば設定に意味のある幅は二つだけで、有限(150 や 500——どちらでも大差ない)なら泣き別れを許容無限大(10000 以上)なら禁止 です。

禁止したいなら、プリアンブルで両方を最大値にします。次のように書くのが定番です。

latex
\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ページを終え、保留中のフロート(図表)をすべて出力してから改ページセクションを図表の後ろに置きたいとき
\cleardoublepageclearpage に加え、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\\)とは別レイヤーの話で、figuretable配置 とも密接に関わります。行の調整は「改行位置の調整」、段落そのものの扱いは「改行・改段落の扱い」、フロートの置き方は「図表の配置」のページを参照してください。

ページ送りの校正手順

ページ送りの校正手順は、本文・図表・参考文献がそろってから始めます。最初にフロートの滞留を \clearpage で確認し、次に見出しだけがページ末に残る箇所を needspace で守り、最後に目立つウィドウ・オーファンへ \enlargethispage などを当てます。散発的な \newpage は、章の構造上必要な箇所だけに残します。

  • 章・付録の境界\clearpage\cleardoublepage を使い、図表を次章へ持ち越さない。
  • 見出し直後\needspace{3\baselineskip} のように数行分を確保し、見出しだけのページ末を避ける。
  • 1 行だけの泣き別れは、余白と下端揃えの両方を見て \enlargethispage を局所的に使う。
  • ページ調整の根拠をコメントに残すと、本文修正後に消してよい手当てか判断しやすい。