第 10 回(2005.06.27) -- 文書作成(LaTeX 入門 1)

現在,理系学生や理系研究者にとって必須な能力の一つとして, 「TeX を扱えること」が当然のように挙げられるようになっている. これは,思考をきちんと印刷に耐えうる形で文書化する能力, というごく当然の能力を実現するための道具としては 事実上 TeX しか存在しない現実からこうなっているのである.
総合的に見て,TeX に比肩しうる文書化ソフトウェアやシステムが現実には存在しないため, TeX の習得は絶対に必要であると考えるべきである.
# TeX が出来ない人間というのは,理系分野においては 英語が使えない人間と同じぐらいの不利な扱いをうけることを覚悟しておくべきである.

しかし,論理的な文書を論理的に作るという目的のため, TeX は習得がやや難しいものになってしまっており, 適切な指導をうけられないまま習得出来ずにいる学生も見受けられる. そうした学生は,学生生活の間ずっと肩身の狭い思いをしてすごすことになりかねないので, そうしたことのないよう, この授業では,TeX が一通り使えるようになることを目的とし,その基本か ら簡単な応用までを教える.

TeX, LaTeX とは何か

TeX の原稿の「もと」と出来上がりの例.
原稿の「もと」. テキストファイルである. できあがった原稿. 一種の画像とみなせる.
tex source example → 変換 → tex dvi example

TeX とは,コンピュータサイエンス分野の科学者としてあまりにも有名な Donald E. Knuth(高徳納) が作成したコンピュータ文書印刷組版言語とそのソフトウェアを表す. 言語としては,HTML などと同じマークアップ言語に分類される. ちなみに組版とは,文書をそのまま印刷できるレベルにまできちんと清書すること,と思えばよい.
TeX は,普通の文書中に TeXコマンド とよばれる特別な文字列を書込み, TeX プログラムがこの文書を解釈して文書の表示を制御するという仕組みになっている.

TeX コマンドは文字の位置や大きさを微少に変化させるプリミティブなものから 文書構造を示す抽象的なものまで必要十分なものが用意されている. 有能なコンピュータ学者が作成した言語はさすがに瑕疵が少なく, 実際に TeX は大成功を収め,いまや多くの学会や出版社が 「TeX原稿のみ受け付け」という状態になり,また, 多くの印刷所が 「TeX 原稿ファイルならばそのまま印刷機にかけられる」というようになる など,TeX は広く普及している.

しかし,TeX はその強力さと正確さとひきかえに,かなり使いにくい言語でもある. なんでも望みのことはできる代わりに,ユーザがなんでもしないといけない, ということでもあり,実際,素の TeX を完全に使いこなせる人はかなり少ない.

そこで,TeX のマクロ機能を用いてある程度の部分を定型化して使いやすくした LaTeX とよばれるものを Lesile Lamport が考案した. この LaTeX は使いやすさと強力さを十分に兼ね備えている. この特徴のおかげで LaTeX は一般ユーザにも非常に広く使われるようになり, 現在では TeX というとこの LaTeX のことを指すことが多い.
LaTeX はかつては ver2.09 というバージョンが多く使われていたが, 現在では LaTeX2ε とよばれるバージョンに進化しており, なお現在,version 3 を開発中である.

なお,TeX,LaTeX は ms-windows や mac などの家庭用簡易 OS のもとでも扱うことができる. 自宅に pc がある者は,下の参考 web の情報などをもとに自宅でも扱えるようにしておくとよいだろう.

TeX, LaTeX 参考文献

LaTeX はコマンドを駆使して文書を書くという構造をしているため, 参考文献を所持していないとどうしようもない場面があるだろう.

しかし,LaTeX に関する書籍は数多く出版されており,どれを選んだら良いのか初心者としては迷うだろう. そこで,LaTeX に関する名著として名高く,他と一線を画している二冊を選んで 教科書 B-1 教科書 B-2 として指定してある. すくなくともどちらか一冊を入手しておくように.

また,web page で情報を集めるには,まずは次の web に目を通すのがよいだろう. LaTeX を使うためのソフトの入手先などもこの web page から情報が得られる.

また,古くからフリーで出回っている TeX のための解説書として次のものが知られている. これを印刷するなどして参考文献とするのも良いだろう.

また,ネットワーク検索で,「TeX 文法」「TeX 使い方」「LaTeX 使い方」 などと検索すると非常に多くの web が LaTeX の解説を行なっていることが分かるだろう. それらを参考にするのもよい.
理系学生としては特に LaTeX の習熟は必須であるので,適切な書籍を購入するか 適切な web の内容を保存するなどして, いつでも参考資料を手元に置いておくようにするべきである.

簡単な TeX, LaTeX 用語

以下に,TeX を理解する上でキーワードとなりそうな単語について説明する.

TeX ソースファイル
TeX 文書テキストファイル.
人間がエディタ等で読み書きできる形式である. 中身は,文章と,文章を制御する「TeXコマンド」と呼ばれる特殊な文字列がならぶ. 文章の原稿ファイルと思えばよい.
拡張子は通常は .tex を用いる.

TeX コマンド
TeX ソースファイルの中に(人間が書き込む)コマンド.
章立て,文書の構造,その他もろもろ,文書に対する様々な指示をするものである.
各々のコマンドに対して,文法と動作が厳密に決まっているので, 出力を事前にきちんと制御できるのである.

TeX 処理,コンパイル
単なるテキストファイルである TeX ソースファイルを TeX プログラム(platex というコマンドなど)に処理させて (下に説明する) dvi ファイルを作ることを言う.
この段階で TeX 言語としての厳密な文法チェックも行なわれるので,dvi ファイルができたならば 文法上は一応問題がないはず,である.

dvi ファイル
TeX ソースファイルをもとに作成した一種の画像ファイル… というと意訳しすぎか.
人間には読み書きできない形式である.
このファイルは OS やマシン環境に依存しないように作られているので, DeVice Independent ファイル,つまり,デバイス独立ファイル,と名付けられている.
いいかえると,この dvi ファイルを持ち運べば(基本的には) どういう環境でも同様の出力が得られるということになる.

このファイル(の中身)を表示するには,阪大教育用システムでは xdvi というコマンドを用いる.

拡張子は通常は .dvi を用いる.

LaTeX を使う手順

おおまかな処理の順序

tex の処理の流れ図
LaTeX の処理の全体の様子は基本的には上の図のようになり,
1 → 2 → 3 → 4 → 1 → (以下繰り返し)
として文書を作成,推敲して完成させることになる.
# ソフトや OS の構成によっていろいろ省略できたりはする.

詳しくは以下に解説しよう.

ちなみに… 大阪大学教育用計算機システムには TeX の処理に関する GUIツールがあるが, 下に説明する手順に充分慣れるまではこの GUIツールを使わないこと.
というのも,こうした GUIツールは OS や環境によって異なるので,GUIツー ルでしか作業できない人は 「OS や環境によらず使えるという TeX の利点」 を無視することになるからである.

TeX を扱う前の準備

TeXソースファイル等,TeX 関係のファイル全般を置いておく場所,つまりディレクトリを作成する. この操作は一回だけやっておけば良い.
こうしないと,TeX 以外のファイルと混ざってわけが分からなくなるだろうから,こうしておくのを勧める.
名称としては tex などがよいだろう. 具体的な操作は,ファイルマネージャをいじくり回すか,以下のようにすればよい.

  1. GNOME端末もしくは kterm (などの端末エミュレータ)を開く.
  2. 作成したいディレクトリ名が tex であるとして, 具体的には,次のようにする. GNOME端末 or kterm 上で,
    mkdir tex
    と入力すればよい.

実習   上の指示に従い,TeX ファイルを置いておくディレクトリを用意する.

   1       LaTeX ソースファイルの作成, 編集

TeX という文書システムは,TeXソースファイル中に 文章と TeX コマンドを書き込むこと「のみ」によって組版を制御する.
いわゆるワープロと違い,みながらマウスであれこれ,ということはせず, 全てがこのTeXソースファイル中のコマンドで制御される.
よって,このソースファイルの作成,編集という作業がTeXシステムを扱う際の本質的な作業になる.

TeX ソースファイルを作るというのは,原稿を書くという行為に相当する. ただ,その時,原稿の文章だけでなく,文書の構造や見た目を制御するコマンドも一緒に書き込んでしまう,と理解すればよい.

原稿を書くという行為であるので,もちろん使うツールはエディタであり, エディタとキー入力を使いこなせないうちは苦痛であるかもしれないが, 慣れれば便利になるので,ちょっと頑張って入力するのがよい.

TeX ソースファイルの作成方法は,具体的には以下の通りにすればよい.

  1. まず,既にあるファイルをコピーするか,空のファイルを作るなどして, LaTeX ソースファイルの原型を作る.
    ごく簡単なサンプルファイルを用意してあるので,これを利用してもよいだろう.
    また,LaTeX 作者 Lamport 自らが用意した二つのサンプルファイル small2e.tex(非常に短い) と sample2e.tex(短い) とを参照するのもよいだろう.

    ちなみに,TeX,LaTeX ソースファイルの名前には,.tex という拡張子をつけるのが慣例であるので, それに従っておくのがよい.
    というか,そうしないと,いろいろ不便な目にあうだろう.

    # ちなみに,空っぽのファイルを新しく作るには,GNOME端末 or kterm 上で
    touch ファイル名
    とすればよい. ファイルをコピーしたければ,
    cp 元ファイル名 コピー先ファイル名
    である. ファイルの名前を変えたければ,
    mv 今のファイル名 新しいファイル名
    とすればよい.

  2. エディタ(gedit, emacs 等)を用いて,今用意したファイルを編集する. 内容は, LaTeX の文法 1 〜 ごく簡単な文書構造 を読めば理解できるはずである. 理解したら,応用としていろいろ書込んでみる.
    # LaTeX の文法についてはこれから少しずつ学んでいくことになる.

実習 上のように,TeX ファイルを作り,編集してみる.

   2       LaTeX 処理

TeX ソースファイルを処理する(コンパイルする)には,次のようにする.

  1. 作成したTeX ソースファイル(例: dummy.tex)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.tex ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. TeX プログラムを用いて TeX ソースファイルをコンパイルする.
    具体的には,次のようにする. TeX ソースファイルが dummy.tex という名前だとして, GNOME端末 or kterm 上で,
    platex dummy.tex
    と入力すればよい.

  3. ちなみに…
    初心者は, たいていはエラーがでてコンパイルが一時停止するので, エラーをよく読んでからコンパイルを終了させるようにすべし. そして,LaTeX ソースファイルを修正するために, LaTeX ソースファイルの作成,編集 へ戻る.
    エラーは "!" で始まる行から書かれている.
    (エラーが出た)コンパイルを中止させるには,"?" が出ているときに "x" を入力すればよい.

    ちなみに,初心者が一番やりやすいミスによるエラーを例示すると,
    ! Undefined control sequence.
    l.7 \hertsuit
    などである. これは,TeX が「7行めの \hertsuit なんてコマンド知らないよ」と言っているのであり, 原因は TeXソースファイル中で本来 \heartsuit と入力すべきところを \hertsuit とタイプミスしたことである.

  4. もし,エラーが出ずにコンパイルが終了したならば,OK だ.
    上の例の場合,dummy.dvi というファイルができているはずである.

実習 作成したTeX ファイルをコンパイルし,エラーがでなくなるまで修正する.

なぜエラーになるのか,本当にわからない場合… いろいろな可能性があるが,次の二つの原因とその対策は最低限おさえておこう. つまり,とりあえず下の対策を二つとも試してみよう.
ちなみに,gedit を使っていると次の原因によるエラーが発生しやすいようなので, できるだけ他のエディタを使うことを奨める.

■ LaTeX エラーで分かりにくい原因とその対策 ■
原因 対策
ソースファイルの漢字コードが間違っている(日本語 EUC になっていない). gedit のファイル保存時の漢字コード指定はうまく機能しない場合が多いようだ. そこで,GNOME 端末 or kterm 上で nkf コマンドを使ってファイルの漢字コードをきちんと EUC にしておく. 使い方は例えば dummy.tex というのがTeXのソースファイルである場合は,
nkf -e -O --overwrite dummy.tex
とすればよい. より詳しくは以前の授業の 漢字コードについて を参照せよ.
TeXコンパイルの情報を詰めたファイルが壊れている. 例えば dummy.tex というソースファイルをコンパイルする時, 様々な情報が dummy.aux というファイルに書き込まれると同時に参照される. そのため,この dummy.aux というファイルが何かの理由により壊れると, コンパイルがうまくいかなくなる(まあ壊れる理由はたいがいユーザの無謀な操作が原因だが).
この場合は,一回 dummy.aux ファイルを消去してしまってからコンパイルすれば問題ない.

   3       dvi ファイルの表示

せっかくできた dvi ファイルなのであるから, 画面に表示 or 印刷するなどして確認を行おう.
具体的に,例えば dummy.dvi という dvi ファイルを画面に表示したい場合は, ファイルマネージャで dummy.dvi ファイルをダブルクリックするか, 以下のようにすればよい.

  1. 作成した dvi ファイル(例: dummy.dvi)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.dvi ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. dvi ファイルを画面に出力する.
    具体的には,次のようにする. dvi ファイルが dummy.dvi という名前だとして, GNOME端末 or kterm 上で,
    xdvi dummy.dvi &
    と入力すればよい.

ちなみに,xdvi では印刷も行える.

実習 作成した dvi ファイルを表示する.

   4       出来たファイルの目視による確認

LaTeX 処理(コンパイル)がうまくいっても, それは TeX ソースファイルが TeX の文法にきちんと従っているという意味であって, 自分の欲する表示が得られるという意味ではない.
そこで,次にやるべきことは,画面の出力や印刷結果を目視し,自分の要求と結果があっているかどうかを確認する作業である.
内容的に不満な個所がある場合は,LaTeX ソースファイルの中身を修正しないといけない.
そこで,そうした場合には, LaTeX ソースファイルの作成,編集 へ戻る.

実習
今見ている TeX ファイルに「自分の名前を書き加える」という作業を行うことにしよう.
そのために,次の手順で作業を行え.

  1. dvi ファイルの表示を見ながら,「どこに」名前を書くか決めよ.
  2. ソースファイルの編集へ戻り,名前を書き込め.
  3. コンパイル,画面への出力,という作業を繰り返して, 希望した個所に自分の名前が出力されている,という画面出力が見えるところまで作業を行え.




他のファイル形式への変換

dvi ファイルは汎用性があり,OS やシステムに依存しないすばらしいファイル形式であるが, TeX システムが無いと扱えないという欠点ももつ.
そこで,dvi ファイルを他の形式に変換しておく方法についても学んでおこう.

   A-1       Postscript ファイルへの変換

Postscript 画像ファイルはそれなりに汎用性があるうえ, unix 系統の OS では印刷のための標準形式であり,このファイル形式にファイルを変換するのは悪くない考えである.
また,TeX 中に画像ファイル(通常は eps 形式のファイル)を含んでいる場合は, dvi ファイルを Postscript ファイル形式に変換する必要があることが多いので, やはりこの変換について学んでおくのがよい.

dvi ファイルから Postscript ファイルを作成する方法は以下の通りである.
具体的に,例えば dummy.dvi という dvi ファイル から Postscript ファイルを作りたい場合は以下のようにすればよい.

  1. 作成した dvi ファイル(例: dummy.dvi)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.dvi ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. dvi ファイルから Postscript ファイルを作成する.
    具体的には,次のようにする. dummy.dvi という名前の dvi ファイルを変換して, dummy.ps という名前の Postscript ファイルを作成したいという場合は, GNOME端末 or kterm 上で,
    dvips dummy.dvi
    と入力すればよい.

実習 自分の作成した dvi ファイルから Postscript ファイルを作成せよ.

   A-2       Postscript ファイルの画面への出力(表示)

具体的に,例えば dummy.ps という Postscript ファイルを画面に表示したい場合は, ファイルマネージャでファイルをダブルクリックするか, 以下のようにすればよい.

  1. 作成した Postscript ファイル(例: dummy.ps)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.ps ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. Postscript ファイルを画面に出力する.
    具体的には,次のようにする. Postscript ファイルが dummy.ps という名前だとして, GNOME端末 or kterm 上で,
    ggv dummy.ps &
    と入力すればよい.

    ggv は表示だけでなく,印刷を行うこともできる.

実習 作成した Postscript ファイルを表示せよ.

   A-2       Postscript ファイルの印刷

Postsctipt ファイルを印刷するには, 先の ggv で「ファイル→文書の印刷」とする方法と, 次のようにして印刷を行なう方法がある.

具体的に,例えば dummy.ps という Postscript ファイルを印刷したい場合は以下のようにすればよい.

  1. 作成した Postscript ファイル(例: dummy.ps)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.ps ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. Postscript ファイルを印刷する.
    具体的には,次のようにする. dummy.ps という名前の Postscript ファイルを印刷したいという場合は, GNOME端末 or kterm 上で,
    lpr dummy.ps
    と入力すればよい. 阪大教育用計算機システムでは,この後に「プリンタ名」や 「一枚の紙に何ページ出力するか」等々を聞くためのウィンドウが開くので, 適当に応えればよい.

実習
作成した Postscript ファイルを印刷する作業を行え. ただし,無駄に紙を使うのは好ましくないので,最後の段階でキャンセルして, 実際には印刷をしないようにすること.

   A-1       PDF ファイルへの変換

PDF 画像ファイルも汎用性があり,印刷等に適した形式である.
dvi ファイルから PDF ファイルを作成する方法は以下の通りである.
具体的に,例えば dummy.dvi という dvi ファイル から PDF ファイルを作りたい場合は以下のようにすればよい.

  1. 作成した dvi ファイル(例: dummy.dvi)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.dvi ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. dvi ファイルから PDF ファイルを作成する.
    具体的には,次のようにする. dummy.dvi という名前の dvi ファイルを変換して, dummy.pdf という名前の PDF ファイルを作成したいという場合は, GNOME端末 or kterm 上で,
    dvipdfmx dummy.dvi
    と入力すればよい.

実習 自分の作成した dvi ファイルから PDF ファイルを作成せよ.

   A-2       PDF ファイルの画面への出力,印刷

具体的に,例えば dummy.pdf という PDF ファイルを画面に表示したい場合は, ファイルマネージャでファイルをダブルクリックするか, 以下のようにすればよい.

  1. 作成した PDF ファイル(例: dummy.pdf)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.pdf ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. PDF ファイルを画面に出力する.
    具体的には,次のようにする. PDF ファイルが dummy.pdf という名前だとして, GNOME端末 or kterm 上で,
    acroread dummy.pdf &
    もしくは
    xpdf dummy.pdf &
    と入力すればよい.

    上記のツールは表示だけでなく,印刷を行うこともできる.

実習
作成した PDF ファイルを表示せよ.
また, 作成した PDF ファイルを印刷する作業を行え. ただし,無駄に紙を使うのは好ましくないので,最後の段階でキャンセルして, 実際には印刷をしないようにすること.


Postscript ファイルの分割(おまけ)

何ページにもなる Postscript ファイルから,特定のページだけを抜き出したい, ということがある. 例えば,印刷のために偶数ページと奇数ページだけを抜き出したいとか, ページごとに別ファイルにしたいとかなどの時である.

こうしたときは, psselect コマンドを使えば良い. 文法は, psselect ページ指定 元ファイル 新ファイル である. 具体的に,例えば dummy.ps という Postscript ファイルから特定のページだけを抜き出したい場合は以下のようにすればよい.

  1. 作成した Postscript ファイル(例: dummy.ps)のあるディレクトリへ移動する.
    具体的には,次のようにする. 例えば tex というディレクトリに dummy.ps ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. 元の Postscript ファイルから特定のページを抜き出す.
    具体的には,次のようにする. dummy.ps という名前の Postscript ファイルから 3,4,5 ページを抜き出した新しい new.ps というファイルを作りたいという時は,GNOME端末 or kterm 上で,
    psselect 3-5 dummy.ps new.ps
    と入力すればよい. また,10 ページ「のみ」抜き出したいときは,
    psselect 10 dummy.ps new.ps
    でよい. 偶数ページだけ抜き出すときは
    psselect -e dummy.ps new.ps
    とし, 奇数ページだけ抜き出すときは
    psselect -o dummy.ps new.ps
    とすればよい.

Postscript ファイルから他の画像ファイルへの変換(おまけ)

TeX で作成した結果を web に表示したい,などという場合は,Postscript ファイルを png や jpeg といった通常の画像形式に変換すればよい.
# dvi ファイルを変換するツールはあることはあるが,数が少ないので, Postscript ファイルを変換する方がよいだろう.

TeX の性質からいって,TeX で作成した Postscript ファイルは png 画像ファイルに変換するのがよい.

具体的に,例えば dummy.ps という Postscript ファイルから png 画像ファイルを作成するには以下のようにすればよい.

  1. 作成した Postscript ファイル(例: dummy.ps)のあるディレクトリへ移動する.

    具体的には,次のようにする. 例えば tex というディレクトリに dummy.ps ファイル があるとして, GNOME端末 or kterm 上で,
    cd tex
    と入力すればよい.

  2. Postscript ファイルを変換して png 画像ファイルを作成する.
    具体的には,次のどちらかの方法がよいだろう.

注意 上の方法のいずれも,そのままでは複数ページを含む PS ファイルを複数の pngファイルにはしてくれない. 複数のページを png ファイルにしたければ, Postscript ファイルの分割(おまけ) で説明している psselect コマンドを用いて, 1ページずつを各々別の PS ファイルにしてから変換することになる.

実習
作成した Postscript ファイルから png ファイルを作成し, 実際に画面に表示して確認せよ(できた png ファイルをファイルマネージャでダブルクリックすればよい).


LaTeX の文法 1 〜 ごく簡単な文書構造

今回は,TeX ファイルの一連の処理を学習,把握するだけで精一杯だろうから, LaTeX の言語としての文法的な説明は最小限にする.
まず,LaTeX 文書は全体として次のような構造をしていないといけない.

■ LaTeX 文書の構造 ■
プリアンブル \documentclass コマンドで始まり, \begin{document} コマンドの前までを言う.

文書の各種設定はここに書込むことが多い.

通常は \documentclass コマンドは文書の一番最初にあり,
\documentclass{article}
などとなっている.
文書(本文)
\begin{document} コマンドで始まり, \end{document} コマンドの前までを言う.

文書は基本的に全てここに書かれる.

無視領域 LaTeX は \end{document} コマンドより後は完全に無視する.

ここに何か書込むと「人間が混乱する」ことが多いので, この領域は作らない方がよい.

また,次に示す文字は特殊文字としてそのままは扱えないので,注意が必要だ.

■ LaTeX 文書中でそのまま表示されない文字 ■
# $ % & ~ _ ^ \ { } 左の10文字は,LaTeX コマンドの一部に用いられるため,そのまま記入しても表示できない(文法エラーになる).

これらの文字を LaTeX で表示したい場合は,各々の文字のまえに \ をつけて \# などとすればよい. ただし,\ 自身は例外で,\ を表示したければ違う工夫がいる. (\ については,日本語表記と英語表記の違いという問題もあるので簡単ではない).




最終更新日 … $Date: 2005-07-07 19:50:09+09 $
Valid CSS! Valid XHTML 1.1!