文書クラス
このレッスンでは文書クラスとは何で、それがどのように文書のレイアウトに寄与するのかについて説明します。そしてTeXディストリビューションに含まれる主な文書クラスを紹介します。
文書クラスの役割
賢明な読者は、既にすべてのLaTeX文書は文書クラスを宣言する\documentclass
から開始され、さらに言えば\documentclass{jlreq}
が一般的な選択肢であるということにお気付きでしょう。お察しの通り、この宣言はあらゆるLaTeX文書で必須のもので、(ほとんどの場合)常にファイルの先頭に置くべきものです。
文書クラスは、これから作成する文書の全般的なレイアウトを設定します。具体的には、以下のようなものが設定されます。
- デザイン:余白、フォント、スペーシングなど
- 「章」の構造を利用可能にするか否か
- タイトルを独立ページに出力するか否か
文書クラスは、もっと広範に各種の新しいコマンドを追加する場合もあります。この傾向は、特に特殊な用途のクラス(例えばプレゼンテーション用のスライドを作成するためのもの)で顕著です。
文書クラスの宣言では、さらに文書全体に適用されるグローバル・オプションを設定することもできます。これらは角カッコ内に列挙する形で与えることができます:\documentclass[<オプション>]{<文書クラス>}
。角カッコで省略可能なオプションを与えるこの書式はLaTeXのさまざまなコマンドでも同様に採用されています。
文書クラス(和文用)
本チュートリアルではjlreq
を基本の文書クラス(和文用)として採用しています。この文書クラスはフォントサイズを変更するfontsize
オプションや、書籍用のレイアウトに変更するbook
オプション、文書を2段組に変更するtwocolumn
オプションなどを受け付けます。
その他の和文用文書クラスについては付録レッスンを参照してください。
和文文書を作成する場合の注意点
和文文書の組版のためには、海外で開発されたオリジナルのLaTeXをそのまま使うのではなく、日本語用に拡張されたLaTeXを使用する必要があります(詳しくは付録レッスンを参照)。特に本チュートリアルではpLaTeXというソフトウェアを使用します。
欧文用のLaTeXとpLaTeXの書き方にはそれほど大きな違いはありませんが、文書クラスを読み込む際に追加で気をつけるべきことが2点あります。
\documentclass
による文書クラス指定の前に、\RequirePackage{plautopatch}
によってplautopatchを読み込む。さきほど「ほぼすべてのLaTeX文書は\documentclass
から開始される」と述べましたが、これがほぼ唯一の例外です。plautopatchにより、海外製のパッケージに対してpLaTeX用のパッチ(拡張コード)が適用されます。- グローバル・オプションに
dvipdfmx
を指定する。pLaTeXはPDFを直接出力することができず、代わりにDVIという別の形式を出力します。これをdvipdfmxという別のソフトウェアでさらに変換することで最終的なPDFが得られます(TeXLive.netでは自動で変換されます)。グローバル・オプションでdvipdfmx
を指定することで、dvipdfmx向けのDVIを出力するようになります。
これらの注意点を踏まえて、jlreqを利用したコード例は次のようになります。以降、ほとんどの日本語を含むコード例では\RequirePackage{plautopatch}
とグローバル・オプションdvipdfmx
の指定を行います。
\RequirePackage{plautopatch}\documentclass[dvipdfmx,paper=b5j,fontsize=14pt]{jlreq}\begin{document}JIS B5用紙、フォントサイズ14で作成する文書の例。\end{document}
基本の文書クラス(欧文用)
ここでLaTeX標準で提供されているクラスについても紹介しておきます。これらはいずれも欧文用の文書クラスで、和文組版には適しません。
article
: 章のない短めの欧文文書report
: 章のある長めの欧文文書、片面印刷book
: 章のある長めの欧文文書、両面印刷、前付け・後付けあり(たとえば索引)letter
: セクション構造のない欧文の手紙slides
: プレゼンテーション用(ただし後述の注意を参照)
article
, report
, book
クラスでも、基本的にはjlreq
と似たようなコマンドが利用可能です。手紙用のletter
クラスでも多くのコマンドが利用できますが、少し異なる点もあります。
% !TEX program=pdflatex\documentclass{letter}\begin{document}\begin{letter}{Some Address\\Some Street\\Some City}\opening{Dear Sir or Madam,}The text goes Here\closing{Yours,}\end{letter}\end{document}
住所の各行が\\
によって区切られていることに注目してください。改行についてはもう少し後で扱います。またletter
クラスが1通の「手紙」のためにletter
環境を作成し、またいくつかの特別なコマンドを定義している点にも注意してください。
欧文用のarticle, report, bookクラスでは10pt
, 11pt
, 12pt
などのフォントサイズを変更するオプションや、文書を2段組に変更するtwocolumn
オプションが利用できます。
高機能な文書クラス(欧文用)
上で紹介した標準的な文書クラスはとても安定しているのですが、一方でデザインも使用可能なコマンドも極めて保守的です。これまでに、より強力な文書クラスも多数作成されてきました。そうした文書クラスを用いると、(いずれ本チュートリアルでも紹介するように)自分で一からコードを書かなくても、簡単にデザインを変更することが可能になります。
欧文用のクラス
アメリカ数学学会(American Mathematical Society; AMS)は、伝統的な数学ジャーナルの見た目により近いデザインを実現する標準文書クラスの変種amsart
, amsbook
を提供しています。
大規模かつ人気のある二大「拡張」文書クラスはKOMA-Scriptバンドルとmemoirクラスです。KOMA-Scriptは3種類の標準文書クラスに「対応」するような3つのクラスscrartcl
, scrreprt
, scrbook
, scrlttr2
を提供しています。一方memoir
クラスは単独の文書クラスでbook
クラスの拡張に相当します。
こうした拡張文書クラスは数多くのカスタマイズ用フックを提供しています。そのいくつかを、本レッスンの練習問題で扱います。こうしたクラスにどのようなフックが用意されているかを把握する方法は後のレッスンで扱います(もちろん、途中を飛ばして先に見てしまっても構いません)。
プレゼンテーション
欧文用標準文書クラスの1つにslides
があります。この文書クラスは1980年代中頃に物理的なスライドを作成するために開発されたものでPDFベースのインタラクティブなスライドを作成するための機能は一切ありません。現代では、そうした機能をもつより現代的なスライド用の文書クラスも存在します。それらは一般的なLaTeX文書と比べると幾分特殊な部類に属するので、本レッスンの追加解説で扱います。
練習問題
文書クラスを変更する方法を試してみましょう。次の欧文LaTeX文書のクラスをKOMAバンドルに含まれる文書クラスやmemoir
クラスに変更すると、最終的な見た目がどのように変化するでしょうか。
% !TEX program=pdflatex\documentclass{article} % ここのクラスを変更します\begin{document}\section{Introduction}This is a sample document with some dummytext\footnote{and a footnote}. This paragraph is quitelong as we might want to see the effect of making thedocument have two columns.\end{document}
さらにクラスオプションtwocolumn
を追加して、レイアウトがどのように変化するか確認してみましょう。
上記の欧文文書ソースについて使用クラスをscrreprt
に変更し、さらに\section
を\chapter
に置き換えてみましょう。さらに次のクラスオプションを使用するとどうなるか確認してみてください。
chapterprefix
headings=small
headings=big
numbers=enddot