TeXに触れたことのない方でも理解できることを目標に、概説を書いてみました。
TeXのバージョン
組版ソフトTeXには様々なバリエーションが存在しますが、日本の出版で広く使われているのはLaTeXという拡張版のTeXです。一般にTeXといえばこのLaTeXのことを指していると考えてほぼ間違いありません。
LaTeXは1980年代に作られて普及しました。その後1993年にLaTeX2eという新しいバージョンができ、これが今現在も広く使われています。20年以上の長きにわたって安定的に使われているソフトというのは珍しいのではないでしょうか [1] 。
もともと欧米の組版ソフトであるTeXですが、縦組みや禁則処理など日本語組版特有の問題に対応した日本語版もいくつか開発されました。その中でアスキーが開発したpTeX, pLaTeX [2] が現在主流として使われています。
pTeX, pLaTeX は Windows, Mac, Linux など多くのプラットフォームに対応しています。
TeX組版のワークフロー
DTPソフトやワープロは画面上でリアルタイムに仕上がりを確認しながら編集しますが、TeXの場合は文字やコマンドをテキストベースで修正し、組版処理 [3] を行い、PDFで結果を確認する、というサイクルを繰り返します。編集画面と仕上がりイメージがイコールでないということで、HTMLのコーディングと感覚が近いと思います。
LaTeXのデータ構造
LaTeXの組版データは、大づかみに言えば文書本体のファイルとスタイルファイルの2つのファイルから成り立っています。
- 文書本体(.tex)……文書の論理構造をマークアップ [4] した文書
- スタイルファイル(.cls, .sty)…….texにマークアップされた論理構造をどのように視覚化するか、レイアウトのルールを記述
.texも.clsも実体はテキストデータなので、各種テキストエディターやWord・一太郎のようなワープロソフトで開いて中身を確認することができます。
文書本体
文書本体の.texファイルでは、下記のようにテキストに対して文字ベースのコマンドを付け加え、文書を構造化しています。
たとえば
編集者のためのTeX/LaTeX入門 LaTeXのデータ構造 LaTeXのデータは、大づかみに言えば文書本体のファイルとスタイルファイルの2つのファイルから成り立ちます。 文書本体(.tex) 文書の論理構造をマークアップした文書 スタイルファイル(.cls) .texにマークアップされた論理構造をどのように視覚化するか、レイアウトのルールを記述
――このようなテキストをLaTeXのコマンドを使ってマークアップした例を下に示します。
\chapter{編集者のためのTeX/LaTeX入門} \section{LaTeXのデータ構造} LaTeXのデータは、大づかみに言えば文書本体のファイルとスタイルファイルの2つのファイルから成り立ちます。 \begin{description} \item[文書本体(.tex)] 文書の論理構造をマークアップした文書 \item[スタイルファイル(.cls)] .texにマークアップされた論理構造をどのように視覚化するか、レイアウトのルールを記述 \end{description}
「\chapter」のように「\」から始まる文字列がコマンドです。この例では、
- chapterの見出しを\chapter{}で囲む
- sectionの見出しは\section{}で囲む
- また箇条書きは\begin{description}と\end{description}で囲む
――といった具合に文書の論理構造に則ったマークアップが中心となっています。
しかし、このマークアップテキストから仕上がりイメージ(例えばsection見出しのフォント・文字サイズがどのようになるのか)を想像することはできません。それをつかさどるのが、スタイルファイルです。
スタイルファイル
スタイルファイルには
- 文書の仕上がりサイズ、字詰め・行数、柱・ノンブルなどの版面設計
- 見出し、図表キャプション、式番号などの連番の規則と視覚デザイン
- 目次、参考文献、索引といった付き物類のデザイン
などのルールを、マクロ(プログラムの一種)として記述します。
たとえば、section見出しの体裁が下のようなマクロで定義づけられていたりします。
\def\section{\@startsection{section}{2}% {-77\Q}{10pt plus1\Q minus1\Q} {10\Q plus1\Q minus1\Q} {%\hskip-1\Cwd \vrule width 0pt height 18pt depth 0pt \bf\SectionSize}}
一見して難解な印象をもたれるかもしれませんが、実際分かりやすいものではありません。そのため、スタイルファイルを制御して独自デザインの文書を作るのは敷居が高く、できたとしてもかなりの手間をともないます。
文書ファイルとスタイルファイルを分けるメリット
作るのが大変なスタイルファイルですが、できあいのものを使う分には難しいことはありません。どんなスタイルファイルで組版するのかを、文書ファイルの最初で指定する決まりになっています。
\documentclass{jarticle}
これは文書を jarticle というスタイルファイルで組版するということを表わしています。
もしこれを
\documentclass{b5_book}
と変えれば、その文書は b5_book という別のスタイルファイルによって組版されるようになります。つまり、ほかの部分を変えることなく異なる体裁の文書を作ることができるのです。
このように文書本体(論理マークアップテキスト)とスタイルファイル(レイアウト情報)を分離するのは、HTMLとCSSの関係やXMLにも共通する考え方です。
- 次期バージョンとしてLaTeX3が開発中ですが、かなり気長なプロジェクトのようです(http://latex-project.org/latex3.html)。 [↩]
- http://ascii.asciimw.jp/pb/ptex/ [↩]
- コンパイル、タイプセットとも言われます [↩]
- Wikipedia-マークアップ言語 [↩]