研究室でTeXを使う人が増えてきたので、少し書いてみる。
この文章は、TeXの文法や、具体的に使う方法を解説するものではない。その ような情報は、web上でいくらでも入手できる。
ここで解説するのは、戦略と、いくつかのTipsである。これを読めば、真の TeXnicianになれるわけではないにしても、そこへ到る道標を得ることができ るだろう。
分からない言葉があっても雰囲気だけ捉えてくれればよい。TeXを書くための 最低限の知識さえあれば、理解出来るように書いているつもりである。
なお、ここでは、TeXの中でも、主にLaTeXについて語る。今どき、plain TeX を使う人は、なかなかいないだろうし、使う必要が出てくるのは、真の TeXnicianに近づいてからのことであるから。
TeX初心者が陥りやすい罠のひとつは、自分の好みのレイアウトにしようとす る努力である。もちろん、TeXの表現能力はかなり高く、大抵のレイアウトは 実現可能である。しかし、好みのレイアウトにしようと思うと、かなりの努力 が必要になることが少なくない。何故か?
そもそもTeXは、写植の自動化を目指して作られたシステムである。そのため に、細かいレイアウトを考える必要性をできるだけ軽減するように作られてい る。ワードプロセッサとは、根本的な設計思想が異るのである。
TeXでは、レイアウトを可能な限りTeX任せにするのが正しい。その方が、自分 の好みよりも標準的な仕様に近くなる。レイアウトではなく、内容で勝負する 文章になるのである。
では、何に気をつけて書けばよいのだろうか?
LaTeXが開発された最も大きな動機はTeXの可読性を高めることである。そのた めに、LaTeXは、論理構造による記述を重視している。そういった面では、 SGML (Standard Generalized Markup Language) の思想に近い。レイアウトや 字体や字の大きさを指定するのではなく、その言葉がその文章の中でどのよう な役割を示しているかを指定するのである。
例えば、「字を大きくして太字にして節番号をつける」という指定をするより
も、sectionコマンドを使うのが、LaTeX的には正しい。「変数は斜体にして数字
は立体にする」と指定するよりも、数式モード (文中なら`$'で囲む。別行なら
equation等の数式環境) で書くのが正しい。数式番号を直接書くのではなく、
\ref
(AMS-LaTeXでは\eqref
) で参照すべきである。
文献番号は\cite
などで引用するのが正しい。
要は、「どう表示するか」ではなく「何を意味するか」に集中すればよいのであ る。
もちろん、字体の指定が必要な場合もある。ラテン語由来の「et al.」を斜体に したり、数式中の添字を立体にする必要があるときは、人間が指定しなければな らない。bibTeXを使えば論文雑誌の巻番号が自動的に太字になることが多いが、 文中に書くときは、自分で太字指定する必要がある。
そういった、少数の例外を除けば、表示ではなく内容に集中すべきである。
そうは言っても、レイアウト等にこだわりたいときはある。そういったときは、 どうしたらよいのであろうか?
論文雑誌に投稿するときは、中途半端なこだわりを捨てることを勧める。雑誌 によっては規格外のマクロを嫌がる場合もあるし、自分なりにこだわったとこ ろで編集するのは先方である。標準的に出来る範囲内で工夫するしかない。 (もっとも、何が「標準的」であるかの判定は難しい場合もあるが。)
しかし、自分用のメモやレポートや卒論のような場合は、そのような制限はな い。好きに工夫すればよい。
その場合、中途半端な文献を参考にする前に、次のページを眺めておくことを勧 める。
以下は、それらの情報を参考にした上での提言である。
レイアウトを工夫したい理由の大部分は、余白の調整である。欧文の場合、 articleなどのドキュメントクラスを使うかわりにKOMA-Script 由来のscrartcl などを使うとよい。日本語の場合は、jarticleのかわりに奥村先生のjsarticle でa4jをオプションにするとよい。
それでも不足な場合は、typeareaやgeometryなどのパッケージを使うとよい。前 者はjsarticleとの相性が悪いので後者の方が使いやすいかもしれない。
\usepackage[margin=2zw]{geometry}
\usepackage[top=30truemm,bottom=30truemm,left=25truemm,right=25truemm]{geometry}
といった使い方ができる。ただし、truemm
は、jsarticle用のミリ
メートルなので、クラスに応じて使うこと。
日本語の文章で、chapter環境の「第1章」を「Chapter 1」に変 更するには、
\renewcommand{\prechaptername}{Chapter}
\renewcommand{\postchaptername}{}
とすればよい。\prechaptername
のデフォルトは「第」で
\postchaptername
のデフォルトは「章」になっている。
\tableofcontents
で「目次」を「Contents」に変更したいときは、
\renewcommand{\contentsname}{Contents}
図表番号を「Figure 1」とか「Table 1」などと表示したい場合は、
\renewcommand{\figurename}{Figure }
\renewcommand{\tablename}{Table }
他にも工夫したくなる場合はあるだろう。そういったときには、まず、書籍や知 人の知識やネット上の情報に頼るのがよい。「車輪の再発明」は避けるべきであ る。あなたが悩むことの大部分は、誰かが悩み、解決したことである。大抵は、 標準的なクラスでカタがつき、そうでなくても、CTANなどの標準的なサイトから 導入できる。あるいは、個人的に作った、その場限りのマクロに出会うときもあ る。
調べても見つからないとき、あるいは見つかった情報に満足できないときは、 自分でマクロを作るのがよい。TeXは、潜在的には、無限の表現力を持ってい る。印刷可能なことでTeXに表現できないことは無いと言ってよい。ただ、場 合によって面倒なだけである。
自分なりのマクロを定義するのは、\newcommand
というマクロであ
る。既存のマクロを再定義するのは、\renewcommand
である。ある
いは、\providecommand
を使いたくなるときがあるかもしれない。
環境を定義するには、\newenvironment
などがある。細かい設定を
するときは、plain TeXの知識が必要になることもあるが、他人のマクロを参考
にすれば大抵は解決できる。
もちろん、それだけの労力を費す価値があるかどうかの判断はすべきである。 無駄な努力をしても、疲れるだけである。
ライティング・スタイルは、好みによる部分があるから、参考程度に読んで欲 しい。
数式には、基本的に、数式番号をつけておくべきである。後で参照しない式で も、番号をつけておいた方が、読む人の助けになる。
節や式、図、表にはラベルをつけておくとよい。当初は参照しない予定であっ
ても、後で参照したくなるかもしれない。また、適切なラベルをつけることは、
その項目の意義をちゃんと考えることにもつながる。数式における
\label
コマンドは、先頭につけておくのが筆者の好みであるが、
最後につける人も多い。いずれにしても、一つの文書の中では、書き方を統一す
るべきである。
式のラベルの先頭にeq:
をつけたり、節のラベルの先頭に
sec:
をつけたりする流儀がある。それほど一般的ではないかもし
れないが、文中で統一しておけば便利かもしれない。この流儀でいけば、図のラ
ベルにはfig:
、表のラベルにはtab:
をつけることに
なる。
長さの設定は、相対的な単位にする方がよい。フォントの大きさに依存する、
em
やex
のような単位や、\textwidth
や\baselineskip
のような文書スタイルに依存する長さで指定する
のである。例えば、0.5\textwidth
のような書き方ができる。そう
しておけば、フォントの大きさを変えたり、文書スタイルを変えたりした場合に
も、自動的に適応できる。
数式中の+や-は、符号として使う場合と加減算として使う場合では、空白の取
り方が違う。行の先頭が+や-のときは、その前に、{}や\quad
など
を入れると加減算として扱ってくれる。({}と\quad
では出力結果
は違う。何故か?)
添字は、一文字でも{}でブロック化しておくとよい。そうすれば、添字を二文 字以上にしたときにミスしないで済む。
文中の数式や、分数の中、配列の中などで、積分記号等が小さくなったり、和
の記号の上下限の位置が変になるときがある。それがいやなら、該当部分を
\displaystyle
にするとよい。
古いシステムで新しいパッケージを使うときに、メモリが足りないというエラー が出ることがある。大抵は、パッケージがe-TeX拡張を要求している場合である。
TeXの処理系が古いと、e-TeX拡張を全くしてないか、欧文のみe-TeX拡張してい る場合がある。タイプセットするときに「e-TeX」(日本語の場合は「e-pTeX」) という文字列が表示されるかどうかで区別できる。
などの対処法がある。
AMS-LaTeXは アメリカ数学会 (American Mathematical Society) によって開 発されたパッケージおよびクラスファイルである。数式を使うときは、便利で ある。プリアンブルに、
\usepackage{amsmath}
\usepackage{amssymb}
の二行を書くのが標準的である。JPSJのクラスでは、自動的に読み込んでいる。
AMS-LaTeXを使っているときは、複数の数式をまとめて書くときに、eqnarray 環境の代わりにalign環境を使うとよい。空白のバランスがよいし、いろいろ 小細工がやりやすい。複数行の数式で一つの数式番号をつける場合は、split 環境を併用する。
また、amssymbを使うと、記号の表現力が大きく上がる。
その他、AMS-LaTeXの便利な使い方は、ネット上にいくらでもころがっている。
物理などの文章を書くときに、physymbが便利な場合がある。微分の記号が楽に 書けるし、オプションにbraketを指定すればディラックのブラケットが、units を指定すればSI単位系が簡単に書ける。
ベクトルを表わす記号は斜体の太字が標準であるが、標準的なLaTeXで書こう とすると、何故かややこしい。
JPSJのクラスを使うときは、\mib
というコマンドを使える。
そうでないときは、\usepackage{bm}
でbmパッケージを読み込めば、
\bm
で実現できる。ついでに、プリアンブルで
\newcommand{\mib}[1]{\bm{#1}}
とでもしておくと、
\mib
に統一できるので、JPSJ投稿用と、ソースの使い回しができ
る。(他の雑誌の場合は知らない)
bmパッケージを他のパッケージを併用するときに、「Too many math alphabets」 というエラーが出ることがある。その場合は、例えばイギ リスのTeX FAQの一部を参考にして、
%% avoid 'Too many math alphabets'
%% cf. http://www.tex.ac.uk/cgi-bin/texfaq2html?label=manymathalph
\newcommand{\hmmax}{0}
\newcommand{\bmmax}{2}
\usepackage{bm}% bold math
などとしておくと、うまくいく場合がある。
TeXで図を使うときは、eps形式が標準であるが、他の多くの形式も使える。他 の形式では、多少の工夫が必要な場合もある。
(TeXに限らず) 論文用の図は、ビットマップよりも、スケーラブルな形式がよ い、ということがよく言われている。それは一体、どういう意味だろうか?
描画ソフトには、ペイント系とドロー系がある。前者は、図の情報を一点ごと の色の情報としてストックする。後者は、図の情報を、座標と形で覚えている。
同様に、保存形式にも、ビットマップ形式とスケーラブルな形式がある。例え ば、jpgやgifは、前者である。一方、ps、eps、pdfなどは、どちらの形式も可 能である。
区別をするには、拡大表示してみればよい。ビットマップだと、斜めの線がガ タガタになり、スケーラブルだと、どれだけ拡大しても滑らかさが保たれる。 まさにそのような性質が、刷り上がりの大きさが原稿とは違うような論文原稿 に向いているのである。
描画ソフトは、psもしくはepsに直接対応しているものを使うとよい。そうで ない場合は、一度ビットマップ形式になっていれば、その後どんな変換をして もビットマップ形式のままである。
やむをえずビットマップ形式を使う場合は、原図を充分に大きく書くとよい。 半分以下に縮小するのなら、ビットマップでも滑らかになる。
自分用の資料を書くときは、文中にその文書のファイル名を入れておくと便利
である。TeXでは、\jobname
というコマンドで、ファイル名から拡
張子を除いた文字列が得られる。例えば、
\newcommand{\filename}{\texttt{\jobname.tex}}
とでもしておけ
ば、容易にファイル名を入れられる。
パワーポイントでプレゼンする代わりに、TeXで書いたものを使うことができ
る。例えば、\documentclass[landscape]{slides}
のように、A4用
紙横置で大きな字で書いておいて、結果をpdfに変換するのである。Acrobat
Readerの全画面表示を使えば、見かけはパワーポイントとあまり変わらない。
アニメーションを除けば、パワーポイントとほぼ同等のことができる上に、数 式は圧倒的に美しい。工夫次第では、擬似アニメーション程度のことはできる。
より便利に、効果的なスライドを書くには、beamerやpowerdotなどの、スライド 用のクラスを使うとよい。システムによっては、animeteパッケージを併用して、 ちゃんとしたアニメーションを使うこともできる。
TeXで論文等を書く際の一般的な注意といくつかのTipsを述べてきた。
ここで述べたことは、全て、経験に基づく私見である。このような考え方がある ということを知った上で、自分なりの工夫をして欲しい。