電子計算機及び実習 第 4 回 (10/20)
4 TEX の基礎
4.1 今日のテーマ
* TEXとは
*実行ディレクトリの作成
* TEXファイルの作成と処理
*画像形式への変換とウェブページでの公開
**今日の課題
1. 自分のウェブページに,TEXで作成した文書hello.pngを公開せよ.
2. hello.texを「学籍番号+Oct20.tex」と名前を変えて添付し,s-suzuki宛に署名をつけて送信せよ.ただ し,Subjectは「学籍番号+Oct20」とせよ.また,メールの本文に添付したファイルの名前を明記すること.
TEXに関して重要なコマンド
¶ ³
% platex example.tex
日本語のLATEXファイルのコンパイル
% xdvi example.dvi &
DVIファイルのプレビュー
% dvips -o example.ps example.dvi DVIファイルのPSファイルへの変換
µ ´
4.2 TEX とは
TEXは「てふ」もしくは「てっく」と読む.綴りのEは下付きに書かねばならないが,無理なときはTeXの ようにeを小文字で書くのが慣習である.TEXは理工系で広く用いられている組版ソフトである.非常に多くの 機能を備えているが,特筆すべきは数式の美しさである.
といっても初心者には何のことか分からないであろう.早い話,このレジュメはTEXを用いて書かれている.
数学の教科書をはじめ,最近の理工系の本のほとんど全ては TEXで書かれている.大学では「レポートを TEX で書いて提出」などという課題は日常茶飯時に出されるし,卒業論文や修士論文もTEXで書くのが普通である.
今や,数学科を卒業して TEXができない,などとは,大変恥ずかしい事と思わねばならない.
文書(テキストファイル)に,「ここは表題」,「ここは箇条書き」といった,文書の構造を表す目印(マーク)を 付けることをマークアップする,といい,マークアップを文書に埋め込むための人工言語をマークアップ言語と いう.HTMLもTEXもマークアップ言語の一種であり,その意味でHTMLとTEXは親戚のようなものである.
TEXは非常に多くの機能を持つため,授業時間のみではとても紹介しきれない.書店に行けばTEXの参考書は いくらでもあるので,詳しいことはそれらを参照して欲しい.参考として次の本を挙げておく.
1. 奥村晴彦『LATEX 2ε美文書作成入門』技術評論社
各種OSに対応したTEXのインストーラーが付いている.
2. 生田誠三 『LATEX 2ε文典』 朝倉書店
目次が工夫されていて,知りたいことを効率よく調べられる.
4.3 TEX の種類
plainな TEXは,何でもできる反面,何でも自分でしなければならず,非常に使い勝手が悪い.そこで,多く
のマクロを備えた LATEX29が開発された.現在,TEXといえばLATEXのことを指すことが多い.これによって,
TEXは一般ユーザにとっても使いやすいものになった.その後,改良が進み,現在のバージョンはLATEX 2εとい う.一方,LATEXが日本語化されたものにpLATEXがある.我々は,このpLATEXを用いる(バージョン名まで入 れれば pLATEX 2ε).
また,yatex (野鳥) は,Emacs上でTEXのソースファイルを書くときの支援ツールである.我々はこれも用 いることにする30.yatexについて,詳しいことは次のページを参照せよ.
http://www.yatex.org/
4.4 作業の準備
TEXを使いはじめると,多くのファイルが作られていく.ホームディレクトリでこれを行うと,ファイルが多 くなりすぎて大変になる.そこで,TEX専用のディレクトリを作ることにする.
課題 4.1 以下を実行し,ホームディレクトリの直下にTEXの作業用ディレクトリtexを作成し,カレントディ レクトリを, texに変更せよ.
¶ ³
% cd
% mkdir tex
% cd tex
µ ´
ディレクトリの概念をまだよく理解していない者は,「手引き」のPart IIIの3.5 節をよく読みなさい.
前回,ウェブページに関するファイルはjwwwディレクトリ下に作成した.今回はtexディレクトリ下にTEX に関するファイルを作成する.このためには,例えば,
% cd ~/tex
% emacs hello.tex
のように,texディレクトリ上でEmacsを起動して編集作業を行うのが便利であろう.別のディレクトリにファ イルを作成した場合には,コマンドmvやcpを用いてファイルを移動したり,Emacsの別名保存機能(C-x C-w) を用いればいいだろう.
今後,ディレクトリはさらに増えていくであろう.どのディレクトリにどのファイルを作ったのか,よく把握 しておくこと.なお,ホームディレクトリでls -lRaとすれば,自分のディレクトリにある全てのファイルの情 報が表示される.
4.5 作業の流れ
課題 4.2 授業のページから,example.texをホームディレクトリにダウンロードし,このファイルを texディ レクトリに移しなさい(コマンドmvを用いる).それからtexディレクトリに移動し,example.texファイルが そこにあることを確かめなさい(コマンドcdとlsを用いる).次に,そのファイルの中身を見てみなさい(コマ ンドless もしくはmoreを用いる).
具体的には,example.tex をダウンロードした後,以下のように作業しなさい.何も考えずに入力するのでは なく,何をしているのか理解すること.理解が不十分である者は,過去のレジュメや「手引き」の対応する部分 を熟読しなさい.
29「らてふ」もしくは「れいてっく」と読む.Aは上付きであるが,無理なときはLaTeXと書く.
30yatexはEmacsの標準的な機能ではない.実は,yatexを使うための設定を初回の講義の際に行っている.他の環境でも,自分で設定 すればEmacsやmeadow上でyatexの機能を使用することができる.
¶ ³
% mv example.tex tex/
% cd tex/
% ls
% less example.tex
µ ´
このファイルがTEXの「原稿」であり,ソースファイルである.TEXファイルとも呼ばれ,通常ファイル名 に .texと拡張子を付ける.このファイルから,「清書」のファイルを作成する手順を示す.
課題 4.3 以下の(1)〜(4)を実行しなさい.
(1) コンパイルする.
¶ ³
% platex example.tex
µ ´
pLATEXが TEXファイルを解析し,組版してくれる.TEXファイルに問題がなければ,コンパイルの結果,LOG ファイル,AUXファイル,DVIファイルの3つができる(lsで確かめてみよ).LOGファイルは処理の手順を 記したものであり,AUXファイルは相互参照のために必要なファイルであるが,普段は気にしなくてよい.最も 大事なものは DVI ファイルであり,これが組版の結果である.
(2) プレビューする.
¶ ³
% xdvi example.dvi &
µ ´
DVIファイルはバイナリファイルと呼ばれるものの一種で,Emacsなどのテキストエディタで読み込むことはで きない.ここではDVIファイル専用のプレビューアであるxdviを用いる.
(3) DVIファイルをPostScriptファイルに変換する.
¶ ³
% dvips -o example.ps example.dvi
µ ´
印刷する場合31,通常先にPostScriptファイルに変換しておく.PostScriptファイルは略してPS ファイルとも 呼ばれる.
(4) PSファイルをプレビューする.
¶ ³
% gv example.ps &
µ ´
PS ファイルは別のプレビューアgv を用いてプレビューする.DVIファイルを閲覧するのは,TEXのユーザ でなければ難しいが,PSファイルはフリーソフトであるAcrobatReaderでも見ることができるため,より一般 向けのファイルだと理解してもらいたい.
4.6 初めての TEX
TEXファイルの処理の方法は前節で学んだ.ここでは,いよいよTEXファイルの作成をしてみよう.
課題 4.4 Emacsで新しくhello.texというファイルを作り,次のように書いて保存しなさい.それから,コン パイルとプレビューをしなさい.
31ただし,皆が一斉に印刷すると大変であるから,ここではまだ印刷の仕方には触れないことにする
¶ ³
\documentclass{jreport}
\begin{document}
Hello, world.
\end{document}
µ ´
(ヒント) •C-c b dとタイプすると,\begin{document} \end{document}が一瞬で入力される.また,括弧 をタイプすると,閉じ括弧も同時に入力される.これらは yatexの機能の一部である.ファイル名に.tex と名 の付いたファイルを Emacsで編集するときに,yatexの機能を使うことができる.
• コンパイルの途中で? と出力されて止まったら,どこかを書き間違えているのである.x Enter と入力してコ ンパイルを中断し,TEXファイルを編集し直そう.
•最初の一行は,どのような文書を作成するかを宣言している.ここでは,jreport(日本語のレポート)を作成 する,と言っている.また,\begin{document} \end{document}の間が本文であり,この部分のみ「清書」と なって現れる.
TEXファイルを書いている間は,「清書」がどうなるかは想像するしかない.実際にプレビューしてみると,想 像とは違った,ということもしばしばである.そのときは,また TEXファイルを編集し直さなければならない.
つまり,TEXで文書を作成する,とは次の作業の繰り返しである.
1. TEXファイルを編集する.
2. コンパイルする.エラーが出たら1.に戻る.
3. プレビューする.気に入らなければ 1.に戻る.
慣れてない間は,こまめにコンパイルした方がよい.さもなければ,どこでエラーを起こしているのか探さなけ ればならない.そこで,Emacs上でコンパイルやプレビューを手軽に行う方法を以下に記す.これもyatexの機 能である.
¶ ³
C-c t j コンパイル C-c t p プレビュー
µ ´
課題4.5 hello.texの本文に,~/jwww/profile.htmlの本文を挿入して保存せよ(無ければレポート用に作成 した他のファイルでもよい).
(ヒント) •挿入するには,いくつかの方法が考えられる.第一の方法として,カットアンドペーストがある.キー ボードだけでやる方法もあるが,ここではマウスを用いた方法を紹介する.まず,コピーしたい文字列をドラッ グで選択する(Windowsと異なり,これだけでコピー完了である).次に,ペーストしたい所へマウスポインタを 持っていき,ホイールをクリックする.第二の方法として,Emacsの挿入の機能を利用する方法がある.Emacs で他のファイルを挿入するには,C-x iとすればよい.それから,タグなどの不要な部分を削除する.
•Emacsで文書を保存するには,C-x C-sであった.このくらいはもう覚えていて欲しいものだ.
課題4.6 hello.texの本文に,以下の枠内の文を書き加えなさい.次に,コンパイルとプレビューをしなさい.
¶ ³
\[
\int_0^1 f(x)dx
=\lim_{n \to \infty} \frac{1}{n} \sum_{k=1}^n f \left( \frac{k}{n} \right)
µ\] ´
一字一句間違えずに入力すれば,次の数式が書けているだろう.
∫ 1 0
f(x)dx= lim
n→∞
1 n
∑n
k=1
f (k
n )
ただし,すぐにはコンパイルが成功しないかもしれない.慣れている者でさえ,コンパイルエラーは日常茶飯時で ある.根気よく間違いを探して編集して欲しい.間違いを見付けるには,ログを読むのも助けになるだろう.ロ グはLOGファイルに保存されている.yatexの機能でコンパイルすれば,Emacsに別バッファとして表示され る32.コンパイルが失敗した場合,ログには以下のようなエラーメッセージが現れる.
! Undefined control sequence.
l.10 \infinity
! で始まる部分がエラーメッセージである.ここでは,10行目の\infinityが未定義の命令である,と言われ ているので,その部分を書き直せばよい (\inftyが正しい命令である).Emacsの機能として,M-x goto-line
Enter として行番号を入力すれば,その行に飛ぶことができる.また,yatex の機能として,C-c ’ と入力すれ
ば,エラーの行に飛ぶことができる.
4.7 PS ファイルの加工,他の形式への変換
4.7.1 PNG形式への変換
TEXで作成した文書をホームページに掲載するにはいくつかの方法があるが,そのうちの一つが,画像形式へ の変換である.画像形式はGIFやJPEGなどがあるが,ここではTEXと相性が良いPNG形式を用いる.コマ ンドconvertで PSファイルをPNG ファイルに変換でき,コマンドdisplayで PNGファイルをプレビュー できる.
課題 4.7 hello.psからhello.pngを作成し,プレビューせよ.
¶ ³
% convert hello.ps hello.png
% display hello.png
µ ´
4.7.2 参考: PDF 形式への変換
PDFは一般に広く普及している形式である.以下の例ではhello.psからhello.pdfを作成する.なお,PDF ファイルもPS ファイルと同様にgvでプレビューできる.
¶ ³
% ps2pdf hello.ps
% gv hello.pdf
µ ´
また,(残念ながら当情報教育環境では使用できないが)DVIファイルから直接PDFファイルを作るコマンド もある.
¶ ³
% dvipdfmx hello.dvi
µ ´
4.7.3 参考: PSファイルから特定のページの取り出し
何ページにもわたる文書を作成したとき,特定のページだけ取り出して新しいファイルにしたくなることがあ る.その場合,psselectを用いればよい.次の例では,example.psの3ページから5ページを新しくnew.ps としている.
¶ ³
% psselect 3-5 example.ps new.ps
µ ´
32ログが編集作業に邪魔だと感じたら,C-x 1とすればよい.
4.8 ウェブページへの掲載
それでは,hello.pngをウェブページに載せてみよう.その準備として,~/jwww下に,画像ファイルを納め るためのディレクトリimageを作成し,ファイルをそこに移動させる.
課題 4.8 kterm上で以下のように入力しなさい.
¶ ³
% cd ~/jwww
% mkdir image
% chmod 755 image
% cp ~/tex/hello.png ./image
µ ´
また,hello.pngのパーミッションを調べ,公開用になっていなければ,適切にパーミッションを設定せよ.
課題 4.9 ~/jwww下に,以下の内容のファイルtex.htmlを作成し,ブラウザでプレビューせよ.hello.pngの 中身がブラウザで表示されていれば成功である.
¶ ³
<html>
<head>
<title>TeX の文書</title>
</head>
<body>
<img src="image/hello.png">
</body>
</html>
µ ´
課題 4.10 ~/jwww/index.htmlの本文に以下を付け足して,保存,プレビューせよ.
<a href="tex.html">TeX 文書の例</a>
また,リンクの設定がうまくいっていることを確かめなさい.
4.9 本日の課題
課題 4.11 自分のウェブページに,TEXで作成した文書 hello.pngを公開しなさい.これまでの課題をこなせ ば,自動的にできているはずである.
課題 4.12 hello.texを「学籍番号+Oct20.tex」と名前を変えて添付し,s-suzuki宛に署名をつけて送信せよ.
ただし,Subject は「学籍番号+Oct20」とせよ.また,メールの本文に添付したファイルの名前を明記すること.
これらの指定が守られていない場合,減点対象となる.
参考. 今回は,hello.texを「学籍番号+Oct20.tex」と名前を変えて添付せよ,と指定している.名前を変え てから添付してもよいが,それより簡単な方法として,添付の際Copy toと聞かれたときに,変更したい名前を 入力すればよい.
4.10 次回のテーマ
TEXの文法,プリアンブル,文字コード.