LaTeX メモ ― geometry パッケージによるページレイアウトの設定

LaTeX でちょっとした文書を書こうとするとき,ページレイアウトのために,煩雑な設定が必要になることがある.たとえば,LaTeXの article などの標準的なスタイルでは,デフォルトではマージン(余白)が大きめな設定になっている.このマージンを狭めにしようとしても,LaTeXで直感的に設定することは意外に難しい.


LaTeX のレイアウトについては,LaTeX/Page Layout - Wikibooks, open books for an open world のページがまとまっている.その「Page dimensions」のセクションを見れば分かるように,レイアウト設定のために,さまざまな変数が用意されている.しかしながら,それらはあまり直感的な変数とは言えず,実際,余白をちょっと狭めにしたいといった場合ですら,思うように設定することは難しいのである.


こんなとき,シンプルかつ直感的にレイアウトを設定できるパッケージとして,geometry がある.


geometry パッケージを使うには,プリアンブルのところで以下のように記述すればよい.


\usepackage[margin=.8in]{geometry}


明らかなように,上記のコマンドは,geometry パッケージを用いて(上下左右の)マージンを 0.8 インチに設定するというものである.LaTeXのデフォルトの分かりにくいレイアウト設定が嘘のように,geometry では,直感的でシンプルな設定が可能となっていることが分かる.


他の例として,上下のマージンをそれぞれ 2 cm,左右のマージンをそれぞれ 1 cm とし,下マージンの上にフッタを位置させたいといった場合は,以下のようにすればよい.


\usepackage[top=2cm, bottom=2cm, left=1cm, right=1cm, includefoot]{geometry}


また,上記は以下のように書いてもよい(同じ意味である.いずれか好きなスタイルを選べばよい).


\usepackage{geometry}

\geometry{top=2cm, bottom=2cm, left=1cm, right=1cm, includefoot}


geometry を使うのは,主にマージンを設定したいときではないかと考えられるため,上記のことを知っていれば,実用上は十分だろう.


しかしながら,このエントリでは,参考のため,以下で簡単に geometry を説明しておきたい.より詳しい情報については,geometry のマニュアル (geometry.pdf)を参照されたい.



geometry のデフォルトのレイアウト設定は,図1のように与えられる.非常に直感的で分かりやすいことが分かる.図1の変数を簡単に説明すると,以下のようになる.


  • paperwidth, paperheight … 紙の横幅,縦幅を表す.

  • top (あるいは tmargin), bottom (bmargin), left (lmargin), right (rmargin) … 上下左右のマージン

  • total … 紙からマージンを除いた部分を,total body といい,変数 total で表す.これは,total={w, h} のように設定すればよい.ここで,w, h は,それぞれ total body の横,縦の長さである.

  • text (あるいは body), textwidth, textheight … total body の中にある,テキストエリアが text あるいは body で表され,その横幅,縦幅がそれぞれ textwidth, textheight によって設定できる.デフォルトのレイアウトでは,total body = body である.text の設定は,text={w, h} のようにすればよい.

  • headheight (あるいは head), headsep … ヘッダ領域の高さが headheight (あるいは head) であり,ヘッダとテキストエリアの距離が headsep である.デフォルトでは,ヘッダ領域は,top マージンのところに位置する.

  • footskip (あるいは foot) … フッタ領域の高さ.


図1: デフォルトの設定



ヘッダあるいはフッタを,上下マージンではなく,total body の中に含むこともできる(図2参照).これは,includehead あるいは includefoot というフラグを設定することで可能となる(どちらか一方だけの指定も可能).この場合,テキストエリアとヘッダあるいはフッタを合わせて,total body となる(図2).


図2: includeheadincludefoot が設定された場合



geometry では,他にも,用紙の指定 (a4paper, letterpaper 等),用紙に対する total body の大きさの割合を設定 (scale, vscale, hscale),行数指定 (lines),landscape, twocolumn などの設定が可能である.私が好きなのは,twoside という両面印刷を想定したオプションで,これは,奇数ページ偶数ページによって left, right のマージンを入れ替えるというものだ.簡易製本をするときや,ファイルに閉じるために穴を開けるときなどに便利である.



最後に,言うまでもないが,国際学会や論文誌の論文は,レイアウトが厳密に決まっているため,geometry を使ってレイアウトを変更することは避けるべきである.


コメント

このブログの人気の投稿

人間はどんなところでも,どんな時でも何歳からでも学ぶことができる

ブログを始めるにあたって - 継続は力

LaTeX メモ - 数式における「|」 (縦線, vertical bar)の扱い(その2)

イエスは地面に何を書いていたか

へんろう宿 (井伏鱒二)