LaTeX/LaTeXにおける文書整形の制御/パラメータ

LaTeXの出力は細かく設定された各種パラメータによって制御されます.パラメータはコマンドと同じように基本的に``\''ではじまる文字列で表されます.これらはソースファイル中ではコマンドと同等に扱われ,LaTeX 処理時には具体的な数値として扱われます.ここでは出力全体に関するパラメータとその変更方法について説明します.

5.1.1 ページレイアウトパラメータ

ページレイアウトを制御するパラメータを表 に,各パラメータの指す位置を図にそれぞれ示します.長さの単位については2.2.12.9を参照してください.


表: ページレイアウトパラメータ
パラメータ 設定内容
\textheight 本文領域の高さ
\textwidth 本文領域の横幅
\oddsidemargin 奇数(右)ページの左余白
\evensidemargin 偶数(左)ページの左余白
\topmargin ページ上端の余白
\headheight ヘッダ領域の高さ
\headsep ヘッダ領域下端と本文領域上端の間隔
\topskip 本文領域上端と第1行下端の間隔
\footheight フッタ領域の高さ
\footskip 本文領域下端とフッタ領域下端の間隔
\columnsep 2段組時の左右2つのカラムの間隔
\columnseprule 2段組時の中央線の太さ

\columnsep\columnsepruleは2段組にしたときのみ用いられるパラメータです.


図:各パラメータの示す位置
\begin{figure}{center}{tex2html_nowrap}
{picture}
(300,300)(300,298){( 0, 0)[t...
...}}
( 0,300){( 1, 0){300}}
( 0,300){( 0,-1){300}}
{}\end{figure}

図からも分かるように,ページ上端と左端はあらかじめ1インチ(25.4mm)ずつ余計に余白がとられています.つまりページ上端から本文領域の上端までの具体的な長さは, \topmargin + \headheight + \headsep にさらに1インチ加えた値となります.個人でそれぞれのパラメータを設定し直す場合はこの点に注意してください.ページ上端や左端を1インチ以下にしたい場合はそれぞれ\topmargin\oddsidemargin\evensidemarginに負の値を設定します.

ドキュメントスタイルとしてarticlereportbook系を指定し,かつ11pt12ptなどの基本文字の大きさを指定するスタイルオプションを指定しない場合,LaTeXはそれぞれのドキュメントスタイルとともにart10.stybk10.styなどの基本文字の大きさ10ptを示すスタイルファイルを自動的に読み込む.また12ptなどのスタイルオプションを指定していれば,art10.styなどの代わりにart12.styなどの12pt用のスタイルファイルを自動的に読み込む.これによりそれぞれの基本文字の大きさに沿ったパラメータ設定が行われる.

5.1.2 文字レイアウトパラメータ

ここではページ全体ではなく,1文字1文字の大きさや行間,それから段落制御に関係するパラメータについて説明します.

文字フォントと行間

LaTeXの基本文字サイズは10ptとなっていますが,文字の大きさはコマンド(2.1.2)やクラスオプション(1.4.2)によって変更できます.また行間は\baselineskipというパラメータによって各文字の大きさをもとに設定されます.パラメータ\baselineskipを文書の途中で変更した場合は,その直後の改段落以降の文書全体に有効となります.

LaTeXでは文字や環境などをそれぞれ1つの箱として扱い,それらをベースラインに揃えて並べることで文書を整形する.このときそれぞれの箱の大きさがまちまちでもLaTeXはその行内で箱の高さが最大のものをみつけ出し,その最大の高さの箱が入るようにパラメータ\baselineskipの値を自動的に変化させる.パラメータ\baselineskipはそのような自動的に変化する行間値の最小値を定めている.

5.1.3 段落制御レイアウトパラメータ

段落制御は表に示すようなパラメータが関与しています.


表: 段落制御レイアウトパラメータ
パラメータ 設定内容
\parindent 段落先頭の字下げ長さ
\parskip 段落間空白

5.1.4 パラメータの変更

出力を制御するパラメータは自由に変更できます.これにより出力を希望通りに制御できます.

パラメータ変更の方法

パラメータを変更するには次のような3つの方法があります.


記述法 記述例
パラメータ 設定値 \textwidth 460pt
パラメータ = 設定値 \textwidth = 460pt
\setlength{パラメータ}{設定値} \setlength{\textwidth}{460pt}


このうち最初の2つはパラメータに直接代入する方法で,3つ目は\setlengthコマンドを用いた方法です.\setlengthコマンドは1つ目の引数にパラメータを,2つ目の引数に設定値を記述します.

ページレイアウトに関するパラメータをプリアンブル(1.4.4)以外のところに記述すると文書全体のページレイアウトが異なったものになってしまう.特に必要がない限り,ページレイアウトパラメータはプリアンブルで設定すること.

\setlengthコマンド

パラメータに値を設定するコマンドで,値には単位をつけた具体的な値,あるいは他のパラメータを用いることができます.パラメータを単位として扱うことに関しては次項を参照してください.またマイナスの値も設定できます.

\setlength{パラメータ}{設定値}


単位としてのパラメータ

パラメータはそれ自体が単位を持った長さを保持しており,長さとして扱えます.また,パラメータは単位として扱うこともできるので,その前に数値を記述することでパラメータを基準値として長さを指定できます.すなわち,パラメータの定数倍や小数倍という形で長さを指定できるのです.この機能を用いると,例えば1行の高さを示す\baselineskipと1ページ全体の高さを示す\textheightを使うことで,1ページの文字数を指定するような設定を行うことができます.この設定例を次に示します.

\setlength{\textwidth}{40zw}
\setlength{\textheight}{40\baselineskip}

この例では,1行の文字数を全角文字40字分に設定し,1ページに書かれるテキストの高さを40行分に設定しています.なおこの設定は必ずしも正確に反映されるわけではありません.

LaTeXでは1行に収まる文字数や1ページの行数を完璧に設定することはほとんど不可能である.これはLaTeXの自動組版がそのような目的のためには設計されていないためである.上記のように設定しても句読点などは普通の全角文字よりも小さめに箱が設定されており,また行数にしても章立てコマンドなどによって縦方向の空白が自動的に挿入されてしまうので,なかなか思うように文字数や行数を正確に設定することはできない.このような設定はLaTeXの機能を理解した上で用いること.

また次のように小数倍にすることもできます.なお分数倍による表現はできません.

\setlength{\parindent}{0.15\textwidth}