2005/01/22作成。最終更新:2005/03/23 LaTeXは理工系のレポート作成に書かせないツールですが、身のまわりを見てみ ると、基本的なところで詰まっている人も多いようです。ここでは、主にLaTeX 初心者向けに、LaTeXで(それなりに)綺麗な文書を作るためのアドバイス などをまとめました。 環境依存の話、及びインストールについては触れていま せん。バージョンは LaTeX2e を前提にしています。LaTeX2.09以前の方は残念 ですが、コンピュータ管理者の方に圧力をかけてバージョンアップを目論んで ください。パッケージは標準的なものしか使用していないつもりです。(具体的 には、VineLinux2.6のtetex及びtetex-extraパッケージに含まれるもの) ここ で使用しているパッケージはCTAN(英語;外部リンク)あたりで見付かる と思いますから、もしお使いの環境に含まれていないようならば、探してみる のも良いでしょう。
graphicxパッケージを使おう (グラフィック の表示のしかた)
jsclassesを使おう (綺麗な日本語文書の作り方)
テキスト中でのフォント (正しいフォント の設定は?)
bmを使おう (数式内での太字イタリック)
AMS-LaTeXを使おう (便利で多機能な数式記述環境を 求めて)
\documentclassを使おう
LaTeXのソースの最初の行は「ドキュメント宣言」を行いますよね。そこを
\documentstyle[ほげほげ]{jarticle}
などとしている方はいないでしょうか? いえ、確かにこれでも動くには動きます が、LaTeX2eにこのコードを食わせると、LaTeX2.09互換モードとなり、 いろいろな便利な機能が使えなくなってしまいます。これをふせぐには、ドキュ メント宣言を
\documentclass[ほげほげ]{jarticle}
のように、\documentclass にしましょう。また、\documentstyle では [ほげほげ] の部分に読み込みたい「スタイルファイル」を指定していましたが、 \documentclass では [ほげほげ] の中にはフォントの大きさなどの基本的な設 定のみを記述します。じゃあ、他の機能を読み込むにはどうするかというと、 \usepackage を使って、「パッケージ」を読み込めばよいのです。 \documentclass を用いたLaTeX文書の例を示します。
\documentclass[a4j,11pt,titlepage]{jarticle}
\usepackage{graphicx}
\usepackage{txfonts}
\begin{document}
本文
\end{document}
以下の「アドバイス」は全てLaTeX2eで \documentclass を使用していることを 前提としています。 参考文献:
graphicxパッケージを使おう (グラフィックの表示のしかた)
LaTeX文書にグラフィックを張り付けるのに手間取っている方もときどき見かけ ます。LaTeX2.09では epsf スタイルファイルなどを使用していましたが、 LaTeX2eでは graphicx (または graphics) というパッケージが標準となっ ているようです。張り付けることの出来る画像フォーマットは、DVI表示ソフト(dviware) として何を使用しているかによりますが、Windowsのbmpファイルやgifファイル なども大丈夫のようです。(私はPostScriptファイルか EPS ファイルしか張り付 けないので詳しくは知りませんが) graphcx パッケージを使うには、まず、 \begin{document}の前に、
\usepackage[使っているDVI表示ソフトの名前]{graphicx}
と書きます。[ ] の中は、例えば X Window System 上で xdvi を使用している場 合は、[xdvi] と書けばOKですし、Windows 上で dviout を使用している場合は [dviout] と書きましょう。(詳しくは外部リンクLaTeX GRAPHICS編(basic)などを参照) 文書中でグラフィックを実際に張り付ける には、\includegraphicsを使用します。もっとも単純な使いかたは、
\includegraphics{張り付けたいファイル名}
です。また、画像のサイズを指定したいときは、
\includegraphics[width=5cm,height=4cm]{hoge.eps}
のようにします。このままでは画面の左端に画像がよって格好わるいですし、キャ プションを付けたり、LaTeXに自動的に画像の表示位置を決めてもらったり、と いうことが出来ませんから、figure環境などを使って以下のようにする と良いでしょう。
\begin{figure}[ht]
\begin{center}
\includegraphics[width=5cm]{hoge.eps}
\caption{ほげほげの絵}
\label{fig:hoge}
\end{center}
\end{figure}
(念のために少し解説を加えておきます:ここでは、まずfigure環境を使って、図の表示位置をLaTeXに自動的に決めても らっています。[ht] というオプションは、この位置(here)またはペイジ上部 (top)に図を表示してくれという意味です。center環境はその中がセンタ リングされるというものです。\captionで図にキャプションを付け、 \labelで図に「fig:hoge」というラベルを付けています) 参考文献:
jsclassesを使おう (綺麗な日本語文書の作り方)
以上の例では、「ドキュメントクラス」として jarticle を使用してきました。これ は日本語の文書をLaTeXで作成する場合には標準的なものだと思いますが、その まま使ったのでは、「日本語の文書」として少し美しさに欠けるDVIファイルが 作られてしまう場合があります。細かなパラメータをいじくって、自分好みの出 力を得ることも可能ですが、もっと簡単に美しい出力が得られるのが jsclasses (外部リンク:pLaTeX2e 新ドキュ メントクラス)です。使用方法は簡単で、\documentclass を
\documentclass{jsarticle}
などに書き換えるだけです。(jbook の場合は jsbook にします。jsreport は無 いようです)
注意点
jsclasses はフォントの見た目の問題から、10ポイント活字で組んだものを拡大 (または縮小)して、要求されたポイント数の出力を得ているそうです。(これを嫌い、jsclassesを使わない人も居るようです) 結果とし て、LaTeXで長さを指定するのに使用する「cm」などの単位が変わってしまいま す。これを避けるためには「cm」などの代わりに「truecm」というよう に、true を単位名の前に付けると良いそうです。 参考文献:
テキスト中でのフォント (正しいフォントの設定は?)
通常の文章中でフォント(LaTeXでは「タイプフェイス」と呼ぶべきでしょうか?) を変更するにはどうしていますか? 比較的、\bf や \it を使っ ている方が多い印象があります。 私もそうでした。しかし、LaTeXのマニュア ルを調べてびっくり、これらについては(私の調べた範囲内では)書かれていま せん。つまりは、こいつらは使うな、という事のようです。(TeXのコマ ンド?) マニュアルによれ ば、\bf のかわりに \textbf または \bfseries を、それ以外 についても該当のコマンドを使うべきだそうな。 \textbf 系のフォント指定は以下のようにします。
default. \textit{ italic. \textbf{ italic-bold. } }
表示結果は
のとおりです。 \bfseries 系のフォント指定は以下のようにします。(\begin〜\endを使う方法 もあるようですが、割愛。またこの例では { } は本当は必要ない)
default. {\itshape italic. {\bfseries italic-bold. } }
表示結果は
のとおりです。お好き な方をどうぞ。数式内の \math** との整合性を考えると、\text** の方が覚え やすいかも知れません。マニュアルによれば以下のようなコマンドがあるようで す。ついでに数式モード中でのコマンドも付記しておきます。
\textbf系 |
\bfseries系 |
数式モード中 |
字体 |
\textrm |
\rmfamily |
\mathrm |
ローマン体 |
\textit |
\itshape |
\mathit |
イタリック体 |
\textmd |
\mdseries |
|
通常の太さ(ボールドでない) |
\textbf |
\bfseries |
\mathbf |
ボールド体 |
\textup |
\upshape |
|
斜体でないフォント |
\textsl |
\slshape |
|
斜体 |
\textsf |
\sffamily |
\mathsf |
サンセリフ体 |
\textsc |
\scshape |
|
小文字を大文字と同じ字型(ただし小さめ)で表示 |
\texttt |
\ttfamily |
\mathtt |
タイプライター風 |
\textnormal |
\normalfont |
\mathnormal |
通常の字体 |
|
|
\mathcal |
カリグラフィックフォント |
ところで、では \bf や \it では何がいけないのでしょうか? やってみます。
default. {\it italic. {\bf italic-bold?? } }
表示結果は
のとおりです。うまく入れ子 に出来ないようで。(入れ子にする方法もあるとは思いますが、どちらにしろ (多分)マニュアルには書かれていない機能なので、使わない方 が良いでしょう)
bmを使おう (数式内での太字イタリック)
LaTeXでベクトルって、どうやって表示します? 一つの方法は \vec を使 うことですね。
\vec{a} e^{i \vec{k}\cdot\vec{r}}
と書くと、画面には
のよう に、上部に矢印がついたベクトルが表示されます。しかし、「ベクトルは太文字 じゃないと!」とお考えの方もいらっしゃるでしょう。私も太文字派です。数式 中で太文字を使うには \mathbf を使います。
\mathbf{a} e^{i \mathbf{k}\cdot\mathbf{r}}
と書くと、
のように、ボー ルド体で表示してくれます。海外の本などでよく見かける書き方ですね。しかし、 これでもまだ気に入らない場合があります。これでは、ボールド体にはなってい ますが、イタリックになっていません。「ベクトルはボールド・イタリックだ!」 と。ここでよく見受けられるのが、\boldmath を使う方法です。ですが、 これには少々問題があります。何故か、数式中で使えないのです。です から、\mbox などで一時数式モードから抜けて、再び \boldmath 内で数 式モードに入る、というややこしいことをする必要があります。実際にやってみ ましょう。
\mbox{\boldmath $a$} e^{i \mbox{\boldmath $k$}\cdot\mbox{\boldmath $r$}}
という長いコードを書くと、表示されるのは
です。他の例と比べると、大変なことになってい ることがお分かりかと思います。\mbox で数式環境から抜けているため、添字だ ろうがなんだろうが、同じフォントサイズで表示されてしまうのです。見た目を 追求すると反対に見た目が悪くなってしまいました。物理学の教科書では、 この形式のベクトルをこのまま印刷して販売しているものも少なくないのですから、良いと いえば良いのかも知れませんが、もう少し努力が報われることをしたいものです。 そこでおすすめなのが bm です。最初に
\usepackage{bm}
としてから、
\bm{a} e^{i \bm{k}\cdot\bm{r}}
とすると、表示は
となり ます。まさに望んでいたものです。というわけで、bm を使いましょう、が結論 です。
AMS-LaTeXを使おう (便利で多機能な数式記述環境を求めて)
AMS-LaTeXとは?
皆さんはLaTeXで数式を書くのにどのような環境をお使いでしょう? equation 環 境でしょうか。では、複数行の数式を書くには? eqnarray 環境でしょうか。で はでは、LaTeXに標準ではついていない数学記号を使いたくなったら? LaTeX標準の数式環境は少し凝ったことをしようとすると、急に不足に見えてき ます。特にeqnarrayは、表示の醜さの点では悪名高いとも言えましょう。更に、 数学記号も「え? こんなものが?」と思ってしまうようなものが足りなかったり、 とは日常茶飯事です。(例えば、「何故ならば」の「∵」とか) これを解決する のがAMS-LaTeX(英語;外部リンク)です。AMS-LaTeXはアメリ カ数学会(AMS)の提供しているパッケージで、多彩な数式環境を提供するもので す。 AMS-LaTeX(と AMSFonts)を使用するには、\begin{document}の前に、
\usepackage{amsmath}
\usepackage{amssymb}
とします。
数式用環境
早速、簡単な例を見てみましょう。私がもっとも頻繁に使っているの はalign環境です。align環境は複数行、 複数列にわたる数式を書くのに使用します。例えば、
\begin{align}
k &= b^2-4ac,& l &= a+c, \\
x^2+y^2 &= 1,& z &= \frac{a+b}{c}
\end{align}
と書くと、表示は
のようになります。奇数番目の & が等号をそろえるために、偶数番目の & が間隔を開けるために使用されます。\\ は改行です。数式番号を付けたくない場合は、 align*環境を使うか、\notag を指定します。通常のLaTeXの eqnarray環境と似ていますが、表示はずっと綺麗です。(Short Math Guide for LaTeX(詳細は下記)では、eqnarray環境の使用は非推奨とされています) AMS-LaTeXで改善されている細かいところとしては、各数式環境の式番号無しバー ジョンの名称が統一されているという点があります。通常のLaTeXでは、式番号 付きの1行の数式を書くのにequation環境を、式番号無しの場合は displaymath環境を使用しますが、AMS-LaTeXでは(align*環境のように)全ての数 式環境に式番号無しの「〜*」という名前の環境が用意されています。すなわち、 displaymath環境の代わりにequation*環境を使えばよいのです。 更に複雑な数式(例えば何行にもわたる数式に式番号を1つだけつけるとか)を書 きたい場合は、split環境を使用します。例えば \begin{equation}
\begin{split}
E \psi &= H \psi \\
&= \left( -\frac{\hbar^2}{2m}\triangle + V \right) \psi
\end{split}
\end{equation}
と書くと、表示は
のとおりです。split環境は equation環境等の中で使用します。式番号が、2行にわたる数式の間辺りに表示されていることに注目 してください。ここでも & が等号をそろえるために、\\ が改行として使わ れています。( \left と \right とは、間に囲まれた式に合う大きさの 括弧を自動的に作る、LaTeXのコマンドです。念の為) 他にも様々な数 式用環境が用意されています。
\text コマンド
数式の一部で例えば漢字を使いたいときはどうしますか? 一つの方法は \mbox コマンド等で一度数式モードから抜けることです。例えば
T_{\mbox{水の三重点}} = 273.16\,\mathrm{K} \qquad \mbox{(Kelvinの温度目盛)}
と書くと、表示は
のとおりです。(念の為に解説を加えましょう。\, コマンドは数値と単 位との間に小さなスペースを作るために挿入しています。K (ケルビン)等の単位 はローマン体で書くのが普通ですから、\mathrm コマンドを使用しています。 \qquad コマンドは大きな空白をつくるコマンドです。ちなみに、T の添字の \mbox は { } で囲まないとエラーとなりました) しかし、これでは問 題があります。上で \boldmath を使ったときと同じで、本来は小さなフォント で表示して欲しい、添字の「水の三重点」も、「Kelvinの温度目盛」と同じく、 通常のサイズで表示されてしまうのです。これを解決する最も簡単な方法は、 AMS-LaTeXの \text コマンドを使うことでしょう。
T_\text{水の三重点} = 273.16\,\mathrm{K} \qquad \text{(Kelvinの温度目盛)}
と書くと、表示は
のとおりです。ちゃんと添字の部分は小さくなっています。(この場合は、 添字でも { } で囲む必要は無いようです)
\dots コマンド
数式中で省略を表すための \dots コマンドが AMS-LaTeX では改良されています。 実際に使用してみましょう。
A_{i} = a_{i1}+a_{i2}+\dots+a_{im} \qquad (i=1,2,\dots,n)
と書くと、表示は
のとおりです。使う場所によって、自動的に表示位置が変わっています。 Short Math Guide for LaTeX によれば、更に意味によって違うコマンドを 使うべきのようですが、まあ、これで構わないでしょう。
多重積分
多重積分はどのように書いていますか? 一つの方法は、LaTeXの \int コ マンドをただ並べて
\int\int f(x,y)\,dxdy
と書くものです。表示は
のようになります。ちなみに、f(x,y) と dxdy との間にスペースを空けるため に \, コマンドを使っています。この結果をそのまま印刷している教科 書もありますが、はっきり申しまして、あまりに不格好です。それぞれの積分記 号の間が開きすぎるのです。このスペースを \! コマンドで詰める方法 もありますが、AMS-LaTeXを使用するなら、多重積分用のコマンドを使った方が 良いでしょう。以下のようにします。
\iint f(x,y)\,dxdy
表示は
のとおりです。同じ様に \iint から \iiiint コマンドまで用意 されているようです。また、\idotsint コマンドを使えば、
\idotsint f(\bm{x})\,d^n x
と書くことで、
という表示を得ることも出来ます。
その他
AMS-LaTeXの機能について、詳しくは例えば、AmS-LaTeXの使い方のメモ(外部リンク)などを参照するか、 もしくはアメリカ数学会のAMS-LaTeXのペイジからダ ウンロードできる、Short Math Guide for LaTeX(PDF文書;英語;外部リンク)を参照するなどしてください。特に 後者は一般的にLaTeXを使用する上でのtip集にもなっているので、重宝します。 ちなみに、上で紹介した bm と同様な機能を持つ \boldsymbol が、 AMS-LaTeXにも用意されています。
- 以下、執筆予定。
