ドキュメントクラスとプリアンブル

どの LaTeX 文書も、必ず \documentclass という一行から始まります。ここで選ぶ ドキュメントクラス が、論文なのか書籍なのかスライドなのかという文書全体の骨格と体裁を決めます。そして \documentclass から \begin{document} までの プリアンブル で、使うパッケージや文書全体の設定を宣言します。このページでは、その二つの仕組みを順に見ていきます。

\documentclass — 最初の一行

すべての文書は \documentclass[options]{class} という宣言で始まります。これは 必須かつ最初 に書く命令で、これより前には(コメントを除いて)何も書けません。波括弧 {} の中の クラス名 が文書の種類を選び、角括弧 [] の中の オプション で文字サイズや用紙などを細かく調整します(オプションは省略できます)。

クラスが決めるのは「見た目」全般です。見出しをどんな書体・大きさで組むか、章や節にどう番号を振るか、ページの余白やヘッダ・フッタをどう作るか——こうした規則は **クラスファイル(拡張子 .cls)** にまとまっています。本文には \section{はじめに} のように 意味だけ を書き、それを具体的な体裁へ変換するのがクラスの役目です。だからクラスを差し替えるだけで、同じ原稿を別の体裁に組み替えられます。

標準のクラス

LaTeX には初めから次のクラスが用意されています。**article** は最も使われる汎用クラスで、学術論文や短い文書向け。章(\chapter)はなく、節(\section)が最上位です。**report は article と書籍の中間で、技術報告書や学位論文のように 章を持つ 比較的長い文書向け。book は本格的な書籍用で、章を持ち、両面印刷を前提とし、前付・本文・後付を切り替えられます。letter は手紙用、slides** はスライド用ですが今ではほとんど使われません。

クラス用途章の有無・既定の体裁
article論文・汎用の短中文書章なし。片面・1 段組が既定
report技術報告書・学位論文章あり。片面が既定、別タイトルページ
book書籍章あり。両面が既定、章は奇数ページ始まり
letter手紙\address \signature などの専用命令

とりわけ book では、本文の前後を **\frontmatter / \mainmatter / \backmatter** で区切ります。\frontmatter の範囲(序文・目次など)はページ番号が 小文字ローマ数字(i, ii, iii…)になり章番号は付きません。\mainmatter でページ番号が アラビア数字(1, 2, 3…)に振り直され、章番号が付き始めます。\backmatter(付録・索引など)はアラビア数字のまま、章番号だけ外します。

標準以外のクラス(beamer・KOMA-Script・日本語)

標準クラス以外にも、目的に応じた多くのクラスが CTAN にあります。発表スライドには **beamer** が定番で、frame 環境を 1 枚のスライドとして組み、段階的な表示(オーバーレイ)やテーマを備えます。標準クラスをより整った既定タイポグラフィで置き換えたいときは KOMA-Scriptscrartcl / scrreprt / scrbook(それぞれ article / report / book に対応)が広く使われ、細かな設定がしやすいのも特長です。

日本語組版には、エンジンに合わせて専用クラスを選びます。pLaTeX / upLaTeX なら奥村晴彦氏の **jsarticle / jsbook(jsclasses)が定番。LuaLaTeX では、その LuaLaTeX 版である ltjsarticle / ltjsbook(ltjsclasses)を使います。より新しい jlreq** は「日本語組版処理の要件(JLReq)」に基づくクラスで、pLaTeX・upLaTeX・LuaLaTeX のいずれでも動き、エンジンは自動判別されます(report / book オプションで report 相当・book 相当に切り替え)。

よく使うオプション

オプションは角括弧の中にカンマ区切りで並べます。たとえば \documentclass[11pt,a4paper,twoside]{article} のように。代表的なものは次の通りで、ほとんどはクラス全体に対するスイッチです。

オプション効果既定
10pt / 11pt / 12pt本文の基準文字サイズ10pt
a4paper / letterpaper用紙サイズ(a5paper b5paper legalpaper 等も)letterpaper
twocolumn本文を 2 段組にする1 段組(onecolumn
twoside / oneside両面/片面のレイアウトonesidebook のみ twoside
landscape用紙を横向きにする縦向き
titlepage / notitlepageタイトルを独立ページにするかreportbooktitlepage、他は notitlepage
fleqn別行立て数式を左寄せにする中央寄せ
leqno式番号を左側に付ける右側
draftあふれた行(overfull box)を黒い印で表示final

なお book の章が右ページ(奇数ページ)から始まるかどうかは **openright**(book の既定)と **openany**(report の既定)で決まります。ここで指定したオプションはクラスだけでなく、後で読み込むパッケージにも引き継がれます(グローバルオプション)。

プリアンブル — \usepackage と全体設定

\documentclass の次の行から \begin{document} の直前までを プリアンブル(前付け) と呼びます。ここはまだ本文ではなく、文書全体の 準備をする場所 です。本文(出力される中身)は \begin{document} から始まり、\end{document} で終わります。

プリアンブルの主役は **\usepackage[options]{package} です。クラスが土台の体裁を決めるのに対し、パッケージ(拡張子 .sty)** は文書の種類によらず使える機能を追加します。たとえば数式を強化する amsmath、図を貼る graphicx、ハイパーリンクを付ける hyperref など。一つの命令で複数のパッケージをまとめて読み込むこともできます(\usepackage{amsmath,amssymb})。「特定の文書種別の見た目を決めるならクラス、種別によらない機能を足すならパッケージ」と覚えると区別しやすいでしょう。

プリアンブルにはパッケージの読み込みのほか、文書全体に効く設定や定義 を置きます。タイトル情報の \title{...}\author{...}\date{...}、独自の命令を定義する \newcommand、長さを変える \setlength、ページ書式の \pagestyle などです。これらは本文より前で宣言しておく必要があり、本文中に書くと効かなかったりエラーになったりします。

次は、典型的なプリアンブルを備えた完成形の例です。クラスを選び、文字コードと言語まわりのパッケージを読み込み、独自命令と余白・タイトルを設定してから本文に入っています。

document.tex
\documentclass[11pt,a4paper]{article}

% --- preamble: packages ---
\usepackage[T1]{fontenc}
\usepackage{amsmath}      % better mathematics
\usepackage{graphicx}     % \includegraphics
\usepackage[margin=25mm]{geometry}
\usepackage{hyperref}     % load last

% --- preamble: settings & definitions ---
\newcommand{\R}{\mathbb{R}}
\setlength{\parindent}{0pt}
\title{A Short Note}
\author{Ada Lovelace}
\date{\today}

\begin{document}
\maketitle
Hello, \LaTeX! For all $x \in \R$ we have $x^2 \ge 0$.
\end{document}

読み込む順序にも意味があります。互いに干渉しやすいパッケージは順番で挙動が変わることがあり、hyperref のように 最後に読み込むのが望ましい ものもあります。日本語文書では、クラス自体を jsarticleltjsarticle などに替えるのが第一歩で、エンジンに合ったクラスを選ぶことが何より大切です。