著者のための LATEX 2εc Copyright 1995–2015, LATEX3 Project Team.
⃝All rights reserved.
30 March 2015；日本語訳は 2018-09-04 です．

Contents
1 イントロダクション
1.1 LATEX 2ε — 新しい LATEX の登場 . . . . . . . . . . . . . . . . . . .
1.2 LATEX3— LATEX を長い将来まで使うために . . . . . . . . . . . . .
1.3 大まかな内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 追加の情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2
2
3
4
4

2 クラストパッケージ
2.1 クラスとパッケージと何か . . . . . . . . . . . . . . . . . . . . . .
2.2 クラスとパッケージのオプション . . . . . . . . . . . . . . . . . .
2.3 標準のクラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 標準パッケージ . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 補助してくれるソフトウェア . . . . . . . . . . . . . . . . . . . . .

5
5
6
7
8
9

3 コマンド11
3.1 初期化コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 プレアンブルのコマンド . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 ドキュメントの構造 . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.5 ボックス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6 長さを測る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.7 線の終わり . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.8 改ページの制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.9 フロート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.10 フォントの変更：テキスト . . . . . . . . . . . . . . . . . . . . . . 19
3.11 フォントエンコーディング：数式 . . . . . . . . . . . . . . . . . . 20
3.12 強制数式モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.13 本文での添字の設定 . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.14 テキストコマンド：すべてのエンコーディング . . . . . . . . . . . 22
3.15 テキストコマンド：T1 エンコーディング . . . . . . . . . . . . . . 24
3.16 ロゴ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1

3.17 描画コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.18 古いコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25
26

4 LATEX 2.09 ドキュメント
26
4.1 警 告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 フォント選択時の問題 . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 ネイティブモード . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 自分用の変更

29

6 いくつかの問題
29
6.1 新しいエラーメッセージ . . . . . . . . . . . . . . . . . . . . . . . 30
6.2 古い内部コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.3 古いファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.4 さらに助けが必要な場合 . . . . . . . . . . . . . . . . . . . . . . . 33
7 楽しんで！

1

33

イントロダクション

ドキュメント処理システム LATEX の新しい標準である LATEX 2ε にようこそ．
このドキュメントでは，新しい LATEX の機能の使い方と，あなたが書いた古いE
E ε で再利用する方法を説明します．このドキュメントは新しい機能についての簡単な入門であり，さらに読者は著者として古い LATEX を使ったことがあることを想定しています．このドキュメントは LATEX 2ε のリファレンスマ
ニュアルでもなければ，完全な紹介を与えているわけでもありません．

LAT X を LAT X 2

これはいまでは歴史期的なドキュメントです．なぜなら LATEX 2ε は 1994 年から存在しています．

1.1

LATEX 2ε —新しい LATEX の登場（とはいうものの，今から 10 年以上も昔ですね．）

以前のバージョンの LATEX は LATEX 2.09 として知られていました．長年にわたり，LATEX 用に多くの拡張が開発されました．これはもちろん継続的な人気のおかげですが，不幸な結果ももたらしました．互換性のない LATEX フォーマット
が、いろいろな場所で使用されたのです．それらは，‘標準 LATEX 2.09’，New Font
Selection Scheme（NFSS）で強化された LATEX，SliTEX，AMS-LATEX などです．
したがって，さまざまな場所で作成されたドキュメントを処理するために，シス
テム管理者は複数のバージョンの LATEX プログラムを維持管理しなければなりませんでした．さらに，ソースファイルをみても，そのドキュメントが，どのフォー
マットの元で書かれたのかが常に明確であるとは限りませんでした．
この不満足な状況に終止符を打つために，LATEX 2ε が作られました；LATEX 2εは，そのようなすべての拡張を単一フォーマットにまとめあげて，LATEX 2ε 2.092との互換性のない方言が広まるのを防ぎます．LATEX 2ε では，‘新しいフォント選
択スキーム（new font selection scheme）’ が標準となり，たとえば，amsmath（以前は AMS-LATEX フォーマット）や slides（以前は SliTEX フォーマット）は単な
る拡張機能となりました．これらは同一の基本フォーマットを使用したドキュメ
ントによって読み込まれます．
新しいリリースの導入により，頻繁に要求されるいくつかの機能を追加すること，パッケージやクラスを書く作業をシンプルにします．

1.2

LATEX3— LATEX を長い将来まで使うために

LATEX 2ε は，LATEX 2ε システムの包括的な再実装における統合ステップです．
LATEX 2ε の次の大きなリリースは，LATEX3 になります．これには，ドキュメン
トデザイナーとパッケージ作者のための，LATEX 2ε へのインターフェースの抜本的な見直しが含まれます．
LATEX3 は長期的な研究プロジェクトですが，プロジェクトチームは完了するまでは，LATEX 2ε に対して積極的なメンテナンスを行います．したがって，LATEX 2εの提供とメンテナンスから得られた経験は，LATEX3 の設計に大きな影響を与えます．プロジェクトの簡単な説明は，ltx3info.tex にあります．
このプロジェクトをサポートしてくださるなら，LATEX3 プロジェクト基金（LATEX3 Project Fund）に寄付をお寄せください；これは現在の LATEX を維持し，LATEX3 を開発するために必要なさまざまな経費について，研究チームを経済的に支援するために設立されました．
基金は The TEX Users Group や，それぞれの地域のユーザグループによって管理されます．寄付をされる場合や，ユーザグループに参加するための情報は次のところにあります：
http://www.tug.org/lugs.html

LATEX3 プロジェクトのホームページは
http://www.latex-project.org/

です．ここには LATEX と LATEX3 についての紹介があります．そして，LATEX についての他の情報源の案内があります．たとえば，ユーザガイド，TEX で頻繁に尋ねられる質問（TEX Frequently Asked Questions），そして LATEX のデータベー
スがあります．
古いドキュメントですが LATEX3 についてのドキュメントは Comprehensive TEX
Archive の元で，ディレクトリ
ctan:info/ltx3pub

から，匿名 ftp で公開されています．このディレクトリにある ltx3pub.bib には，それぞれのファイルの概略が書かれています．

3

1.3

大まかな内容

このドキュメントには，LATEX の新しい構造と機能の概要が含まれています．これはバージョン 2.09 以降に変更された LATEX の機能だけを含んでいるので，自己完結型のドキュメントではありません．読者は LATEX の紹介と合わせてこのドキュメントを読むべきです．
セクション 2 ここでは LATEX ドキュメントの新しい構造についての大まかな説
明です．クラスとパッケージがどのように働くのか，そしてそれらのオプ
ションの使い方を説明しています．LATEX と一緒に提供されている標準パッ
ケージとクラスの一覧を示しています．
セクション 3 ここでは LATEX 2ε の著者のための新しいコマンドを説明しています．
セクション 4 ここでは，LATEX 2ε で古い LATEX を処理する方法を示しています．
セクション 6 ここでは LATEX 2ε を使っていると目にする問題についての解決法のアドバイスを説明しています．LATEX 2ε ユーザにとっては，新しいいく
つかのエラーメッセージと，よく現れる問題と，それへの対処方法，あるいは，より詳しい情報が期にあるかを示しています．

1.4

追加の情報

新しい機能を含んだ LATEX である LATEX 2ε の一般的な入門として，必ず Leslie
Lamport[4] の著書 LATEX: A Document Preparation System を読むべきです．

LATEX について，さらに詳しいことは，200 のパッケージと，すぐに実行できる 1000 の例とともに Frank Mittelbach と Michel Goossens[5] の著書 The LATEXCompanion second edition に書かれています．
グラフィックスの生成と操作についてのパッケージとプログラムについてはMichel Goossens と Sebastian Rahtz と Frank Mittelbach の著書 [1]The LATEXGraphics Companion に詳しく説明されています

LATEX で作成したドキュメントを World Wide Web で公開することについてはMichel Goossens と Sebastian Rahtz[2] の著書 The LATEX Web Companion で説明されています．
新しい LATEX のパッケージについては，LATEX と一緒に配布されているそれぞれのパッケージに付属するドキュメントを読んでください．

LATEX は多数の解説ドキュメントと一緒に配布されます．LATEX は 6 ヶ月ごとにリリースされ，それには LATEX News が含まれます；内容はファイル ltnews*.texにあります．クラスとパッケージ作成者ためのガイドが LATEX 2ε for Class andPackage Writers ですが，これには新しい LATEX 機能にもとづいたドキュメント
クラスとパッケージの作者のための説明です；ファイル clsguide.tex にあります．ガイド LATEX 2ε Font Selection は，クラスライターとパッケージライターの4

ための LATEX フォント選択スキームを説明しています；fntguide.tex にあります．LATEX でのキリル語のサポートは，Cyrillic languages support in LATEX に記述されています．
ドキュメントのソースコード（latex.ltx からカーネル形式を生成するために使用されるファイルから生成されます）は，The LaTeXe Sources にあります．この非常に大きなドキュメントには，LATEX コマンドのインデックスも含まれています．これは，base ディレクトリで LATEX ファイル source2e.tex を，ここにあるソースファイルとクラスファイル ltxdoc.cls を使用してタイプセットすることで得られます．

TEX と LATEX についてもっと詳しく知りた人は，お近くの TEX ユーザーズグ
ループ，または国際的な TEX Users グループ（3 参照）にお問い合わせください．

クラストパッケージ

2

このセクションでは，LATEX ドキュメントの新しい構造と，classes と packages という新しいタイプのファイルについて説明します．

2.1

クラスとパッケージと何か

LATEX 2.09 と LATEX 2ε の主な違いは\begin{document}の前に置くコマンドです．
LATEX 2.09 ではドキュメントの種類を決めるために article あるいは book というスタイルが使われていました．そして twoside あるいは epsfig のようなオプションを指定していました．これらは\documentstyle によって指定されるようにな
りました．
\documentstyle[⟨options⟩]{⟨style⟩}
たとえば，二段組み（two-sided）の論文（article）で，ポストスクリプトの図が使われているなら：\documentstyle[twoside,epsfig]{article}のようにします．しかしながら，2 種類の異なるドキュメントのスタイルオプショ
ンがあります：twoside のような組み込みのオプションと epsfig.sty のようなパッケージを要求雨するものです．これらは全く異なる目的をもっています．どのような LATEX ドキュメントスタイルでも epsfig パッケージを使うことがありますが，二段組と宣言されたドキュメントは，そのドキュメントスタイルとなります．
このような混乱を避けるために LATEX 2ε では，組み込みのオプションとパッ
ケージとを区別します．新しく\documentclass と\usepackage コマンドを用い

5

\documentclass[⟨options⟩]{⟨class⟩}\usepackage[⟨options⟩]{⟨packages⟩}のようにします．たとえば，二段組の論文でポストスクリプト（eps）の図を用いるなら\documentclass[twoside]{article}\usepackage{epsfig}のようにします．1 行の\usepackage コマンドで複数のパッケージの読み込みを指定できます．つまり\usepackage{epsfig}\usepackage{multicol}のように書く代わりに，まとめて\usepackage{epsfig,multicol}のようにすることもできます．新しい LATEX 2ε は古い LATEX 2.09 の\documentstyleが処理できるようになっています．このとき LATEX 2ε は LATEX 2.09 互換性モードにはいります．これについては 4 節で説明しています．
しかし，新しく描くドキュメントに\documentstyle コマンドを使ってはいけません．互換性モードの処理は遅く，LATEX 2ε の新しい特徴を使うことができません．
クラスとパッケージとの違いですが，ドキュメントクラスは拡張子が.sty では
なくて.cls であることです．パッケージの拡張子は.sty のままで，変更されていません．したがって，ほとんどの LATEX 2.09 のパッケージは，そのまま LATEX 2εでも動作します．

2.2

クラスとパッケージのオプション

LATEX 2.09 では，ドキュメントスタイルだけが twoside や draft のようなオプションをもつことができます．LATEX 2ε では，クラスもパッケージもオプションをもつことができます．たとえば，二段組でグラフィックスのある論文の場合は，dvips ドライバに対して\documentclass[twoside]{article}\usepackage[dvips]{graphics}のように指示します．
パッケージは共通のオプションを併用できます．たとえば，color パッケージを用いるならば6

\documentclass[twoside]{article}\usepackage[dvips]{graphics}\usepackage[dvips]{color}のようにします．

\usepackage は複数のオプションを与えることができるので，\documentclass[twoside]{article}\usepackage[dvips]{graphics,color}のように短く書くこともできます．
さらに，パッケージは，それぞれのオプションが適切なら\documentclass コ
マンドに与えることもできるので，\documentclass[twoside,dvips]{article}\usepackage{graphics,color}のように書くこともできます．
クラスとパッケージのオプションについて詳しいことは，The LATEX Companionと LATEX 2ε for Class and Package Writers で説明されています．

2.3

標準のクラス

次に示すクラスは LATEX と一緒に配布されています．

article 論文用の article については LATEX: A Document Preparation System
を参照してください．
book 書籍用の book については LATEX: A Document Preparation System を参照してください．
report レポート用の report については LATEX: A Document Preparation System を参照してください．
letter 手紙用の letter については LATEX: A Document Preparation System を参照してください．
slides スライド用の slides については LATEX: A Document Preparation System
を参照してください．以前は SliTEX と呼ばれていたものです．
proc これは論文集のためのもので，article を基にして作られました．以前はproc パッケージでした．
ltxdoc LATEX を説明するドキュメント作成のためのドキュメントクラスです．
article を基にして作られています．
7

ltxguide LATEX 2ε for Authors と LATEX 2ε for Class and Package Writers のためのドキュメントクラスです．article を基にして作られています．いま読んでいるドキュメントは，この ltxguide を使って書かれました．このクラスのレイアウトは将来の LATEX がリリースされた時には変更されるでしょう．
ltnews LATEX News に使われているドキュメントクラスで，article が基になっています．このクラスのレイアウトは将来の LATEX がリリースされた時には変更されるでしょう．
minimal このクラスは，LATEX クラスファイルで必要とされる最低限（3 行）のものです．テキストの幅と高さを設定し，\normalsize を定義するだけです．これは主に，article のような ‘完全 ’ クラスをロードする必要がない
状況で，LATEX コードのデバッグとテストためにあります．さらに article
クラスで提供される構造と大きく異なる構造をもつドキュメントのために
新しいクラスを，article の影響なく設計したいときには，これを基にして必要な構造を追加すればよいでしょう．

2.4

New feature
1995/12/01

標準パッケージ

次のパッケージは LATEX と一緒に配布されています．

alltt このパッケージは alltt 環境を与えます．これは verbatim 環境と似ていますが，\，{と}は，本来の意味をもちます．詳しくは alltt.dtx と LATEX:A Document Preparation System を参照してください．

New feature
1994/12/01

doc これは LATEX プログラムのドキュメントをタイプセットするための基本パッケージです．詳しくは doc.dtx と LATEX: A Document Preparation System
を参照してください．
exscale これは数式フォントを拡大するためにあります．詳しくは exscale.dtxと LATEX: A Document Preparation System を参照してください．
fontenc 特定のフォントエンコーディングを LATEX で使う時に使われます．詳
しくは ltoutenc.dtx を参照してください．
graphpap このパッケージは\graphpaper を定義しています．picture 環境で使われます．

New feature
1994/12/01

ifthen ‘if. . . ならば . . . そうでなければ do. . . ’ という形のコマンドを与えます．
詳しくは ifthen.dtx と The LATEX Companion を参照してください．
inputenc LATEX で，どの文字コードで処理するのかという指示を与えます．詳
しくは inputenc.dtx を参照してください．
latexsym LATEX 2ε はデフォルトでは LATEX 記号をロードしません．このフォントを使うのなら，latexsym パッケージを使います．詳しくは latexsym.dtxと The LATEX Companion を参照してください．また，6 節にも説明があります．
8

New feature
1994/12/01

makeidx 索引を生成するためのコマンドを提供します．詳しくは LATEX: A Document Preparation System と The LATEX Companion を参照してください．
newlfont LATEX 2.09 のフォントコマンドを New Font Selection Scheme でエ
ミュレートするために使います．詳しくは The LATEX Companion を参照
してください．
oldlfont LATEX 2.09 のフォントコマンドをエミュレートするために使います．詳
しくは The LATEX Companion を参照してください．
showidx \index コマンドで拾われている索引項目を，それぞれのページに表示します．詳しくは LATEX: A Document Preparation System を参照してく
ださい．
syntonly タイプセッティングをせずにドキュクメントを処理する時に使われます．詳しくは syntonly.dtx と The LATEX Companion を参照してくだ
さい．
tracefnt LATEX でフォントのローディングで，どれくらいの情報が使われているかを管理することができます．詳しくは The LATEX Companion を参照
してください．

2.5

補助してくれるソフトウェア

次のソフトウェアは，LATEX 2ε と一緒に同じ配布元から入手できます．LATEX:A Document Preparation System に記載されているすべてのファイルを得るには，少なくともグラフィックス graphics とツール tools を入手する必要があります．amsmath パッケージ（amslatex の一部と以前は amstex と呼ばれていました）と babel については，LATEX: A Document Preparation System の C.5.2 項の‘standard packages’ のリストにも示されています．

New description
1998/12/01

amslatex アメリカ数学会のための高度な数学組版のためのパッケージです．これには amsmath パッケージが含まれています．複雑な数式を組版するための多くのコマンドを提供します．これは，アメリカ数学会によって作成されサポートされており，The LATEX Companion を参照してください．
babel このパッケージおよび関連ファイルは，多言語でのタイプセットをサポートします．詳しくは The LATEX Companion を参照してください．
cyrillic キリル文字の組版に必要なものすべて（ただしフォントは含まれていません）．
graphics これには graphics が含まれています．これはグラフィックスを管理と変換，そして他のソフトウェアで作成されたグラフィックスを取り込みます．color パッケージも含まれており，これはカラーでのタイプセットをサポートしています．これらのパッケージについて詳しくは The LATEXCompanion を参照してください．

9

New feature
1998/12/01

psnfss さまざまな種類のポストスクリプトの Type 1 フォントでタイプセットするために必要なもの（ただしフォントは含まれていません）．
tools LATEX3 開発チームによって作成されたさまざまなパッケージ．
これらのパッケージは，いずれもドキュメントが含まれています．また The LATEXCompanion と LATEX: A Document Preparation System のいずれかにも解説が
あります．

2.5.1

ツール

ここに示したパッケージも，インストールされているでしょう（ただしシステム
によっては，少々名前が異なるかもしれません）．

array これらは array，tabular，tabular*環境に機能を加えて拡張したもの
です．
calc 長さやカウンタの値を指定する時に適切な代数記号を使うためのものです． New featuredcolumn 表を作成する時に ‘小数点’ で一揃えをするためのものです．使う時には array パッケージが必要です．
delarray 配列の周りに大きな ‘区切り記号’ が必要な時に使います．使う時にはarray パッケージが必要です．
hhline 表の作成の時に水平の位置の微調整をする時に使います．使う時にはarray パッケージが必要です．
longtable 複数のページにまたがる表を作成します．（これは array パッケージが必要ではありませんが，両方をロードされていたら，機能が拡張されている方が使われます）
tabularx tabularx 環境を定義します．これは tabular*と似ていますが，列と列の幅ではなくて，列の幅を変更し，表の幅に合わせます．
afterpage 現在のページの後ろにテキストを入れます．
bm 太字の数式記号を使います．
enumerate enumerate 環境の機能拡張バージョンです．
fontsmpl ‘フォント見本’ を作成するためのパッケージとテストファイルです．
ftnright 二段組みの時に脚注を右の段の下に置きます．
indentfirst 節などのの最初のパラグフを字下げします．
layout 現在使用しているドキュメントクラスでのページレイアウトを表示します．
multicol コラムの幅を均等にして，テキストをコラムで作成します．
10

1996/12/01

rawfonts LATEX 2.09 の古い内部フォント名でロードされるフォントを指定しま
す．6.2 節を参照してください．
somedefs パッケージオプションを選択して処理します．（rawfonts パッケージで使用されます）．
showkeys \label，\ref，\cite などで指定された ‘キー’ を印字します．推敲
のときに使用すると便利です．
theorem ‘定理のような’ 環境を便利に定義します．
varioref ページの参照を賢く処理をします．
verbatim verbatim 環境の便利な拡張です．
xr 外部のドキュメントに対して相互参照を行います．
xspace コマンド名の後ろにスペースが発生しないというよくある間違いを避けるための ‘スマートスペース’ コマンドです．

3

コマンド

この節では LATEX 2ε で加わった新しいコマンドを解説します．詳しいことは
LATEX: A Document Preparation System と The LATEX Companion で説明されています．

3.1

初期化コマンド

初期化コマンドは\documentclass の前に置かなければなりません．
\begin{filecontents} {⟨file-name⟩}⟨file-contents⟩\end{filecontents}

filecontents 環境とは，単一のドキュメントファイルにパッケージ，オプショ
ン，またはその他のファイルの内容をまとめることを意図しています．ドキュメ
ントファイルが LATEX 2ε で実行されている場合，この環境の本体は，環境の唯一の引数として名前が与えられたファイルにそのままで（verbatim）（コメント行の前に）書かれます．ただし，そのファイルがすでに存在する場合は，情報メッ
セージ以外は何も起こりません．
通常の ASCII テキスト文字（7 ビットの可視テキスト）だけが filecontents
環境に含まれていなければなりません．不可視文字である，タブ文字，フォーム
フィード，8 ビット文字などは，filecontents 環境には含めないでください．
タブとフォームフィードは警告を出します．警告では，これらが，それぞれス
ペースや空白行に変わることを説明します．8 ビット文字は TEX インストールに依存するので，何が起こるかは一般的には予測できません．

11

filecontents 環境は LATEX ファイルをインクルードするために使用されます．
他のプレーンテキストファイル（たとえば Encapsulated PostScript ファイルなど）の場合は，コメント行を追加しない filecontents*環境を使わなければなりません．
これらの環境は\documentclass の前に置くことしか許されていません，このように制限することで，ドキュメントにバンドルされるどのようなパッケージでも，必要に応じて提供できるのです．

3.2

プレアンブルのコマンド

プリアンブルコマンドの変更は，LATEX 2ε ドキュメントを古いドキュメントとの違いが明確になるように意図的に設計されました．コマンドは\begin{document}の前に使わなければなりません．
\documentclass [⟨option-list⟩] {⟨class-name⟩} [⟨release-date⟩]

LATEX 2.09 のコマンド\documentstyle を置き換えたものです．
ドキュメントには\documentclass は一つだけしか使うことができません．そして filecontents 環境の後ろに置かなければなりません．また，他のコマンドよりは前に置きます．

⟨option-list⟩ はオプションのリストです．それらは ⟨class-name⟩ ファイルで定義されているフォーマット要素を変更するためのものです．そして\usepackage コマ
ンドが続きます（続いて説明します）．オプション引数 ⟨release-date⟩ によって，クラスファイルの最新のリリース日を指定できます．クラスファイルは yyyy/mm/ddの形式で日付を含めなければなりません．クラスファイルのバージョンがこの日付より古い場合は，警告が出されます．
たとえば，二段組みの論文を作成するのに，1994 年 6 月よりも後にリリースされた article.cls のバージョンを使いたい場合は\documentclass[twocolumn]{article}[1994/06/01]とします．
\documentstyle [⟨option-list⟩] {⟨class-name⟩}

このコマンドは降りファイルとの互換性のためにサポートされています．本質
的には\documentclass と同じですが，LATEX 2.09 互換モードが起動します．また，クラスファイルによって処理されなかった ⟨option-list⟩ のオプションは，クラスのロードされた後にパッケージとしてロードされます．詳しいことは 4 にある LATEX 2.09 互換モードを参照してください．

12

\usepackage [⟨option-list⟩] {⟨package-name⟩} [⟨release-date⟩]

利用できる\usepackage の数に制限はありません．それぞれのパッケージ（mpackage-name で示しました）は，新しい要素（あるいは\documentclass コ
マンドの ⟨class-name⟩ 引数でロードされたクラスファイル定義の変更）を定義します．パッケージファイルは，このようにドキュメントの範囲を拡張します．

⟨option-list⟩ 引数はオプションのリストを含むことができます．それらは ⟨package-name⟩
ファイルで定義されていたフォーマット要素を変更できます．
上述したように，⟨release-date⟩ はパッケージファイルの日付を yyyy/mm/ddというフォーマットでのみ含むことができます．パッケージの古いバージョンが見つかった場合は，警告が出されます．
たとえば，graphics を dvips ドライバの使用するさいに，1994 年 6 月以降のgraphics.sty をロードするなら，\usepackage[dvips]{graphics}[1994/06/01]と書きます．
それぞれのパッケーは 1 回だけロードします．同じパッケージが 2 回以上要求されても，最初の\usepackage でオプションの追加の設定がなければ，2 回目以
降は何もしません．追加されたオプションではエラーメッセージが表示されことがあります．この場合，解決するためには 6 節を参照してください．

\usepackage コマンドの ⟨option-list⟩ で与えられたオプションを処理するだけ
でなく，それぞれのパッケージは\documentclass コマンドの ⟨option-list⟩ も処理します．言い換えると，すべてのパッケージ（正確には動作を指定するすべてのパッケージ）で処理する必要のあるオプションは，それを必要とするパッケー
ジごとに繰り返し指定するのではなく，\documentclass コマンドで一度だけ指定するということです．
\listfiles

このコマンドがプリアンブルに置かれている場合，（ドキュメントの処理の結果として）読み込まれたファイルのリストが，実行の最後に端末（およびログファイル）に表示されます．可能であれば，短い説明も作成されます．
警告：このコマンドは，\input{⟨file⟩}あるいは\include{⟨file⟩}などの LATEX New description
コマンドを使用して読み込まれたファイルのみを一覧表示します．ファイルが 1995/12/01
プリミティブな TEX のシンタックス\input file を使用して読み込まれた場合は（ファイル名の前後に中括弧 { }は付けられません），リストには表示されません．
LATEX 形式で中括弧を使用しないと，大きな問題が発生し，重要なファイルが上書きされる可能性があります．それを避けるために，常に中括弧に入れます．
\setcounter{errorcontextlines} {⟨num⟩}

TEX 3 で新しいプリミティブ\errorcontextlines を導入しました．これはエラーメッセージのフォーマットを管理します．LATEX 2ε は標準の\setcounter コ
13

マンドを通して，\errorcontextlines とのインターフェースを提供します．ほとんどの LATEX ユーザは，エラーが出たからといって LATEX コマンドの内部の定義を見ようとは思わないでしょう．ですから LATEX 2ε はデフォルトで −1 にして
います．

3.3

ドキュメントの構造

ドキュメントクラスの book には，ドキュメントの構造のための新しいコマンド\frontmatter\mainmatter\backmatterが導入されました．
これらのコマンドは，それぞれ\frontmatter で前付け（扉，目次，序文），\mainmatter で本文，\backmatter で後付け（参考文献，索引，奥付）であることを明確に示します．

3.4

定義

LATEX では，コマンドはは必須の引数とオプションの引数の両方をもつことができます．たとえば\documentclass[11pt]{article}

では，11pt という引数がオプションですが，article クラスという名前は必須
です．

LATEX 2.09 ユーザは引数をもつコマンドを定義していましたが，それらは必須の引数でなければなりません．LATEX 2ε ユーザの場合は，コマンドと環境の両方でオプションの引数を定義できます．
\newcommand {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}\newcommand* {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}\renewcommand {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}\renewcommand* {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}

これらのコマンドには，新しい，つまり 2 番目のオプション引数があります．
これは 1 つのオプションの引数を取るコマンドを定義するために使用されます．
この新しい引数について，単純な（したがってそれほど実用的ではない）例題によって説明します．
\newcommand{\example}[2][YYY]{Mandatory arg: #2;
Optional arg: #1.}

14

これは\example を，{⟨definition⟩}の中で#1 と#2 で示される 2 つの引数をもつコマンドとして定義します．これは珍しいことではありません．しかし，この\newcommand（[YYY]）に第 2 のオプションの引数を追加することによって，新
しく定義されたコマンド\example の最初の引数（#1）は省略可能になり，そのデフォルト値は YYY になります．
つまり\example の使用結果は\example{BBB}とすれば，Mandatory arg: BBB; Optional arg: YYY.とプリントされるか，あるは，\example[XXX]{AAA}とすれば，Mandatory arg: AAA; Optional arg: XXX.とプリントされます．
オプション引数のデフォルトの値は YYY です．この値は\example を作る\newcommandの [⟨default⟩] 引数で決まります．
別の，もっと便利な例は，次の定義\newcommand{\seq}[2][n]{\lbrace #2_{0},\ldots,\,#2_{#1} \rbrace}です．これの入力$\seq{a}$は数式 {a0 , . . . , an } が生成されます．一方で，入力$\seq[k]{x}$では {x0 , . . . , xk } が生成されます．
まとめますと，コマンド\newcommand {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}は，⟨cmd ⟩ を引数 ⟨num⟩ をもつコマンドとして定義します．最初の引数はオプションで，デフォルトの値は ⟨default⟩ です．
注意しなければならないのは，ここの例はオプション引数が 1 つだけであることです．以前と同じように，引数は 9 個までもつことができます．

15

\newenvironment {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨beg-def ⟩} {⟨end-def ⟩}\newenvironment* {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨beg-def ⟩} {⟨end-def ⟩}\renewenvironment {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨beg-def ⟩} {⟨end-def ⟩}\renewenvironment* {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨beg-def ⟩} {⟨end-def ⟩}LATEX 2ε は，1 つのオプション引数を、もつ環境を作ることもサポートしています．2 つのコマンドのシンタックスは，\newcommand と同じ方針で拡張されています．
\providecommand {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}\providecommand* {⟨cmd ⟩} [⟨num⟩] [⟨default⟩] {⟨definition⟩}

これは\newcommand と同じ引数を取ります．⟨cmd ⟩ が定義済みならば，存在している定義はそのまま使われます．しかし未定義なら，\providecommand の効果
は，\newcommand で行ったように，⟨cmd ⟩ を定義しておかなければなりません．
上記の 5 つの ‘定義コマンド’ はすべて，テキストの全段落を含むことが意図されていない限り，通常，引数付きのコマンドを定義するときに使用される形式である星印*形式をもちます．さらに，星印のない形式を使用する必要がある場合は，その引数が適切に定義された環境の内容として扱われるのが良いかどうかを調べる必要があります．

New feature
1994/12/01

上記で示した 5 つの ‘定義コマンド’ によって生成されたコマンドは，今では堅牢（robust）になりました．

New feature
1995/12/01

3.5

ボックス

次に示す 3 つのコマンドは LR-boxes 作成のためのもので LATEX 2.09 に存在していました．これらは，次の方法で拡張されました．
\makebox [⟨width⟩] [⟨pos⟩] {⟨text⟩}\framebox [⟨width⟩] [⟨pos⟩] {⟨text⟩}\savebox {⟨cmd ⟩} [⟨width⟩] [⟨pos⟩] {⟨text⟩}

LATEX 2ε での小さくみえて，とても大きな変化の 1 つは，⟨width⟩ 引数の中だ
けで，4 つの特別な長さを使用できることです．これらはボックスの次元をもち，単に\mbox{⟨text⟩}を使って生成されます．
\height its height above the baseline;\depthits depth below the baseline;\totalheight\widththe sum of \height and \depth;

its width.

したがって，自然な長さ 2 つ分のボックスの中心に ‘hello’ を置きたい場合は，

16

\makebox[2\width]{hello}と書きたいでしょう．あるいは，四角形のボックスの中に f を f\framebox{\makebox[\totalheight]{\itshape f\/}}のようにして入れることもできます．注意しなければならないのは，枠付きのボックスの枠も含めた全部の長さは，\totalheight に設定されていることです．
もう 1 つの変更は，⟨pos⟩ の新しい可能性です．l と r に加えて s が追加されました．⟨pos⟩ が s ならば， テキストはボックスの長さにあわせて引き伸ばされ，ボックスの中身には任意の ‘ゴム長さ（rubber lengths）’（ここで単語の間のスペースを含みます）が使用されます．そのような ‘ゴム長さ’ が与えられていない場合は ‘underfull box’ という表示が出ます．
\parbox [⟨pos⟩] [⟨height⟩] [⟨inner-pos⟩] {⟨width⟩} {⟨text⟩}\begin{minipage} [⟨pos⟩] [⟨height⟩] [⟨inner-pos⟩] {⟨width⟩}⟨text⟩\end{minipage}

上で示したボックスコマンドと同じような，\height，\width などがボックスの自然な長さを表すために [⟨height⟩] 引数で使われます．

LATEX 2ε では ⟨inner-pos⟩ 引数が新しくなりました．\makebox などの ⟨pos⟩ 引
数に垂直で，ボックス内の ⟨text⟩ の位置を決定します．⟨inner-pos⟩ は，t，b，c，
あるいは s のいずれか 1 つであり，それぞれ上，下，中央， ‘引伸’ して一揃えをします．⟨inner-pos⟩ 引数が指定されていない場合，LATEX は ⟨pos⟩ と同じ値を与えます（これは後者のデフォルト値です）．
\begin{lrbox} {⟨cmd ⟩}⟨text⟩\end{lrbox}

これは何も直接プリントしない環境の一つです．その効果は，
mtext のタイプセットを ⟨cmd ⟩ に保存することです．したがって，\sbox {⟨cmd ⟩}{⟨text⟩}のようなものでが，⟨text⟩ の中身の前後の空白は無視されます．
これは，⟨text⟩ の中で\verb コマンドと verbatim 環境を使うことができるので便利です．
これは，たとえば ‘framed box’ 環境を定義することにも使うことができます．最初にこの環境を使って ⟨cmd ⟩ にテキストを保存して，そしてから\fbox{\usebox{⟨cmd ⟩}}を呼び出します．
次の例では，fmpage を呼び出して環境を定義しています．これは minipage の枠付きバージョンです．

17

\newsavebox{\fmbox}\newenvironment{fmpage}[1]{\begin{lrbox}{\fmbox}\begin{minipage}{#1}}{\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}}

3.6

長さを測る

最初のコマンドは LATEX 2.09 にあったものです．新しい 2 つのコマンドが何かは明らかでしょう．
\settowidth {⟨length-cmd ⟩} {⟨lr text⟩}\settoheight {⟨length-cmd ⟩} {⟨lr text⟩}\settodepth {⟨length-cmd ⟩} {⟨lr text⟩}

3.7

線の終わり

コマンド\\は，様々なところで行の終わりを示すの使われますが，節のタイトルに使われる時になどに，堅牢なコマンドになりました．

New description
1994/12/01

どのような種類の線が終わるのかということを知る必要があります．そこで，次の新しいコマンドを導入しました．これらも\\と同じ引数を取ります．
New feature
1994/12/01\tabularnewline [⟨vertical-space⟩]

使用例の一つとして，tabular 環境の最後の列のテキスト\raggedright で設定されています．そして，\tabularnewline は tabular の行の終わりを示すために使用できますが，\\は列内の段落内のテキスト行の終わりを示します．このコマンドは array 環境でも tabular と同じように使うことができます．さらに，
この環境の拡張版が array パッケージと longtable パッケージとして，tools に含
まれています．

3.8

改ページの制御

ときどき必要となることは、ドキュメントの最終バージョンで LATEX が望ましい
箇所で改ページをするのを ‘助けてあげる’ ことです．LATEX 2.09 にはこのような状況のためのコマンドがありました．それらは\clearpage, \pagebreak などです．LATEX 2ε では，これらに加えて，長いページだけでなく短いページを生成できるコマンドがあります．
\enlargethispage {⟨size⟩}\enlargethispage* {⟨size⟩}

これらのコマンドはページの高さ（標準値は\textheight）を ⟨size⟩ で指定した量だけ増やします．この変更は現在のページだけに反映します．

18

これを使うと，例えば，ページに収まるように余分な線を引いたり，負の長さにして通常のページより狭くできます．
星印付きも，テキストを 1 ページに収まるように可能な限り空白行を縮めます．
これらのコマンドは，脚注のテキストの位置を変更しません．したがって，テ
キストの量（行数）が多いと脚注と重なってしまいます．

3.9

フロート

新しいコマンド\suppressfloats と新しい ‘フロート指示’ があります。これら
は LATEX のフロートを配置するアルゴリズムを、さらによく管理するために使われます。
\suppressfloats [⟨placement⟩]

このコマンドは、それ以上のフローティング環境が現在のページに置かれないよ
うにします。オプション引数 t あるいは b（どちらか一つ）で制限すれば、フロートをページの上または下に置きます。通常ならこのページに配置されるフロート
は、次のページに配置されます。
The extra float location specifier: !

フロートの位置決めオプションには、h、t、b と p から少なくとも一つを指定します。

!が与えられていたら、この特別なフロートは次のようなことは無視されます。
• フロートの数についてのすべての制限、• テキストページのスペースの量に関する明示的な制限は、フロートかテキ
ストで埋められます。
このメカニズムは、このような状況でもページがオーバーフルにならないように努力し、同じタイプのフロートは正しい順序で印刷されるようにします。
これがフロートのページの生成には影響を与えないことに注意してください。

!指定子は，この特別なフロートについての\suppressfloats コマンドを無視
します。

3.10

フォントの変更：テキスト

LATEX 2ε で使用されているフォント選択スキームは、LATEX 2.09 で使用されているフォント選択スキームと異なることが多いです。この節では、新しいコマンドについて簡単に説明します。詳しい説明と実例については The LATEX Companion
19

New description
1995/12/01

にあります。クラスととパッケージの製作者向けのインターフェースは LATEX 2εFont Selection で説明されています。
\rmfamily\sffamily\ttfamily\mdseries\bfseries\upshape\itshape\slshape\scshape

これらはフォントコマンドで、rm、bf などと同じです。違いは、これらのコ
マンドではフォントの 1 つの属性だけを変更することです（変更された属性は名前の一部です）。これによる結果の 1 つは、たとえば、\bfseries\itshape はシ
リーズの変更と字形の変化の両方を行うので、太字のイタリック体を与えます。
\textrm{⟨text⟩}\textsf{⟨text⟩}\texttt{⟨text⟩}\textmd{⟨text⟩}\textbf{⟨text⟩}\textup{⟨text⟩}\textit{⟨text⟩}\textsl{⟨text⟩}\textsc{⟨text⟩}\emph{⟨text⟩}

これらは引数を 1 つだけもつコマンドです。特定のフォントでタイプセットさせるテキストを引数として取ります。必要であれば斜体補正を自動的に挿入します。その結果が気に入らなければ、\/でイタリック補正を加えることも、nocorr
で削除することもできます。\nocorr は{⟨text⟩}引数の中で最初か最後に置かなければなりません。

3.11

フォントエンコーディング：数式

数学モードで使用されるフォントのほとんどは、明示的に呼び出す必要はありません。使うことができるフォントから文字を使用するために、以下のコマンド類が用意されています。

20

\mathrm {⟨letters⟩}\mathnormal {⟨letters⟩}\mathcal {⟨letters⟩}\mathbf {⟨letters⟩}\mathsf {⟨letters⟩}\mathtt {⟨letters⟩}\mathit {⟨letters⟩}

さらに引数として文字を 1 つだけとるコマンドがあり、それは特定のフォント
でタイプセットします。引数は数学モードで処理されるので、その中のスペースは無視されます。文字、数字、そしてアクセントだけが変更されます。たとえば、$\mathbf{\tilde A \times 1}$とすれば Ã × 1 が生成されます。

3.12

強制数式モード\ensuremath {⟨math commands⟩}

LATEX 2.09 では、数寿司気モードでもテキストモードでも働くコマンドが必要な場合は、次のようにすることでした。
\newcommand{\Gp}{\mbox{$G_p$}}

残念ですが、\mbox は\Gp が添え字や分数に現れる時に、正しい大きさになりま
せん。

LATEX 2ε では、次のようにします。
\newcommand{\Gp}{\ensuremath{G_p}}

こうすれば、\Gp は、どの文脈でも正しく働きます。
これが意味することは、\ensuremath は何もせずに、\Gp が数式モードで呼ばれたら単に G_p を生成します。しかし\Gp がテキストモードで呼ばれたとき、必要ならば数式モードに入り（処理が終わったら出）ます。

3.13

本文での添字の設定\textsuperscript {⟨text⟩}

LATEX 2.09 では、脚注記号などのテキストで使われる上付き文字は、内部的に数学モードに入り、数字を数式の上付き文字として生成されました。コンピュー
タモダンフォントが使用されている場合、数学フォントとテキストフォントの数
字は同じであるため、通常は正しい見た目となります。しかし、異なるドキュメン
トフォント（たとえば Times など）を選択すると、結果の見ためはおかしくなります。このため、\textsuperscript コマンドが用意されました。これは引数を
現在のテキストフォントを使って上付き文字の位置に正しいサイズでタイプセッ
トします。
21

New feature
1995/06/01

3.14

テキストコマンド：すべてのエンコーディング

LATEX 2ε と LATEX 2.09 の主な違いの 1 つは、LATEX 2ε が任意のエンコーディン
グのフォントを扱うことができることです。（フォントエンコーディングはフォ
ント内の文字の並びです。たとえば、キリル文字フォントはギリシア語フォントとは異なるエンコーディングになっています。）

New description
1994/12/01

英語やドイツ語などのラテン語に使用される 2 つの主要なフォントエンコー
ディングは、OT1（Donald Knuth の 7 ビットエンコーディングです。これは、長い間 TEX で使用されていました）と T1（8 ビットの ‘Cork ’ エンコーディングです）。

LATEX 2.09 は OT1 エンコードのみがサポートされていますが、LATEX 2ε は OT1と T1 のどちらもサポートされています。次の節では、T1 でエンコードされたフォントを使用する時に使う新しいコマンドについて説明します。この節では、すべてのエンコーディングで使用できる新しいコマンドについて説明します。
これらのコマンドのほとんどは LATEX 2.09 でも利用可能な文字を提供しています。たとえば、\textemdash は ‘エムダッシュ ’ を与えますが、これは LATEX 2.09 では --- のようにタイプしていました。しかし、いくつかのフォント（たとえばギリ
シア語のフォントなど）では、---のためのリガチャがありませんが\textemdash と入力すればエムダッシュを生成できます。
New feature
1994/12/01\r{⟨text⟩}

このコマンドは ‘輪っか’ のアクセントを与えます。たとえば、‘o̊’ を生成にするには\r{o}というようにタイプします。
New feature
1994/12/01\SS

このコマンドはドイツ語の ‘SS’、つまり大文字の ‘ß’ を生成します。この文字の綴りは ‘SS’ ではないので、大文字で入力します。
New feature
1994/12/01\textcircled{⟨text⟩}

このコマンドは\copyright のような ‘丸囲み文字’ を作るのに使われます。たa が生成されます。
とえば\textcircled{a}とすれば⃝
New feature
1994/12/01\textcompwordmark

このコマンドは通常なら理ガチャされる文字を話して生成するために使われます。たとえば、f\textcompwordmark i とすれば、‘fi’ となります。‘f’ と ‘i’ は、‘fi’ となりません。これは英語では、滅多に必要とはなりません（‘shelfful’ が、稀な例です）が、ドイツ語などでは必要となります。
New feature
1994/12/01\textvisiblespace22このコマンドは ‘見える空白’ 文字 ‘ ’ を生成します。これはコンピュータのプ
ログラムリストなどで、たとえば ‘type hello world’ のように使われます。
\textemdash \textendash \textexclamdown \textquestiondown\textquotedblleft \textquotedblright \textquoteleft \textquoteright

New feature
1994/12/01

これらのコマンドは特殊な文字の生成かリガチャ（合字）させたいときに使わ
れます。
リガチャ
---!‘
?‘
‘‘
’’
‘
’

文 字
—
–
¡
¿
“
”
‘
’

コマンド
\textemdash\textendash\textexclamdown\textquestiondown\textquotedblleft\textquotedblright\textquoteleft\textquoteright

これらの文字を作る理由は、そのような文字をもっていないエンコーディングでも生成できるようにするためです。
New feature
1994/12/01\textbullet \textperiodcentered

これらのコマンドは、これまで数式モードでのみ使われる文字をテキストで使うためです。
数式コマンド\bullet
\cdot

文 字
•
·

テキストコマンド\textbullet\textperiodcentered\textbackslash \textbar \textless \textgreater

New feature
1995/12/01

これらのコマンドは、verbatim モードまたは数式モードでのみ使われる ASCII
文字を使うためです。
数式コマンド\backslash
\mid
<
>

文 字
\
|
<
>

テキストコマンド\textbackslash\textbar\textless\textgreater
New feature
1995/12/01\textasciicircum \textasciitilde

これらのコマンドは、verbatim モードでのみ使われる ASCII 文字を使うためです。

23

verbatim^~

テキストコマンド\textasciicircum\textasciitilde
New feature
1995/12/01\textregistered \texttrademark

これらのコマンドは ‘登録商標

3.15(R) 記号と ‘商標’(TM) 記号を生成します。

テキストコマンド：T1 エンコーディング

OT1 フォントのエンコーディングは英語のタイプセットには問題ありませんが、 New description
他の言語のタイプセットには問題があります。T1 エンコーディングは、余分な文 1994/12/01
字（たとえば ‘eth’ と ‘thorn’）を提供することによってこれらの問題のいくつかを解決し、アクセント付きの文字を含む単語のハイフネーション（babel のようなパッケージを使えばアメリカ英語以外のハイフネーション）も行えます。
この節では、T1 フォントをもっている場合に、それを使う方法を説明します。
そのためには、‘ec fonts’、あるいは ‘textf psnfss で使われているような T1 で
エンコードされた PostScript フォントが必要です。これらすべてのフォントはComprehensiveTEX アーカイブ（CTAN）の匿名 ftp で取り寄せるか、4allTEX 、または TEX Live という CD-ROM から入手できます。（TEX ユーザーグループから入手できます）。
これらの準備ができたら、T1 フォントは、次のようにすれば選ぶことができます。
\usepackage[T1]{fontenc}

こうすれば、この節で説明しているコマンドが利用できます。
注意：このドキュメントは、最新の LATEX を実行しているサイトで処理可能にするために、T1 エンコードされたフォントのみ存在する文字は含みません。つまり、このドキュメントでは、これらのグリフがどうであるかを表示できません。
それらを見たいなら、fontsmpl ドキュメントを LATEX で実行してください。プ
ロンプト ‘cmr ’ が現れたらフォントのファミリーネームを与えてください。
New feature
1994/12/01\k{⟨text⟩}

このコマンドはポーランド語などの ‘オゴネク’ アクセントを生成します。
New feature
1994/12/01\DH \DJ \NG \TH \dh \dj \ng \th

これらのコマンドは、文字 ‘eth’、‘dbar’、‘eng’‘thorn’ を生成します。
\guillemotleft \guillemotright \guilsinglleft \guilsinglright\quotedblbase \quotesinglbase \textquotedbl

24

New feature
1994/12/01

これらのコマンドは、いろいろな引用符を生成します。大まかに表示すれば、次のようななものです。≪a≫ <a> ,,a“ ,a‘そして"a"。
したがって T1 エンコードされフォントだけを使っている場合に必要なリガチャが必要となります。

New description
2001/06/01

ギュメ記号\guillemotleft と\guillemotright1 は、<<と>>、そして\quotedblbase
は,, とすれば得られます。
さらに、予想外の結果ですが、OT1 エンコードフォント、<と>は<と>とすれば得られます。
さらに注意することは、単一の文字"は” を生成しませんが、\textquotedbl とすれば得ることができます。

3.16

ロゴ

\LaTeX\LaTeXe\LaTeX（‘LATEX’ が生成されます）は、現在でも主なロゴコマンドですが、新しい機能を示したいときには、\LaTeXe（‘LATEX 2ε ’ が生成されます）とします。

3.17

描画コマンド\qbezier[⟨N ⟩](⟨AX ⟩,⟨AY ⟩)(⟨BX ⟩,⟨BY ⟩)(⟨CX ⟩,⟨CY ⟩)\bezier{⟨N ⟩}(⟨AX ⟩,⟨AY ⟩)(⟨BX ⟩,⟨BY ⟩)(⟨CX ⟩,⟨CY ⟩)\qbezier コマンドは、picture モードで、(⟨AX ⟩,⟨AY ⟩) から (⟨CX ⟩,⟨CY ⟩)までの 2 次の Bezier 曲線をコントロール点を (⟨BX ⟩,⟨BY ⟩) で描くときに使われます。
たとえば、ダイアグラム

は、次のようにして描かれます。
\begin{picture}(50,50)\thicklines\qbezier(0,0)(0,50)(50,50)
1 私たちは、アドビの多くの特徴をサポートするために、混乱させたことについて、再度謝ります！

25

\qbezier[20](0,0)(50,0)(50,50)\thinlines\put(0,0){\line(1,1){50}}\end{picture}\bezier コマンドは、これまでと同じですが、引数 ⟨N ⟩ はオプションではありません。これは LATEX 2.09 の bezier ドキュメントのスタイルオプションとの互換性のために与えられています。

3.18

古いコマンド\samepage\samepage コマンドはまだ存在しますが、もはや維持されていません。このコ
マンドはうまく機能しなかったためです。対象とする範囲内でページ区切りが発生しないことを保証していません。脚注とマージン（余白）が間違った場所に置かれることがあります。
私たちは、これの代わりに\enlargethispage をページ区切りコマンド\newpageと\pagebreak と組み合わせて、ページ区切りを制御することをお勧めします。
\SLiTeX

SliTEX は存在しませんので、LATEX ではロゴは定義されていません。代わりに\textsc{Sli\TeX}を使ってください。SliTEX ロゴは、LATEX 2.09 互換モードでは定義されています。
\mho \Join \Box \Diamond \leadsto\sqsubset \sqsupset \lhd \unlhd \rhd \unrhd

これらの記号は、LATEX 2.09 で自動的に読み込まれる LATEX シンボルフォントには含まれています。しかし、TEX は数学フォントファミリを 16 種しか扱えません。そして多くのユーザーは、それらがなくなったことを発見しました。そのため LATEX 2ε は latexsym パッケージを使用しない限り、LATEX 記号フォントを読み込みません。
これらの記号は、異なるフォントを使用すれば利用できます。たとえば amsfonts
パッケージには、さらに多くの記号が定義されています。これは、アメリカ数学会から提供されています。

latexsym パッケージは、LATEX 2.09 互換モードでは自動的に読み込まれます。

4

LATEX 2.09 ドキュメント

LATEX 2ε はほとんどの LATEX 2.09 ドキュメントを LATEX 2.09 互換モードで処理できます。何も変更されていないので、LATEX を同じようなに実行でき、ほとん
26ど同じ結果を得ます。

‘ほとんど’ という理由は、いくつかの LATEX 2.09 パッケージは LATEX がサポートしない低レベルの機能を使っているからです。そのようなパッケージを見つけたら、LATEX 2ε でも機能するようになっているか調べてください。ほとんどのパッケージは、LATEX 2ε でもそのまま働きます— どのパッケージが問題ないかを確かめるためには、とにかく試してみることです。
LATEX 2.09 互換モードは、LATEX 2.09 をエミュレートしますが、その引き換えに時間がかかります。互換せモードは LATEX 2.09 に比べて 50 パーセントほど遅くなります。その上、LATEX 2ε の新しい機能は LATEX 2.09 互換モードにはあり
ません。

4.1

警

告

LATEX 2.09 互換モードは、2.09 のドキュメントの処理（かなり昔に書かれたものであってほしいのですが）、つまり古いシステムで書かれたためにその時代の骨董的な LATEX 2.09 を使いたい、のためだけにあります。

New description
1995/12/01

そのため、このモードは LATEX 2ε の拡張機能を使うためのものではありません。
新しいドキュメントを 2.09 ドキュメントのふりをさせて（つまり\documentstyleで始まる）処理すために使うべきではありません。LATEX 2ε にだけ備わっているコマンドや環境があるので、骨董的な LATEX 2.09 システムでは処理できません。
このようなシステムの誤用を防ぐため、そしてまた誤ってエンコードされたドキュメントで引き起こされる問題を回避するために、LaTeX 2.09 互換モードは新機能やコマンドのほとんどをオフにします。それらを使用しようとするとエラー
メッセージが表示され、さらに多くのものは機能せず、予期しない結果をもたらすことになります。これは意図的にしたことなので、そのようは現象が発生してもバグ報告を私たちに送らないように。

4.2

フォント選択時の問題

互換モードを使用すると、古いドキュメントで行っていたフォント変更コマンドに問題が起こることがあります。これらの問題には 2 種類があります。

• producing error messages;• not producing the font changes you expected.
このエラーメッセージでは、ドキュメント（あるいは古いスタイルファイルが使われている）は、サポートされなくなった古い内部コマンドへの参照がある場合です。このような場合の情報は 6.2 節にあります。
予想しない結果を得る例の一つは、新しい数式モードのフォント変更コマンドを使った時です。

27

New description
1995/12/01

$ \mathbf{xy} A $次のようにすると$ \bf {xy} A $A も太字になります。
LATEX 2.09 は、LATEX のインストールをカスタマイズすることができたので、インストールされた LATEX が異なれば異なる結果が得られました。LATEX 2ε は大きなカスタマイズをできないようしましたが、その代わりに古いドキュメントとの互換性のために、ローカルの設定ファイル latex209.cfg が LATEX 2ε が LATEX 2.09
互換モードに入るたびに読み込まれます。
たとえば、使用しているシステムが、新しいフォント選択スキーム（NFSS）を
oldlfont オプションで使用するようになっていれば、LATEX 2ε のエミュレートはこれに従って latex209.cfg ファイルに\ExecuteOptions{oldlfont}\RequirePackage{oldlfont}が生成されています同じように、newlfont オプションで NFSS をエミュレート
すると、latex209.cfg には\ExecuteOptions{newlfont}\RequirePackage{newlfont}が生成されています。

4.3

ネイティブモード

To run an old document faster, and use the new features of LATEX 2ε , you should
try using LATEX 2ε native mode. This is done by replacing the command: 古いドキュメントの処理を速く処理し、そして LATEX 2ε の新しい機能を使いたいのな
ら LATEX 2ε ネテイィブモードを使いなさい。コマンドを置き換えるだけですみます。古い\documentstyle[⟨options⟩,⟨packages⟩]{⟨class⟩}を\documentclass[⟨options⟩]{⟨class⟩}\usepackage{latexsym,⟨packages⟩}28

とします。しかし、いくつかのドキュメントはネテイィブモードでは働かず
LATEX 2.09 互換モードでしか処理できないでしょう。いくつかの LATEX 2.09 パッ
ケージは LaTeXe では LATEX 2.09 互換モードでのみ動作するでしょう。いくつかのドキュメント LATEX 2ε で改良されたエラー発見機能のために、エラーが出るでしょう。
しかし、ほとんどの LATEX 2.09 ドキュメントは LATEX 2ε のネイティブモード
で、上に示した変更のみで処理できます。もう一度言いますが、あなたのドキュ
メントがネイティブモードで働くかどうかは、実際に試すことです。

5

自分用の変更非常に簡単に行うことができる一般的な修正方法が 2 つあります。ただしそのよ New description
うな変更を使用して作成したドキュメントは、他の場所では使用できないことを 1995/12/01
忘れないでください（このようなドキュメントは ‘可搬性がない’ と呼ばれます）。
修正の 1 つのタイプは、頻繁に使用する記号または構造に対して自分用のコマン
ドの使うことです。これらをパッケージファイル（たとえば、mymacros.sty と呼ばれるファイル）に入れて、ドキュメントのプリアンブルで\usepackage{mymacros}として読み込みます。
もう一つの方法は、標準クラスに似せて自分用のクラスファイルを作ることです。それには、環境の追加、いくつかのパラメータの値を変更するなど、直接的な変更も含みます。これらはクラスファイルに入れる必要があります。ここでは、
article クラスと非常によく似ている larticle というクラスを使用して、そのようなファイルを構築する簡単な方法を説明します。
クラスファイル larticle.cls は（予備的な識別コマンドの後で）、つぎのよ
うに始めなければなりません。
\LoadClassWithOptions{article}

このコマンドに続くのは、article.sty ファイルを読み込んだ後で行いたい追加や変更です。
上記の\LoadClassWithOptions コマンドを使った効果は、標準クラスファイ
ル article をドキュメントで指定されたオプションで読み込むことです。したがって、larticle クラスを使用するドキュメントでも標準の article クラスを使用するときに指定できるオプションを指定できます。
\documentclass[a4paper,twocolumn,dvips]{larticle}6

いくつかの問題

この説では LATEX 2ε の使い方を間違った時に、どうすればよいかを説明します。

29

New feature
1995/12/01

6.1

新しいエラーメッセージLATEX 2ε には新しいエラーメッセージがたくさんあります。これらのエラーメッ
セージは、エラープロンプトに対して h を押せば、多くの助けとなる情報が得れれます。
Option clash for package ⟨package⟩.

パッケージは、異なるオプションで 2 回呼び出されました。h を押して、どのオプションを指定したかったのかを与えます。たとえば問題のドキュケントが\usepackage[foo]{fred}\usepackage[baz]{fred}であるとすれば、エラーメッセージはOption clash for package fred.

となるでしょう。ここで?プロンプトに対して h とタイプするとThe package fred has already been loaded with options:[foo]
There has now been an attempt to load it with options:[baz]
Adding the line:\usepackage[foo,baz]{fred}
to your document may fix this.
Try typing <return> to proceed.

と応答します。訂正するためには、そこで示されている通り、異なるオプション
を読み込みます。LATEX パッケージは、他のパッケージを呼び出すこともできる
ので、明示的に同じパッケージを 2 回呼び出さなくてもオプションの衝突が起こることがあります。
Command ⟨command ⟩ not provided in base NFSS.

LaTeXe ではデフォルトでは ⟨command ⟩ コマンドは与えられていません。このエラーは、次のコマンドの一つを呼び出すと発生します。
\mho \Join \Box \Diamond \leadsto\sqsubset \sqsupset \lhd \unlhd \rhd \unrhd

これらは現在では latexsym パッケージの一部です。解決策は、ドキュメントのプ
リアンブルで、次のようにして加えることです。

30

\usepackage{latexsym}
LaTeX2e command ⟨command ⟩ in LaTeX 2.09 document.

⟨command ⟩ は LATEX 2ε コマンドの一つですが、これは LATEX 2.09 ドキュメン
トです。解決策は、コマンドを LATEX 2.09 のコマンドに置き換えることか、あるいは、4.3 節で説明したようにネイテイィブモードでドキュメントを処理することです。
NFSS release 1 command \newmathalphabet found.

コマンド\newmathalphabet が新しいフォント選択スキームのリリース 1 で使われてましたが、これは\DeclareMathAlphabet で置き換えられました。使い方は LATEX 2ε Font Selection を参照してください。
一番よい解決策は、\newmathalphabet コマンドを含んでいるパッケージを更新することです。新しいパッケージを探すか、（あなたが作者ならば）LATEX 2εFont Selection を参照して新しいコマンドを知ることです。
このパッケージの更新さればバージョンが見つからない時は、newlfont あるいは
oldlfont パッケージを使って解決できます。これは LATEX に対して、\newmathalphabetのどのバージョンをエミュレートするかを伝えます。
つぎのような構文{\cal A}, etc.
でドキュメントの数学フォントで選択しているのなら oldlfont を使うべきです。
ドキュメントの構文が\cal{A}, etc.
であるならば、newlfont を使います。
Text for \verb command ended by end of line.

\verb コマンドが始まっていますが、この行の終わっていません。これは\verb
コマンドの末端文字を忘れていているのです。
Illegal use of \verb command.

\verb コマンドは別のコマンドの引数で使われています。これは LATEX では許されていません。警告なく間違った出力を生成します。LATEX 2ε はエラーメッ
セージを出します。

31

6.2

古い内部コマンドLATEX 2.09 の多くの内部コマンドは削除されましたので、それらの機能は異なる方法で行われています。新しいことやクラスとパッケージ作成者のためのサポートされているインタフェースについては LATEX 2ε for Class and Package Writersに詳しく述べてあります。
\tenrm \elvrm \twlrm . . .
\tenbf \elvbf \twlbf . . .
\tensf \elvsf \twlsf . . .
..
.

これらのコマンドは LATEX 2.09 でプレロードされる 70 個のフォントへのアクセスを提供していていました。対照的に LATEX 2ε では、14 個のフォントをプレロードして、メモリを節約します。この結果、上のコマンドを使ってフォントに直接アクセする LATEX ファイルは、もはや機能しません。
通常、次のようなエラーエッセージが 1 つ使われす。
! Undefined control sequence.
l.5 \tenrm

解決策は、LATEX 2ε で使われるフォント変更コマンドを使うようにドキュメント
更新することです。詳しいことは LATEX 2ε Font Selection に説明されています。
これが不可能な場合は、最後の手段として、rawfonts パッケージを使うことができます。これは 70 個の LATEX 2.09 フォントを読み込み、それらに古いコマン
ドで直接アクセスします。これには時間とメモリの両方が必要となります。70 個のフォントすべてをロードしたくない場合は、rawfonts を only オプションを使用
すれば、必要なフォントを選択できます。たとえば、tenrm と tenbf が必要なら、\usepackage[only,tenrm,tenbf]{rawfonts}と書きます。

rawfonts パッケージはツールソフトウェアとして LATEX の一部として配布されています。2.4 節を参照してください。

6.3

古いファイルLATEX を実行する上でよくある間違いの 1 つは、新しいバージョンではなく古いバージョンのパッケージを読み込んでしまうことです。標準パッケージから理解できないエラーメッセージが表示された場合は、パッケージの最新バージョンをロードしていることかどうかを確認してください。ロードされたパッケージのバージョンは、ログファイルに次のようなに表示されるので、確認できます。
32

Package: fred 1994/06/01 v0.01 Fred’s package.

適切な最新のドキュメントクラスあるいはパッケージを使ったかどうかは\documentclassと\usepackage に ⟨release-date⟩ オプションを使うことではっきりできます。こ
の方法は、古いソフトウェアを使っているかもしれない他の人や組織にドキュメントを送る時に便利です。

6.4

さらに助けが必要な場合遭遇した問題の解決策が見つからない場合は、LATEX: A Document Preparation
System あるいは The LATEX Companion の中を探してください。LATEX のインストールに問題があるのならば、配布ファイルに付属するインストールガイドをみてください。
それでもうまくいかない時、身近なところにいる LATEX の専門家や LATEX のメーリングリストにあたってください。
あなたがバグを発見したと思うなら、それを報告してください！まず最初に、問題が第三者のパッケージまたはクラスであるかどうかを調べます。2 節に記載されていないパッケージやクラスに引き起こされた問題であれば、LATEX3 プロ
ジェクトチーム宛ではなく、そのパッケージまたはクラスの作成者に報告してください。
バグが本当に LATEX の中にあるのならば、問題を明確に示す短くて自己完結したドキュメントを作成してください。そのファイルを最新の（1 年以内の）バー
ジョンの LATEX で実行し、そして latexbug.tex を LATEX で実行する必要があります。こうすると、latexbug.tex あるいは bugs.txt に記載されている LATEX
バグ用のアドレスに送るべきエラーリポートが、サンプルドキュメントとログファ
イルとともにできます。

7

楽しんで！

新しい企画の LATEX 楽しんでくれることを望みますが、これが不可能な場合は、このドキュメントが助けになり、うまくいくことを望みます。

LATEX が、あなたの役に立ち、プロジェクトチームの仕事をサポートしたくなったら、1.2 節を読んで実践的な方法を見つけてください。

References[1] Michel Goossens, Sebastian Rahtz and Frank Mittelbach. The LATEX Graphics Companion. Addison-Wesley, Reading, Massachusetts, 1997.
[2] Michel Goossens and Sebastian Rahtz. The LATEX Web Companion.
Addison-Wesley, Reading, Massachusetts, 1999.
33

[3] Donald E. Knuth. The TEXbook. Addison-Wesley, Reading, Massachusetts,
1986. Revised to cover TEX3, 1991.
[4] Leslie Lamport. LATEX: A Document Preparation System. Addison-Wesley,
Reading, Massachusetts, second edition, 1994.
[5] Frank Mittelbach and Michel Goossens. The LATEX Companion second edition. With Johannes Braams, David Carlisle, and Chris Rowley. AddisonWesley, Reading, Massachusetts, 2004.

34