レッスン 5

文書クラス

このレッスンでは文書クラスとは何で、それがどのように文書のレイアウトに寄与するのかについて説明します。そしてTeXディストリビューションに含まれる主な文書クラスを紹介します。

文書クラスの役割

賢明な読者は、既にすべてのLaTeX文書は文書クラスを宣言する\documentclassから開始され、さらに言えば\documentclass{jlreq}が一般的な選択肢であるということにお気付きでしょう。お察しの通り、この宣言はあらゆるLaTeX文書で必須のもので、(ほとんどの場合)常にファイルの先頭に置くべきものです。

文書クラスは、これから作成する文書の全般的なレイアウトを設定します。具体的には、以下のようなものが設定されます。

文書クラスは、もっと広範に各種の新しいコマンドを追加する場合もあります。この傾向は、特に特殊な用途のクラス(例えばプレゼンテーション用のスライドを作成するためのもの)で顕著です。

文書クラスの宣言では、さらに文書全体に適用されるグローバル・オプションを設定することもできます。これらは角カッコ内に列挙する形で与えることができます:\documentclass[<オプション>]{<文書クラス>}。角カッコで省略可能なオプションを与えるこの書式はLaTeXのさまざまなコマンドでも同様に採用されています。

文書クラス(和文用)

本チュートリアルではjlreqを基本の文書クラス(和文用)として採用しています。この文書クラスはフォントサイズを変更するfontsizeオプションや、書籍用のレイアウトに変更するbookオプション、文書を2段組に変更するtwocolumnオプションなどを受け付けます。

その他の和文用文書クラスについては付録レッスンを参照してください。

和文文書を作成する場合の注意点

和文文書の組版のためには、海外で開発されたオリジナルのLaTeXをそのまま使うのではなく、日本語用に拡張されたLaTeXを使用する必要があります(詳しくは付録レッスンを参照)。特に本チュートリアルではpLaTeXというソフトウェアを使用します。

欧文用のLaTeXとpLaTeXの書き方にはそれほど大きな違いはありませんが、文書クラスを読み込む際に追加で気をつけるべきことが2点あります。

これらの注意点を踏まえて、jlreqを利用したコード例は次のようになります。以降、ほとんどの日本語を含むコード例では\RequirePackage{plautopatch}とグローバル・オプションdvipdfmxの指定を行います。

\RequirePackage{plautopatch}
\documentclass[dvipdfmx,paper=b5j,fontsize=14pt]{jlreq}
\begin{document}
JIS B514
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

基本の文書クラス(欧文用)

ここでLaTeX標準で提供されているクラスについても紹介しておきます。これらはいずれも欧文用の文書クラスで、和文組版には適しません。

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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

住所の各行が\\によって区切られていることに注目してください。改行についてはもう少し後で扱います。また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 dummy
text\footnote{and a footnote}. This paragraph is quite
long as we might want to see the effect of making the
document have two columns.
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

さらにクラスオプションtwocolumnを追加して、レイアウトがどのように変化するか確認してみましょう。

上記の欧文文書ソースについて使用クラスをscrreprtに変更し、さらに\section\chapterに置き換えてみましょう。さらに次のクラスオプションを使用するとどうなるか確認してみてください。