TeXを使う その1
今日の演習内容
TeX とは?
TeX は一種の文章処理システムで Donald Knuth という人が開発した。
Knuth さんがあるとき自分の本を出版しようとして原稿を出版社に出した。
出版社からは出版する本の印刷見本が送られてきたが、
Knuth さんは本の構成(例えば字のバランス、行の空け方、段落の作り方、
余白の空け方など)が気に入らなかったので、
出版社の方に構成変更の希望を出した。
構成が変更されて返ってきた見本にも、まだ気に入らない点がいくつかあったので、
また変更希望を出すというふうに、出版社とのやりとりが何度かあった。
そうこうするうちに、Knuth さんは出版社とのやりとりに時間がかかるのと、
変更の希望を正しく出版社に伝えるのが難しいことに困り、
自分自身で本の構成を自由に変更してそれを印刷できる文章処理システム
(つまり DTP, Desk Top Publishing のシステム)を開発することにした。
そうして出来上がったのが TeX
(発音は日本ではなぜか「てふ」)。
TeX は本の構成を事細かに設定することができ、
Knuth さんを大いに満足させたわけだが、
本作りの素人で本の構成を余り気にかけない人にとっては
(教官や皆さんがその例)、
細かな機能が多過ぎて使いづらい面があった。
そのような素人のために TeX を基本として開発されたのが
LaTeX(「らてふ」
と発音)。
この文章処理システムの開発者は Leslie Lamport という人で、
Lamport の La を TeX の頭につけて LaTeX と命名した。
現在では Desk Top Publishing のための文章処理システムが数多く開発されているが
(例えば Mac とか Windows 用のソフトウェアがある)、
科学技術論文の原稿の多くは LaTeX を使って書かれるようになり、
文章処理システムの世界標準の一つとなっている。
LaTeX ファイルの例
とにかく LaTeX ファイルの例を見てみることにする。
LaTeX ファイルの中身
- 新しく tex というディレクトリーを作り、
LaTeX ファイルの例 example1.tex
を保存する(リンクをクリック)。
- gEdit で example1.tex を開く
- この LaTeX ファイルは
「\documentstyle[12pt]{jarticle}」
という行で始まっている。
一般的に「\」
マークはそれに続く文字列が LaTeX
のコマンドであることを示しており、
LaTeX フィルの中では特別な意味を持つ。
- 「\documentstyle」というのは、
この文章のスタイルを設定するためのコマンドである。
この例では「jarticle」
というスタイルを選んでいる。
先頭の「j」は「japanese」の「j」で、日本語用のスタイルの意味。
「article」というのは直訳すると「論説」というような意味。
この他には「book」
とか「report」というスタイルがある。
各スタイルで想定している文書の長さは article→report→book
の順に長くなる。
- 「[12pt]」
というのは使用する文字の大きさを決めている。
「12pt」というのは「12 ポイント」と読み、
72 ポイントが1インチという定義だから、文字の高さが約 4mm
の文字になる。
- 次に続く3行に書いてあるコマンド
「\author」
「\date」
「\title」は、
この文章の著者、作成日付、タイトルを定義している。
LaTeX コマンドは多くの場合「コマンド+{ }で囲まれたパラメータ」
という形をとることを覚えておくと良い。
- 次の行には「\begin{document}」
というコマンドがある。
またこのファイルの一番最後にはそれに対応して
「\end{document}」
という行がある。
LaTeX のコマンドはこの様に「\begin」と「\end」
が対応した形をとることがしばしばあるので覚えておくと良い。
この場合は文章(document)の始まりと終りを示している。
- その次の行には「\maketitle」
というコマンドがある。
これは先に定義した著者、作成日付、タイトルの情報を使い、
自動的にタイトルを作るコマンドである。
- その次には「\section」
というコマンドがある。
これは章(section)を作るコマンドで、
パラメータの値が章のタイトルになる。
このとき章の番号は自動的に付くので指定する必要は無い。
従って、章と章の間に後で別の章を挿入した場合にも、
章の番号を手で付け変えるというような必要が無くなる。
- パソコンなどで使用できるワープロなどでは、
このような章を作る場合、文章を書いている人が章の番号付や、
章のタイトルのフォントの種類、サイズ、
太字にするか否かなどを決める場合が多い。
これは文章の体裁について、人それぞれの好みで決めていることになり、
出来上がりにかなりバラツキが出るし、ある意味大変面倒である。
TeX や LaTeX ではこのような体裁に関する部分は、
既に良く考えられた書式を共通に用い、
文章を書く人が文章の内容作成のみに集中できるようにしていると考えられなくもない。
- 章を更に細かく分けたい、つまり章の中に小さな章をいくつか作りたい場合は、
「\subsection」というコマンドが使える。
使い方は \section コマンドと同じ。
更に小さい章を作る場合には「\subsubsection」
というコマンドも使える。
- 各章の中身は、普通のテキストファイルのように、
文章が入っているだけ。
少し違っている点は、文章の改行がいい加減で奇麗になっていない点。
このようにいい加減な改行をしても、
LaTeX が適当に文章をくっつけてくれるので、最終的には奇麗な形になる。
「LateX が文章をくっつける」と言ったが、
これは LaTeX ファイルの中で改行しても、
最終的には改行にならないことを意味する。
段落の切れ目などで改行したい場合には、
例文にもあるように、
空行を1行入れると改行される。
- 強制的に改行を入れるコマンドとしては「\\」
があるが、余りお勧めではない。
バックスラッシュと円マーク
- ここまでの説明で多分 LaTeX のコマンドの最初には「円マーク」
が付くと理解したはずだとおもう。
しかし、いざ自分で LaTeX の文章を gEdit などで作ろうとしたときに、
キーボード上の「円マーク」キーをうっても「バックスラッシュ」
(/ 記号の左右反転したもの)が表示されてしまう。
- これは、実は欧米で使っている「バックスラッシュ」キーを、
日本でだけは「円マーク」に流用しているせいである
(多分日本では「バックスラッシュ」記号よりも「円マーク」
の方が需要が高いという判断)。
一部のプログラムでは、このような日本の事情を考慮して「円マーク」
表示するが、他のプログラムではこれに対応していないので
「バックスラッシュ」表示してしまう。
- 従って、日本のコンピュータ上では「円マーク」=「バックスラッシュ」
と理解しておけば良い。
LaTeX ファイルのコンパイル
- LaTeX ファイルを元に DVI ファイル
(device independent file、装置に依存しない形式のファイルという意味)
を作成する作業を
LaTeX ファイルのコンパイルと呼ぶ
(FORTRAN プログラムなどのコンパイルのアナロジー)。
DVI ファイルは更に特定の出力装置(計算機の画面やプリンターなど)
に出力するためのコマンドにより、出力装置に合った形式のファイルに変換
される。
- コンパイルは非GUI環境でやるので、kterm
をアプリケーションランチャーから起動する。
cd コマンドで tex というディレクトリーに移動し、
ls コマンドで example1.tex
とういうファイルがこのディレクトリーにあることを確認する。
cd tex
ls
- LaTeX ファイルのコンパイルを行なうコマンドは
jlatex である。
ここでも最初の「j」は、「japanese」の意味である。
日本語無しでアルファベットのみの LaTeX
ファイルをコンパイルするコマンドとしては latex があるが、
当然 jlatex コマンドでアルファベットだけの LaTeX
ファイルのコンパイルも可能である。
さっきの example1.tex をコンパイルし、
その後に ls コマンドで、どんなファイルが出来たかを見てみる。
jlatex example1
ls
- 上の例では入力ファイル名を「example1」としたが、
LaTeX や TeX 形式のファイル名は、
普通は最後に「.tex」が付くという暗黙のルールになっているので、
jlatex コマンドはファイルを見つけることができる。
このコマンドを実行すると DVI ファイル(example1.dvi)と、
その他に example1.aux, example1.log というファイルができるはず。
- この DVI ファイル example1.dvi を画面上に表示するには
xdvi というコマンドが使える。
xdvi -s 4 example1
ここで「-s 4」というオプションは、
通常よりも文字を大きく出すために付けている
(数字を小さくすると字が大きくなる)。
- この場合もやはり、DVI ファイル名は最後に「.dvi」が付く、
という暗黙のルールがあるので xdvi コマンドは DVI
ファイルを見つけることができる。
xdvi コマンドを実行すると新しいウィンドウが開き、
コンパイルされた LaTeX ファイルが表示されるはず。
元の LaTeX ファイルが簡単だったことを考えると、
結構いい出来栄えだと思いませんか?
- xdvi のウィンドウの右上には数字が示されている。
これはコンパイルされた LaTeX ファイルのページ数を示している。
この数字をクリックすると、そのページに飛ぶことができる。
またリターンキーおよび n キー(next の意味)により1ページ進んだり、
b キー(back の意味)により1ページ戻ったりもできる。
ページを行ったり来たりして文章の出来栄えを見てみること。
文字などが小さくて見にくい場合は、ポインターを見たい部分に持って行き、
マウスボタンを押すとその部分が拡大される(ボタンを離すと元に戻る)。
- xdvi を終了するには q キー(quit の意味)を打つか、
ウィンドウ内の Quit ボタンをクリックする。
文章にアクセントを付ける
LaTeX の基本は、普通に文章を書くことだが
(文章の見栄えを奇麗にするのは LaTeX に任せる)、
文章中で特に書式を自分の思ったように変更したい場合もある。
そのような場合に使えるコマンドの例を見てみる。
文字の大きさと修飾
- LaTeX ファイルの例 example2.tex
と example3.tex を tex
というディレクトリーに保存する。
example2.tex は先の例 example1.tex を英語訳したもの。
example3.tex は example2.tex を少しだけ修正したもの。
- kterm を起動し(さっき起動した kterm
がまだ動いていればそれを使う)、example3.tex
をコンパイルする。
コンパイルには latex コマンドを使っても良いし、jlatex
コマンドを使っても良い(example3.tex
はアルファベットしか含まない)。
latex example3
xdvi -s 4 example3
- 上の例では LaTeX コマンドの効果が見え易いように英文にしてある。
xdvi の出力を見てわかるように
「Donald Knuth」が斜体になっている。
また「not satisfied ...」
の所が太字になっており、最後の
「the text processing ...」
の所は字が大きくなっている
(微妙なのでわかり難いが)。
これらの文章の修飾はそれぞれ、「\em」
(emphasize の意味、英語では強調する際に斜体を用いる)
「\bf」(bold face の意味)
「\large」
というコマンドを使っている。
コマンドの使い方は gEdit で example3.tex の中を見てみるか、
あるいは example2.tex はこれらの修飾を抜いたファイルなので、
以下の diff コマンドを kterm のウィンドウ中で打てば、
違いがある部分だけが表示される。
diff example2.tex example3.tex
これらのコマンドは、{ } で囲まれた領域のみで有効なのがわかる。
また「斜体にする」というコマンド「\it」
(italic の意味)もある。
- ここで使った \large というコマンドは、
「\Large」
「\LARGE」
などと大文字にしてゆくと更に字が大きくなる。
更に大きな字は「\huge」
「\Huge」などのコマンドが使える。
また逆に字を小さくしたい場合は、「\small」
「\tiny」などのコマンドがある。
- \underline コマンドを用いれば、
単語などに下線を引くことが出来る。
アンダーラインの例は以下のようになる。
You can add \underline{underline} if you wish.
このコマンドの形式は、
「コマンド+{ }で囲まれた文字」となっている点に注意すること。
この様に LaTeX では必要に応じて文章の修飾を自由自在に行なうことができる。
ただし、色々と修飾した文章が見易いかどうかは別問題。
基本的には LaTeX が文章を奇麗にする努力をしてくれるので
(例えばセクションのタイトルと本文の文字サイズを変えるなど)
修飾は最低限で良いと考えておくと良い。
他の文献などの引用
- 文章中で他の文献に書かれていることを引用する場合などがある。
この場合には、
この部分が文章中で少し別な意味を持っているということが分かると読み易い。
具体的な方法としては、文章の頭を少し下げたり(インデントするという)、
字体を変えたりする方法がある。
具体的な表示法は LaTeX に任せるとして、この部分が引用であることを示すには
「\begin{quote}」と
「\end{quote}」
を用いれば良い。
予想がつくように \begin{quote} と \end{quote}
ではさまれた部分が引用する文になる。
これを使った例を quote.tex に示す。
- \begin{quote} と \end{quote} は例にあるように、
比較的短い文を並べるのに適している。
もう少し長い文を引用する場合には
「\begin{quotation}」と
「\end{quotation}」の組を用いるのが良い。
要点の箇条書
- 比較的論理的な文章で、
いくつかのポイントを明確に分かり易く書くには箇条書が適している。
箇条書を作るには「\begin{itemize}」と
「\end{itemize}」を用いる。
例として item.tex を見てみる。
例で分かるように、\begin{itemize} と \end{itemize}
の間に「\item」
で始まる行を入れると、\item 以下に書いた内容が箇条書となる。
- 例では比較的並列的なことを並べているので、
箇条書の頭に同じ記号がつく箇条書を用いた。
もし順序や順位を付けて箇条書したい場合は
「\begin{enumerate}」と
「\end{enumerate}」の組を用いれば良い。
ここでも各項目を書くには \item を用いれば良い。
日本語文章作成と注意点
自分で簡単な日本語の LaTeX 文章を作ってみる。
自分の名前を author とし、title を適当に付ける。
date は設定しても良いし、設定しないと今日の日付になる
(実際は jlatex などを実行した日)。
section は2つ以上作ると良い。
LaTeX のファイルを作ったら jlatex コマンドでコンパイルし、
xdvi で出来上がりを確認する。
LaTeX のコマンドがタイピングミスなどで間違っていると jlatex は
エラーメッセージを出す。
エラーが出た場合は latex のプロンプト(?)で「x」を打つと
jlatex コマンドが終了する(DVI ファイルは作らない)。
これで終了出来ない場合は CTRL-c で jlatex コマンドを
中止する。
よく LaTeX ファイルの中身を見直して再度 jlatex コマンドでコンパイルする。
よくある間違いや注意点など
LaTeX の考え方
現在の文章作成のソフトウェアの主流の考え方は
「What you see is what you get」
(文書作成段階で目で見たものと同じものが印刷段階で得られる)である。
この流れからすると、LaTeX は途中にコンパイルという作業を通さないと、
印刷段階で得られる文書を目にできないので、
前近代的なソフトウェアという印象を受けるかも知れない。
しかしながら、「What you see is what you get」という方法は、
個性的な文書を作成するのに適している反面、文書全体の構成に関して、
文書作成者が一から十まで面倒を見ないといけないという面倒な面もある。
これに対して、LaTeX の考え方は、文書作成者は文書の論理的な構成を気にかけ、
実際の文書の体裁は LaTeX の持っている書式に任せるというものである。
また、LaTeX の持っている書式は、
文書作成のプロが持っているノウハウを組み込んでいるので、
普通の文書(奇抜で無い文書)を作成する場合には十分なものである。
以上の観点からすると、LaTeX のコマンドは大別して2種のコマンドに分類できる。
一つは論理的な修飾をおこなうコマンドで、これまでに出てきた例では。
\section, \subsection | 章を作る |
\em | 文章の強調 |
\begin{quote}, \end{quote} | 引用 |
\begin{itemize}, \end{itemize} | 箇条書 |
これらの例では、ここで「章を作れ」とかこの部分を「強調せよ」
という論理的な修飾を命じている。
論理的なという意味は、
例えば実際に章を作るにはどうするかという、
具体的なことは一切指定していないということである。
これらの論理的な修飾を行なうコマンドは、最も LaTeX 的なコマンドといえよう。
これに対するものとして視覚的な修飾のコマンドがある。
これまでに出てきた例では以下のようなものが視覚的な修飾のコマンドである。
\bf | 太字にする |
\large, \huge | 文字を大きくする |
\it | 文字を斜体にする |
\underline | 下線を引く |
\\ | 改行する |
これらのコマンドでは、文章のある部分をどのように修飾するかを、
具体的に指定している。
なお \large などのコマンドについては、文字の大きさまでは指定して
いないので、一部論理的な修飾の意味合いがあると考えても良い。