今週はまず文書作成を扱う。次週は絵を入れたり、もう少し気の効いたことを やってみよう。「計算機による文書作成」といっても、ようするにワープロを 使うのと同じである。少し違うのは、ワープロに比べてかなり高度な処理がで きることくらいであろう。ただし、処理の仕方はワープロとはかなり違う。
ワープロを使う場合、パソコン上のワープロソフトでも、あるいはオアシスの ようなワープロ専用機でも、まず立ちあげ、あとはその中で文書作成し、ファ イルにしまったりプリントアウトしたりするのもそのワープロの中でメニュー とかコマンドを使って実行するようになっている。これに対し、今日使ってみ る LATEX (レイテックあるいはラテフというような発音をする。ラテックス とは読まない方がいいと思う)では、文書作成自体はこれまで使ってきたエディ タで行ない、それを別のプログラムで処理して結果を画面で見たりプリントし たりする。このようなやり方には、プログラム開発や機能の追加がやりやすい、 また、なれれば使いやすいなどのメリットがあるが、逆になれるまでは使いづ らいかもしれない。
以下のようなファイルをエディタ(mule)でつくって、適当な名前(例えば texsample.tex)でセーブしておこう。
\documentstyle[12pt]{jarticle} \begin{document} \title{LATEXによる文書サンプル} \author{牧野淳一郎} \maketitle \abstract これはLATEX による文書サンプルである。 \section{序論} ここは序論である。 \section{本論} ここは本論である。 \section{結論} ここは結論である。 \end{document}さて、文書ができたらこれを処理するプログラムにかける。これには jlatex texsample というコマンドをシェルウインドウで入力する。 コマンド名は jlatex で、その次にファイル名のうち .tex の前 までをつけてリターンするわけである。このため、ファイル名は .tex で終っている必要がある。別の名前で作った人は、 mv コマンドを使っ て名前を付け直そう。 うまくコマンドが動けば、おおむね以下のようなメッセージがでる。
>jlatex texsample This is JTeX, Version 1.6, based on TeX Version 3.1415 (C version 6.1) (texsample.tex LaTeX2e <1996/12/01> patch level 1 (/usr/local/lib/texmf/tex/jlatex2e/base/jlatex209.def (/usr/local/lib/texmf/tex/latex2e/base/latex209.def Entering LaTeX 2.09 compatibility mode. (/usr/local/lib/texmf/tex/latex2e/base/tracefnt.sty) (/usr/local/lib/texmf/tex/latex2e/base/latexsym.sty))) (/usr/local/lib/texmf/tex/jlatex2e/base/tracejfnt.sty) (/usr/local/lib/texmf/tex/jlatex2e/base/jarticle.cls) (/usr/local/lib/texmf/tex/jlatex2e/base/j-article.cls Document Class: j-article 1995/01/31 v1.2y Standard JLaTeX document class (/usr/local/lib/texmf/tex/jlatex2e/base/j-size12.clo (/usr/local/lib/texmf/tex/jlatex2e/base/jresize12.clo))) No file texsample.aux. (/usr/local/lib/texmf/tex/latex2e/base/Ulasy.fd) [1] (texsample.aux) ) Output written on texsample.dvi (1 page, 1812 bytes). Transcript written on texsample.log. >しかし、なかなかそうはいかず、途中でとまってしまうこともあろう
jlatex texsample This is JTeX, Version 1.6, based on TeX Version 3.1415 (C version 6.1) (texsample.tex LaTeX2e <1996/12/01> patch level 1 (/usr/local/lib/texmf/tex/jlatex2e/base/jlatex209.def (/usr/local/lib/texmf/tex/latex2e/base/latex209.def Entering LaTeX 2.09 compatibility mode. (/usr/local/lib/texmf/tex/latex2e/base/tracefnt.sty) (/usr/local/lib/texmf/tex/latex2e/base/latexsym.sty))) (/usr/local/lib/texmf/tex/jlatex2e/base/tracejfnt.sty) (/usr/local/lib/texmf/tex/jlatex2e/base/jarticle.cls) (/usr/local/lib/texmf/tex/jlatex2e/base/j-article.cls Document Class: j-article 1995/01/31 v1.2y Standard JLaTeX document class (/usr/local/lib/texmf/tex/jlatex2e/base/j-size12.clo (/usr/local/lib/texmf/tex/jlatex2e/base/jresize12.clo))) ! Undefined control sequence. l.3 \begen {document} ?このメッセージでは、 Undefined control sequence というところで、何かこ のプログラムが知らないコマンドがあったといっていて、その次の l.3 \begen というところで \begen がその知らないコマ ンドだといっている。ここでプリントと比べると begen ではなく begin になっ ていて、タイプミスが原因だったとわかる。これを直せばいいわけである。他 にもいろいろなエラーが出ると思うが、メッセージを頼りに直していってみよ う。
なお、エラーがあった時、基本的には ? が出 る。ここで x (とそのあとリターン)をいれれば LATEX から抜けるので、エ ラーのところを直してもう一回 LATEX を走らせればいい。ただし、場合によっ ては何だか良くわからない状態になることがある。その時は画面に出ているメッ セージを良く読んで、「常識」で判断すること。まあ、普通は作った ファイルがなくなるとかいったことはないはずである。どうしても LATEX か ら抜けない時は、 Ctrl-c を何回か押してみる。
また、 mule のなかで何だか良くわからない状態になった時はとりあえず Ctrl-g を何回か押してみる。依然として画面がおかしい(何だかわからない ものがでている)時は、ウインドウの左上のほうにある Buffers というメニュー をいろいろ操作してみる。
「いろいろ操作してみる」というと何だかいい加減に聞こえるが、まあ 計算機が壊れることはないので気楽にやってみること。(場合によって は作っているファイルが消えてしまうことくらいはあるかもしれないが) なお、「ユーザーインターフェース」の研究というのは、理屈では素人 がメニューとかメッセージをみながらなんとか使えるようにするという ものなので、そういうやりかたでうまくつかえないのは使っている人で はなくてプログラムのできのほうが悪いのである。とはいえ、文句をいっ てもしょうがないので、なんだかわからなくなったらわかっていそうな 友達、 TAの大学院生や私に聞くこと。
latex コマンドがうまく動くと、 texsample.dvi という名前のファイルがで きる。このファイルには計算機が読める(人間には読めない)形で、レイアウ トされた文書が入っている。
なお、 xdvi texsample といれてウインドウが出ているあいだは、シェ ルウインドウで次のコマンドを入れても実行されない。次に進むためには xdvi のメニューで QUIT を選ぶ必要がある。
このような、あるコマンドの出力結果を別のコマンドが受けとって処理するこ とをパイプ処理という。これには縦棒 「|」で区切ってコマンドを並べる。 例えば、 w | sort と入力すれば、 w の出力が sort で処理され、ア ルファベット順にならんで出力される。
さて、プリンターに送ったけれども出てこないとかいったことは良く起きる。 これにはいろいろな原因があるが、例えば
unable to print: cassette 1 paper empty (non fatal) Rank Owner Job Files Total Size active makino 400 standard input 30117 bytesこれは、「プリントできません、というのは、紙がないからです」といってい るので、プリンタのところにいって紙を入れてやる。紙は一階の事務室でもら う( A4 のをもらってくること)その他いろんなメッセージがでるので、読ん で適切に判断して欲しい。すでに出力がおわっていれば no entries と いう答が返ってくる。
さて、プリンターにおくっちゃったけどやっぱり取り消したいという時には、 lprm というコマンドを使う。これを使うには、まず出力の番号(ジョ ブ番号という)を調べる必要がある。これは lpq でできる。上の例で は 400 である。これを使って lprm 400 と入れれば、
prn04: dfA400xss01 dequeued prn04: cfA400xss01 dequeuedといったメッセージがでて、出力は取消になる。なお、もしも間違って他の人 の出力の番号をいれてしまっても、それが消えることはない(自分の出したも のしか消せない)。
\documentstyle[12pt]{jarticle}では、「この文書の形式は 12 ポイント(字の大きさ)の jarticle です」と いう指定を与えている。形式は他に jbook, jreport などがある。 \section は新しい節の始まりを示す。自動的に番号がふられる。
LATEX で作るもっとも簡単な文書は、以下のようなものだろう。
\documentstyle[12pt]{jarticle} \begin{document} これはLATEX によるもっとも簡単な文書である。 \end{document}つまり、文字、形式の指定をし、文書をはじめますというコマンドを書き、そ れから文書の本体を書く。で、そのあとはこれでおしまいというコマンドを書 いてやる。
段落わけをしたければ、改行を2回続ければいい。
\documentstyle[12pt]{jarticle} \begin{document} これは最初の段落になる。 これは次の段落である。 \end{document}段落での文字下げ、改行間隔などはコマンドでかえることもできる。
さて、上のようにただ書いていくだけでは、体裁があまり良くない。 LATEX では、体裁を整えるための仕組みがいろいろ準備されている。普通に使うのは、 前回の例でやったように、表題とか著者をコマンドで指定して、 \maketitle といったコマンドを使って LATEX に勝手にタイトル ページをつくってもらうといった方法である。これは、雑誌論文などで、体裁 を出版社が指定したい時に、細かい指定が入ったファイルを別につけておいて、 著者は体裁を気にしないで書けるといった便利な点がある。
もちろん、直接いろいろ指定することもできる。例えば、 \big というコマンドを入れればそこから先は字が大きくなる。 \normalsize でもとに戻る。この辺は教科書に詳しい。
既にあるファイルを編集するには Open File 、また今編集中のファイルの名 前をつけかえるには Save Buffer As を選ぶ。