LATEX2εの練習
内海 淳
平成 16 年 10 月 7 日
1 はじめに大学の人文・文学系の学部においては、日本語や英語以外の言語・文字の
文書や、様々な様式が混在した文書を扱う機会が多い。しかし、現在の多くのコンピュータシステムでは、このような文書を扱う際にはいくつかの問題点がある。これらの問題の解決策の一つとして、LATEX 2εを利用することが考えられる。
LATEX 2ε(もともとは TEX)は、元 Stanford大学教授 Donald E. Knuth氏が開発した、電子組版システムである。
1.1 これまでの問題点1.1.1 異なるプラットフォーム
現在、利用できるコンピュータは、Windows, Linux, Macintoshの三つの異なる種類の OS に分かれている。電子的な文書を配付したり、閲覧させる場合には、三つの異なるプラットフォームが混在していても、それほど問題は生じない。これら三つのシステムに共通して利用できる文書表示ソフト Adobe Acrobat Readerが存在するからである。すべてのシステムにこのAdobe Acrobat Readerをインストールしておけば、資料を PDF形式にしておくだけで、自由に資料を閲覧・利用することが可能となる。これに対して、外国語の作文など、文章の入力・作成を行う場合には、使用するアプリケーション、入力方法など、プラットフォームごとに異なる部分が大きい。
1.1.2 多言語使用
人文系の学部では、多くの言語を扱わなければならない。現在、弘前大学で開講されている外国語科目は、日本語と英語の他に、フランス語、ドイツ語、中国語、ロシア語、朝鮮語が、常に開講されている。このほかにもイタリア語、ラテン語、ギリシャ語、ルーマニア語、アラビア語なども開講され
1
ることがある。現在、どのプラットフォームも多言語化が押し進められているが、これらの多様な言語を混在させて扱えるようにはなっておらず、また、プラットフォームごとの違いも大きい。また、人文系の学部では、外国語教育以外でも特殊な様式の文書を扱う機会が多い。文学・歴史関係の分野では、縦書きの文書が中心で、その中で、ルビ、頭注、脚注、漢文の訓点など特殊な形式が必要とされる。また、言語学などでは、様々なアクセント記号や、発音記号を多用する。従来のワープロでこのような特殊な形式を扱うことは、なかなか難しく、専用のアプリケーションが必要になったりする上に、異なるプラットフォームの間での互換性が問題となってくる。 ただし、Unicodeの導入
が行き渡れば文字の互換性の問題は少なくなる。
1.2 LATEX2εの利点上で挙げた問題に対する解決案の一つとして、LATEX 2εの利用を試みてい
る。LATEX 2εの利点としては、以下のことが挙げられる。
クロスプラットフォーム Windows, Linux, Macintoshの三つのプラットフォームすべてに関して、LATEX 2εの同じ処理系が容易に入手可能であり、プラットフォームごとに異なる振る舞いをしない。編集する文書がプレーンテキスト形式なので、編集の特別なアプリケーションを必要としない。
多言語使用 ラテンアルファベットを用いる言語に関しては、ほとんど手を加えることなく扱うことができ、また、フォントとスタイルファイルを加えることによって、扱える言語を比較的容易に増やすことができる。
特殊な形式 縦書きの文書や、その中の、ルビ、頭注、脚注、漢文の訓点などの特殊な形式も、スタイルファイルを利用することによって、簡単に扱うことができる。
1.3 LATEX2ε導入の問題点などLATEX 2ε導入の問題点としては以下のことが挙げられる。
1. プラットフォームごとの違いがある。同一の処理系といっても、それが載せられているプラットフォームが異なることから、基本的な操作法法、入力方法等がどうしても異なってくる。ただ、この問題は、LATEX 2εを導入しない場合の方がより深刻である。
2. LATEX 2εを用いた文書作成は、基本的にプログラミングであるので、実際の文書作成にができるようになるまで、かなりの練習を要求する。また、LATEX 2εは、WYSIWYGのシステムではないので、感覚が掴みにくいようである。
2
3. 多くの言語を扱うようにすればするほど、必要となるフォントおよびスタイルファイルの種類がふえてくる。そのため、各プラットフォーム間の統一性を保つことが難しくなってくる。
2 TEX/LATEXの基本的な仕組みTEX/LATEXで文書を作成する場合は、基本的に、次のような手順で行う。
1. 入力/編集:テクストエディタを使って、TEX/LATEXの文法/規則に従い、プレーンテクストの文書を作成し、(通常は、.texの拡張子をつけたファイル名で)保存する。(このファイルを以下 TEXファイルと呼ぶ。)
2. 組版:TEX/LATEXの処理系(プログラム)を使用して、TEXファイルをコンパイルし、特定の出力機器に依存しない出力ファイル(.dviという拡張子がついたファイル。以下、DVIファイルと呼ぶ。)に変換する。
3. 出力 1:プレビュアを使用して、DVIファイルを、ディスプレイに表示する。(プリンタに印刷することもできるが、多くの場合、出力結果が綺麗ではない。)
4. 出力 2:DVIファイルを、PostScript形式のファイル(.psという拡張子がついたファイル。以下、PSファイルと呼ぶ。)に変換する。プリンタがPostScript対応のプリンタであれば、そのまま綺麗に印刷すことができる。プリンタが PostScript非対応のプリンタであれば、GhostScriptを使用して綺麗に印刷すことができる。また、ファイルに出力することもできる。
5. 出力 3:Adobe Acrobat等を使用して、PSファイルを PDF(PortableDocument Format)の形式のファイル(.pdfという拡張子がついたファイル。以下、PDFファイルと呼ぶ。)に変換する。PDFファイルにしておくと、Adobe Acrobat Readerという無償で配付されているプログラムを使って、Windows, Macintosh, Unixの各OSで、(ディスプレイ上でも、プリンタでも)全く同じ出力結果を得ることができる。
それぞれの作業を行うためには、以下のプログラムを使用する。
• 入力/編集:任意のエディタ。Windows上ではメモ帳、Macintosh上では、シンプルテキスト、テキストエディット、Unix上では viなど、必ずOSに付属している。もっと高機能/使いやすいものも無償で多く出回っている。
3
• 組版:TEX/LATEXのプログラム。TEX/LATEXを日本語に対応させたものが、pTEX/pLATEX。現在、最新の LATEXは、LATEX 2εと呼ばれる(日本語対応版は pLATEX 2ε)。
• 出力 1:xdviや dvioutなど。
• 出力 2:dvips/dvipskなどで PSファイルに変換する。GhostScriptとGSviewを使って、PostScript非対応のプリンタに出力する。
• 出力 3:Adobe Acrobat Distillerなど。
• 出力:出力 2と出力 3を一気に行う dvipdfmというプログラムもある。また、出力 1,2,3を一気に行うプログラムも開発されているが、通常は、出力 1の結果を見て、入力/編集を修正し、組版するという作業を繰り返すので、dvipdfmで十分である。
上に挙げたプログラムは、我々が TEX/LATEXを使って文書を作成する際に、直接、使用するものである。しかし、これら以外にも、意識しないで使用したりするプログラムもある。
metafont フォントを作成する。
bibtex 文献目録を作成する。
mendex 索引を作成する
TEX/LATEXに関する詳しい/最新の情報は、奥村晴彦氏のWebサイト
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/
の日本語 TEX情報のページで、随時、確認してください。
3 文書クラス\documentclass[a4j]articleのように指定する。articleの部分が文書のクラスの指定。
• article(論文)、report(報告書)、book(書籍)の三種類がある。
• 和文(横書き)の場合は、それぞれ、jarticle、jreport、jbookとなる。
• 和文(縦書き)の場合は、それぞれ、tarticle、treport、tbookとなる。
4
3.1 和文論文(横書き)の場合\documentclass[a4j]jarticle
\begindocument
\title
\author
\date
\maketitle
\section
\subsection
\subsubsection
\enddocument
3.2 和文報告書(横書き)の場合\documentclass[a4j]jreport
\usepackagegraphicx
\begindocument
\title
\author
\date
\maketitle
\enddocument
3.3 和文書籍(横書き)の場合\documentclass[a4j]jbook
\begindocument
\title
5
\author
\date
\maketitle
\chapter*
\tableofcontents
\listoffigures
\listoftables
\part
\chapter
\section
\subsection
\subsubsection
\appendix
\chapter
\enddocument
4 文字や記号4.1 文字の大きさと書体4.1.1 文字の大きさ
無指定 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZtiny abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
scriptsize abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
footnotesize abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
small abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
normalsize abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
large abcdefghijklmnopqrstuvwxyz
6
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Large abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
LARGE abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
huge abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
Huge abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
4.1.2 書体
無指定 abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTU-VWXYZボールドフェイス (bf) abcdefghijklmnopqrstuvwxyz ABCDEFGHI-
JKLMNOPQRSTUVWXYZ
スモールキャピタル (sc) abcdefghijklmnopqrstuvwxyz ABCDEFGHI-
JKLMNOPQRSTUVWXYZ
イタリック (it) abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTU-VWXYZローマン (rm) abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTU-
VWXYZサンセリフ (sf) abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTU-
VWXYZ
タイプライター (tt) abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
4.2 特殊な記号など4.2.1 アクセント記号など
o o o o o o o o o o Äoo o o. o¯ o
œ Œ æ Æ a A ø Ø Ãl ÃL ß ¿ ¡
4.2.2 ギリシャ文字
α β γ δ ε ζ η θ ι κ λ µ ν ξ o π ρ σ τ υ φ χ ψ ω
7
A B Γ ∆ E Z H Θ I K Λ M N Ξ O Π P Σ T Υ Φ X Ψ Ω
4.2.3 LATEX2εで予約されている記号
\ $ & # %
4.2.4 その他の特殊な記号
† ‡ § ¶ • c© £ ·
4.3 表と記号を組みあわせた例
( )
↓ ↓ ↓ ↓ ↓ ↓↓ × × ↓ × ↓
( )
( ︸ ︷︷ ︸
)
5 数式表現LATEX 2εの元になったTEXは、もともと、アメリカの Stanford大学の数学
者である D. E. Knuth博士が、数式を、自分の意図した通り、きれいに印刷するための組み版作成システムとして作り出したものです。ですから、様々な数式表現に対応したコマンド(命令)が用意されています。
5.1 数式表現の基本5.1.1 インテキスト数式とディスプレイ数式
数式表現の方式には、本文中に組み込む場合のインテキスト数式と、本文とは別に 1行以上のスペースを確保して表示する場合のディスプレイ数式の二つがあります。
8
インテキスト数式の場合は、数式表現を$と$の間に挟み込んで入力します。例えば、$a+b$と入力すると、a+ bとして現れます。ディスプレイ数式の場合は、数式表現を\[と\]の間に挟み込んで入力しま
す。例えば、\[(a+b)^2 = a^2 + 2ab + b^2) \]と入力すると、
(a+ b)2 = a2 + 2ab+ b2
として現れます。
5.1.2 添え字
上の例のように、上付きの添え字を使う場合は、添え字の前に^(キャレット)を付けます。下付きの添え字を使う場合は、添え字の前に_(アンダースコア)を付けます。例えば、$a^1, a^2, \ldots, a^10$と入力すると、a1, a2, . . . , a10のよ
うになり、$\xi^n-1, \xi^n-2, \ldots, \xi^n-p$と入力すると、ξn−1, ξn−2, . . . , ξn−p のようになります。
5.1.3 分数など
分数は、\frac分子分母という形で入力します。\[f(x) = \fracx^21+x\]
と入力すると、f(x) =
x2
1 + x
となります。また、二項係数などのように、括弧の中に二つの要素を縦に並べる場合に
は、\choose、\brace、\brackなどを使います。\[m \choose n \qquad m \brace n \qquad m \brack n \]1と
入力すると、 (m
n
) m
n
[m
n
]
となります。根号は\sqrt で表します。$\sqrt2$および$\sqrt[3]2$と入力する
と、それぞれ、√
2、 3√
2となります。
5.1.4 様々な数式の記号など
二つの項をとる演算子の例としては以下のようなものがあります。 これはほんの一部です。= + − > < ± × ÷ ∈ 3 ∧ ∨ ∩ ∪ ≡ ⊂ ⊃ ⊆ ⊇
1 は空白を挿入する命令です。
9
これらの入力方法は以下の通りです。
$=$ $+$ $-$ $>$ $<$ $\pm$ $\times$ $\div$
$\in$ $\ni$ $\wedge$ $\vee$ $\cap$ $\cup$
$\equiv$ $\subset$ $\supset$ $\subseteq$ $\supseteq$
5.2 通し番号を付ける数式表現などに通し番号を付ける場合には、equation環境を使います。
\beginequation
y=f(x)
\endequation
と入力すると、
y = f(x) (1)
となります。この通し番号は、LATEX 2εが自動的に振っていくので、前の部分に数式表
現を後から追加すると、番号が変わってしまいます。そこで、本文中でこの数式表現について言及する場合は、その数式表現に\label命令を使って名前を付け、\ref命令で呼び出します。
\beginequation
z=f(y) \labeleq:01
\endequation
関数の典型的な形は、(\refeq:01)のようになる。
と入力すると、以下のようになります。
z = f(y) (2)
関数の典型的な形は、(2)のようになる。この通し番号を左側に付ける場合には、文書の冒頭の\documentclassのオプションとして leqnoを指定します。(\documentclass[leqno]jarticle
のように。)
10
5.3 数式表現の中での表組み行列などの場合のように、数式表現の中で表組みを行う場合には、array環
境を使います。行列式 (3× 3行列の例)を作成する場合には、以下のように入力します。
\[
\left(
\beginarrayccc
1 & 0 & 1 \\
0 & 1 & 0 \\
1 & 1 & 1
\endarray
\right)
\]
これは、次のように出力されます。
1 0 10 1 01 1 1
array環境を使って、次のように罫線を使った表も作ることができます。
\[
\beginarraycc|c|c|c \hline
p & q & p\wedge q & \neg p & (\neg p)\vee q \\ \hline
T & T & T & F & T \\ T & F & F & F & F \\
F
& T & F & T & T \\ F & F & F & T & T \\ \hline
\endarray
\]
と入力すると、次のようになります。
p q p ∧ q ¬p (¬p) ∨ qT T T F T
T F F F F
F T F T T
F F F T T
11
5.4 矢印など矢印などの記号には以下のようなものがありますが、ここにあげたものは
ほんの一部です。この他の記号などについては参考書で確認して下さい。また、コマンド名を見ると多少応用が聞くものもあります。自分で適当にコマンド名の一部を変更して試してみて下さい。→ ← −→ ←−↔ ↑ ↓ l⇒ ⇐ =⇒ ⇐=⇔ ⇑ ⇓ m → ←
7→ 7−→∀ ∃ [ ] 4 ∇ ♠ ♥ ♦ ♣ ∞ 6 > ⊥ de bc 上の記号を出力するためのコマンドは、以下の通りです。
$\rightarrow$ $\leftarrow$ $\longrightarrow$ $\longleftarrow$
$\leftrightarrow$ $\uparrow$ $\downarrow$ $\updownarrow$
$\Rightarrow$ $\Leftarrow$ $\Longrightarrow$ $\Longleftarrow$
$\Leftrightarrow$ $\Uparrow$ $\Downarrow$ $\Updownarrow$
$\swarrow$ $\nearrow$ $\searrow$ $\nwarrow$
$\hookrightarrow$ $\hookleftarrow$ $\rightharpoonup$ $\rightharpoondown$
$\mapsto$ $\longmapsto$
$\forall$ $\exists$ $\flat$ $\sharp$ $\triangle$ $\nabla$
$\spadesuit$ $\heartsuit$ $\diamondsuit$ $\clubsuit$
$\infty$ $\angle$ $\top$ $\bot$ $\lceil \rceil$ $\lfloor \rfloor$
12