ページの用紙サイズと余白、そして本文が組まれる領域(版面)を決める方法をまとめます。結論を先に言えば、自分で長さを計算するより **geometry パッケージ** を使うのが圧倒的に簡単で安全です。ここでは geometry の使い方を中心に、その裏でどの LaTeX 長さパラメータが設定されているのか、片面・両面で余白がどう変わるのかまで見ていきます。
おすすめは geometry パッケージ
geometry は、用紙サイズと余白をまとめて指定するための定番パッケージです(作者は梅木秀雄、現在は LaTeX Project と David Carlisle が保守)。標準的な用紙サイズをすべて知っているので、寸法を自分で書く必要はなく、たいていは一行で済みます。指定の仕方は二通りあり、\usepackage のオプションに直接書くか、\geometry{...} 命令で書くかのどちらでも同じです。
% どちらか一方でよい(両方同じ意味)
\usepackage[a4paper, margin=1in]{geometry}
% または
\usepackage{geometry}
\geometry{a4paper, margin=1in}これだけで A4 用紙・四辺すべて 1 インチの余白になります。\geometry はプリアンブルで何度でも呼べ、同じ項目を後から書けば上書きされます。指定の順序は関係ありません([left=2cm, right=3cm] と [right=3cm, left=2cm] は同じ)。
用紙サイズは名前で選べます。a4paper・letterpaper・b5paper・a5paper などが用意され、A0〜A6・B0〜B6・legalpaper・executivepaper なども使えます。任意サイズは paperwidth= と paperheight=(または papersize={幅,高さ})で指定します。横向きにしたいときは landscape を付けると幅と高さが入れ替わります。
geometry の主なオプション
geometry には「余白を指定する」「版面の大きさを指定する」二系統のキーがあり、片方を決めればもう片方は用紙サイズから自動計算されます。よく使うものを挙げます。
| オプション | 意味 |
|---|---|
margin= | 四辺すべての余白を一括指定。margin={A,B} なら左右=A・上下=B |
left= / right= / top= / bottom= | 各辺の余白を個別に指定(lmargin/rmargin/tmargin/bmargin も同義) |
inner= / outer= | 両面(twoside)時の内側・外側の余白。left/right の別名 |
hmargin= / vmargin= | hmargin={左,右}(左右余白)、vmargin={上,下}(上下余白) |
textwidth= / textheight= | 版面の幅・高さを直接指定(width/height も近い意味) |
total={幅,高さ} | ヘッダ・フッタ等を含めた本文ブロック全体の寸法 |
bindingoffset= | 綴じ代。内側(片面なら左側)にその分の余白を足す |
includehead / includefoot | ヘッダ(\headheight+\headsep)/フッタ(\footskip)を版面の高さに含める |
landscape | 横向き。幅と高さを入れ替える |
注意したいのは、geometry の top=/bottom= は 用紙端から本文ブロックの上端・下端までの余白 を表し、後述する LaTeX 純正の長さ \topmargin とは別物だという点です。geometry は内部で純正の長さへ正しく変換してくれるので、利用者はこの「端からの余白」という直感的な見方だけで指定できます。
実際の指定例
論文でよくある「A4・左右 25mm・上下 30mm・綴じ代 5mm、ヘッダも余白に含める」設定は次のように書けます。版面の幅・高さは指定しなければ、用紙サイズと余白から自動的に決まります。
\documentclass{article}
\usepackage{geometry}
\geometry{
a4paper,
hmargin=25mm, % 左右の余白
vmargin=30mm, % 上下の余白
bindingoffset=5mm, % 綴じ代(内側に追加)
includehead, % ヘッダを版面の高さに含める
}
\begin{document}
本文がこの版面に組まれます。
\end{document}版面の幅を固定したいなら、余白の代わりに textwidth= や total= を指定します。たとえば \geometry{a4paper, textwidth=15cm, textheight=24cm} とすると、その大きさの版面が用紙の中央に置かれ、余白は左右・上下とも自動で均等になります(片面では水平方向の自動センタリングが既定)。
裏側の LaTeX 長さパラメータ
geometry が便利なのは、本来 LaTeX が直接持っている ページレイアウト用の長さパラメータ を、利用者の代わりに整合的に設定してくれるからです。主なものは次の通りです。
| パラメータ | 意味 |
|---|---|
\textwidth | 本文(版面)の幅 |
\textheight | 本文(版面)の高さ |
\oddsidemargin | 奇数ページ(片面では全ページ)の左余白を、基準点から測った増分 |
\evensidemargin | 両面時の偶数ページの左余白の増分 |
\topmargin | 基準点(上から 1 インチ)からヘッダ上端までの距離 |
\headheight | ヘッダ(柱)を入れる箱の高さ |
\headsep | ヘッダ下端と本文上端の間隔 |
\footskip | 本文最終行のベースラインからフッタのベースラインまでの距離 |
\marginparwidth | 傍注(マージンノート)の幅 |
\paperwidth / \paperheight | 用紙そのものの寸法 |
ここで戸惑いやすいのが、\oddsidemargin と \topmargin が 用紙の左上から 1 インチ内側の点(基準点)からの増分 で測られることです。つまり実際の左余白は「1 インチ + \oddsidemargin」。この 1 インチのオフセットは TeX の歴史的な仕様で、自分で \setlength を使って合わせようとすると、版面の幅・高さと余白の関係まで手計算する羽目になり、\textwidth を変えたのに余白がずれる、といった食い違いが起きがちです。
% 手で合わせる古典的なやり方(誤りやすい)
\setlength{\oddsidemargin}{0pt} % 実際の左余白 = 1in + 0pt
\setlength{\textwidth}{16cm}
\setlength{\topmargin}{0pt}
\setlength{\textheight}{24cm}
% → 右余白・下余白は自分で辻褄を合わせる必要があるこうした理由から、余白は geometry に任せるのが断然おすすめ です。現在の値を目で確かめたいときは、layout パッケージの \layout 命令を使うと、これらのパラメータを図示した一覧ページが出力されます。
\usepackage{layout}
% ...本文中で
\layout % 現在のページレイアウトを図で出力片面と両面(oneside / twoside)
左右の余白は、文書が **片面(oneside)か両面(twoside)か** で扱いが変わります。article は既定で片面、book は既定で両面です。片面ではすべてのページで左右の余白が同じ(\oddsidemargin のみが使われる)。両面では、製本したときに見開きの内側(綴じ側)の余白をそろえるため、奇数ページと偶数ページで左右の余白を入れ替えます。このとき奇数ページに \oddsidemargin、偶数ページに \evensidemargin が使われます。
両面では多くの場合、綴じ側(内側)の余白を外側より広めに取ります。geometry なら twoside を有効にしたうえで inner=/outer= で内外の余白を指定でき、さらに bindingoffset= で綴じ代を内側に足せます。クラスオプションとして渡すか、geometry に直接渡すかのどちらでも構いません。
\documentclass[twoside]{book}
\usepackage{geometry}
\geometry{
a4paper,
inner=30mm, % 綴じ側(内側)は広めに
outer=20mm, % 小口(外側)は狭めに
bindingoffset=5mm, % 綴じ代をさらに内側へ追加
}
\begin{document}
% 奇数ページと偶数ページで内外の余白が入れ替わる
\end{document}左右を入れ替えたくない(傍注も常に同じ側に置きたい)両面レイアウトにしたい場合は、geometry の asymmetric オプションを使います。
途中でレイアウトを変える
一部のページだけ余白を変えたい(横長の表のページだけ広く取る、付録だけ別レイアウトにする、など)ときは、本文中で **\newgeometry{...} を呼んで新しいレイアウトに切り替え、元に戻したい箇所で \restoregeometry** を呼びます。\newgeometry は用紙サイズ関連を除き、それまでの geometry 指定をいったんリセットして与えたオプションだけを適用します。どちらの命令も自動で \clearpage(改ページ)を挟むので、ページの途中では切り替わりません。
% プリアンブルの余白で組まれている途中で…
\newgeometry{margin=1cm} % ここから余白を狭く(改ページが入る)
% 広い版面が必要なページ(大きな図表など)
\restoregeometry % 元のレイアウトに戻す(再び改ページ)横向きのページを 1 枚だけ挟みたいなら \newgeometry{landscape, ...} と組み合わせるか、用途特化の lscape/pdflscape パッケージの landscape 環境を使う手もあります。ページ単位ではなく見出しやヘッダ・フッタの体裁を整えたい場合は、別ページで扱う titlesec や fancyhdr が適しています。