LaTeXによる文書の書き方

ここではLaTeXを使った文書の書き方を説明する。このページの内容はEmacsで書くことを前提にしているので、Emacsがまだ十分に使いこなせなければこちら(Emacsの使い方)もあわせて読んでみてほしい。

また、数式記号などのコマンドを調べるにはこちらのWebサイト(LaTeXコマンドシート一覧)が便利。

目次


レジュメの作り方

レジュメのサンプルファイル(Linux版:resume.tex、Windows版:resume_sjis-dos.tex)を置いておく。中身をエディタに直接貼り付けるか、右クリックでダウンロードすれば利用できる。なお、Emacsに貼り付ける場合はドラッグして範囲を選択した後、Emacs上でマウスホイールをクリックすればペーストできる。

上のサンプルファイル内で、最初の
  \documentclass[a4j,twocolumn,fleqn]{jarticle}
から
  \begin{document}
の直前までの部分をプリアンブルと言い、文書の書式やスタイルファイルの読み込みなどをここに書いておく。今は分からなくてもかまわないので、とりあえず後半の方に書いてある
  \title{}
  \author{}
  \date{}
のところにタイトル、著者、日付を書き、
  \section{はじめに}
以下から本文を書き始めればいい。

また、LaTeXの文書ではコメント記号に % を用いる。%からその行の最後までがコメントとして扱われるので、機能としてはC言語の // と同じ。(行コメント)


コンパイルとプレビュー

実際にソースファイルをコンパイルしてプレビューしてみよう。
 ファイル名はなんでもいいので、 拡張子が .tex のファイルを適当に書く。書けたら C-c t j と入力するとコンパイルできる。(C-c t j とは、Ctrlキーを押しながらcを押して、次にCtrlキーを離して t j と入力するという意味)

コンパイルを実行して、エコー領域に typeset と表示されたらコンパイル成功。texファイルと同じディレクトリに.dviという 拡張子のファイルが作られただろう。 次にこのDVIファイルをプレビューする。

プレビューするためのコマンドは C-c t p 。これを入力するとカーソルがミニバッファに移動するので、 そのまま Enterを2回 押せば よい。xdvik というプレビューアが 起動してDVIファイルの中身が確認できる。


エラーが出たときは

コマンドが間違っていたりするとコンパイル時にエラーが出る。 エラーがあった場合、*YaTeX-typesetting* バッファにエラー行と エラー内容が表示されるので、ソースファイルを修正して再度コンパイルしよう。 ちなみに、このとき C-c ' を 押すとエラー行にジャンプするので覚えておくと便利。

以下によくありがちなエラーを書いておく。

など。


文章の書くときの注意点

TeXの文法にはたくさんの規則があり、正しく書かないとエラーとなる 場合がある。 下に挙げるようなものは特に重要なので覚えておこう。


数式の書き方

数式は原則として数式環境数式モードとも呼ぶ)の中で書く。
数式モードに入る方法は大きく分けて2種類ある。まず1つ目は、

\begin{eqnarray}
 
\end{eqnarray}
\begin{align}
 
\end{align}
などの eqnarray環境align環境 などを使う方法。数式の部分を別段落として書きたい場合はこの方法を用いる。

2つ目は、$(数式)$のように数式を$$で挟む方法。文章中に数式を混ぜたい場合はこちらを用いる。

また、数式モードでは通常の環境とは主に次のような違いがあることに注意。

eqnarray環境とalign環境の違い

それぞれの性質の違いを表にまとめておく。どちらを使ってもよいが、一つの文書の中では一方に統一しよう。
eqnarrayalign
数式の位置中央寄せ左寄せと中央寄せの間くらい
式の揃え方&&で挟まれた場所が揃う&の場所が揃う
長い数式を書いたときの数式番号重なる自動的に改行される
\usepackage{}不要amsmathが必要
新旧旧い新しい
;や:を使った補完普通にできるデフォルトではたぶん無理(.emacsを設定すればできる)


具体的な数式いろいろ

分数や添字、積分記号などの特殊な数式もコマンドで簡単に 書くことができる。数式が簡単かつ綺麗に書けるということがLaTeXの 最大のメリットの一つと言える。

例えば下のようなコマンドがある。ただし、 これらのコマンドは全て数式環境内でしか 使えないので注意。

 また、行列は結構めんどくさい。
 例えば A = [1 2; 3 4] の2×2行列は次のように書く。
A = \left[
 \begin{array}{cc}
  1 & 2 \\
  3 & 4 
 \end{array}
 \right]
この意味を簡単に説明すると、

1行目の \left[ で行列の左括弧を挿入。\left を付けることで括弧の大きさを 行列のサイズに合うように自動的に調節してくれる。
2行目の \begin{array} で行列の要素を書くarray環境を宣言。{cc}のcの個数は列の数に対応。 cは中央寄せ(center)の意味。他にはlで 左寄せ、rで右寄せにできる。
3行目の & で要素を区切り、\\ で改行。
4行目も同様だが、行列の最後の行なので \\ は必要ない。
5行目で array環境を閉じる。
6行目の \right] で右括弧を挿入。

という感じになる。
もっと大きな行列、例えばm×n行列の場合は次のように書くことができる。
A = \left[
 \begin{array}{cccc}
  a_{11} & a_{12} & \cdots & a_{1m} \\
  a_{21} & a_{22} & \cdots & a_{2m} \\
  \vdots & & \ddots & \vdots \\
  a_{m1} & a_{m2} & \cdots & a_{mn}
 \end{array}
 \right]
これをプレビューするとこのようになる。
snap-matrix_01.png


ラベルを付ける \label{ラベル名}

LaTeXで数式や図を用いると、その数式番号や図の番号が自動的に 割り振られる。その番号を 参照するためにはラベルを用いる。 ラベルを付けるときは \label{ラベル名} 、 参照するときは \ref{ラベル名} と書く。
ラベル名に特に規則はないので好きなように付けてかまわない。

例えば下のようにラベルを付けて参照してみよう。

\begin{eqnarray}
 \dot{x} &=& Ax + Bu \label{joutai} \\
 y &=& Cx \nonumber
\end{eqnarray}
上の(\ref{joutai})式において。。。
これをプレビューすると、下のように式番号 (1) が参照される。
 また、2行目のように番号を振りたくない数式には \nonumber と書いておく。

snap-latex_02.png

もし、どの数式にも番号を振りたくないときは、
\begin{eqnarray*}

\end{eqnarray*}
のように末尾に * を付けて eqnarray* と書く。 alignの場合も同様に align* と書けばOK。
もちろん \begin{} と \end{} の両方に書かなければいけない ことに注意。


箇条書き \begin{itemize}〜\end{itemize}など

箇条書きの書き方には3種類ある。

<箇条書きの方法1:itemize環境>

\begin{itemize}
 \item 項目1 
 \item 項目2
 \item 項目3
\end{itemize}
と書くと snap-latex_04 のように表示。

<箇条書きの方法2:enumerate環境>
\begin{enumerate}
 \item 項目1
 \item 項目2
 \item 項目3
\end{enumerate}
と書くと snap-latex_05 のように表示。

<箇条書きの方法3:description環境>
\begin{description}
 \item[Step1. ] 項目1
 \item[Step2. ] 項目2
 \item[Step3. ] 項目3
\end{description}
と書くと snap-latex_06 のように、\item[]内に書いた文字列が項目の先頭に表示される。


図の挿入 \includegraphics[スケール]{epsファイル名}

TeXでは、epsという形式の画像ファイルを 用いることができる。epsファイルはMATLABやTgifなどで作成可能。
例えば・・・
snap-latex_03.png
このファイル(block.eps)を貼り付けたいときは、

\includegraphics[スケール]{epsファイル名}を使って、

\begin{figure}[htbp]
 \includegraphics[width=0.50\textwidth,height=0.20\textheight]
 {./block.eps}
 \caption{ブロック線図} \label{block}
\end{figure} 
のようにfigure環境内に書く。

1行目の [htbp] とは、図を貼り付ける位置を 指定するもので、h (here)は その場所に貼り付け、t (top)はページの上に 貼りつけ、b (bottom)はページの下に 貼りつけ、p (pageかな?)は次のページに貼りつける。 特に指定しない場合は htbp と書いておけばOK。

2行目の\includegraphicsの[]内では、図の幅と高さを指定 する。例えば 0.50\textwidth と書けば文書の幅の半分 の長さが指定できる。
上のように width と height を指定する方法以外にも、 [scale=0.8] のように縦横比を固定したまま拡大・縮小できる貼り方もある。

3行目の{}内では、貼りつけるファイル名を指定する。拡張子は省略可能。 ファイル名は相対パスで正しく書かないとコンパイルでエラーになる。 ここでのエラーは結構ありがち。

4行目の \caption{} では、{}内のテキストが 図の表題になる。表題を付けなくてもエラーにはならないが 付けた方がいい。

また、\captionを使うと図の番号が割り振られるので、\label{block} で block という名前のラベルを付けている。付けなくてもかまわないが、文書中で 図\ref{block} と書くことで図の番号を参照できるので便利。


YaTeXとは

YaTeXとは、Emacs上で動作するLaTeXの 入力支援環境のこと。"やてふ" や "野鳥" と書かれることもある。
 YaTeXとは簡単に言えばLaTeXのソースファイルを楽に書くための 便利な機能がたくさん詰まっている環境のこと。 例えば、今まで C-c t j でコンパイル、C-c t p でプレビューしていた のも実はYaTeXの機能であり、他にもコマンドの補完などができる。
 YaTeXの機能を使いこなせればLaTeXの文書を書くのは格段に 楽になるので少しずつ覚えていこう。

Emacsで .texファイルを読み込んだとき、モードラインに "やてふ" などと 表示されていれば yatex-mode に なっており、自動的にYaTeXが利用できる状態になる。手動で yatex-mode に切り替える には M-x yatex-mode と入力する。

YaTeXを使ったテクニック

まずは簡単なものから。

補完いろいろ

さらにYaTeXの強力な機能として補完機能がある。

begin型補完 (\begin{}〜\end{})

まずはどこでもいいので C-c b i と 入力してみよう。するとそれだけで
\begin{itemize}
 \item 
\end{itemize}
と一気に書かれる。このように C-c b と入力した後にある文字を 入力することで、対応するbegin型の環境を補完できる。
YaTeXには標準で以下の環境が定義されている。
C-c b ccenter
C-c b ddocument
C-c b Ddescription
C-c b eenumerate
C-c b Eequation
C-c b iitemize
C-c b lflushleft
C-c b mminipage
C-c b ttabbing
C-c b Ttabular
C-c b C-ttable
C-c b ppicture
C-c b qquote
C-c b Qquotation
C-c b rflushright
C-c b vverbatim
C-c b Vverse
しかし、これら以外の環境を入力したい場合もある。というかその場合の方が多いはず。 そのときは、 C-c b SPC と入力するとミニバッファに Begin environment(default document): と出るので、任意のbegin型環境を入力してEnterを押せばOK。 もし何も書かずにEnterを押せば、直前に使用した環境が挿入される。

また、補完候補にない環境を入力すると、ミニバッファに
`eqnarray*' is not in table. Register into: U)ユーザ辞書 L)ローカル辞書 N)one D)iscard
と表示されるので、uを入力するとユーザ辞書に登録され、 補完候補に追加される。

標準で定義されているもの以外でよく使いそうな環境は、 など。

section型補完 (\section{} や \vspace{} の形):C-c s

こちらはsectionなどの形式が補完できる。例えば C-c s section と入力し
Argument 1 of section:
と表示されるので、そこへ入力した言葉がそのままsection名になるように補完される。

section型補完で代表的なものは、 など。

large型補完 ({\large } や {\bf } の形):C-c l

{\bf }などの補完。もはや説明するまでもないはず。主にフォントの種類や大きさをいじるコマンドが多い。これくらいなら補完を使わなくても手間がかからないためあまり使うことはないかも。

ちなみに、すでに書いたテキストを後からbegin型やsection型、large型のコマンドで 囲みたいときは、囲みたいテキストをリージョンに選択した後に、begin型なら C-c B 、section型 なら C-c S 、 large型なら C-c L のように大文字にする。

maketitle型補完 (\maketitle や\item の形):C-c m

代表的なものとしては などがあるが、おそらく直接打ってしまう方が多いはず。

数式記号イメージ補完 (\cdot や \frac など)

数式環境内で用いる様々な記号を簡単な操作で補完できる優れもの。 これをいかに使いこなすかでLaTeXの文書を作る速さはかなり変わってくる。

やり方は単純。まず数式環境内でセミコロン(;)を押すとミニバッファに math sequence(TAB for menu): と表示されるので、続けて何かキーを押していくだけ。
 いくつか例を示す。
キー入力補完されるコマンド出力
;.\cdot
;. .\cdots・・・
;>\geq
;<\leq
;x\times×
;f RET 分子 RET 分母\frac{分子}{分母} 分数
;s 下部 上部\sum_{下部}^{上部}Σ(和の記号)
;i 区間1 区間2\int_{区間1}^{区間2}∫(積分記号)
;o o\infty∞(無限大)
;= /\neq
;(\subset
;6\partial∂(偏微分の記号)
;-> RET\rightarrow
;=> RET\Rightarrow
;==> RET\Longrightarrow
このように、見た目のイメージやコマンドの頭文字で補完してくれる。 適当に打ってみても結構当たるのでいろいろ試してみるとおもしろい。
この機能のうれしい点は、キータイプの手間を省けるだけでなく、もしコマンドを忘れても補完を使って入力できたりすることにある。\geq と \leq の区別も補完を使えば間違えない。
 また、セミコロン を押した後にTabを押すと候補リストを表示するので、そこから探すこともできる。

ちなみに、補完ではなく普通にセミコロンを入力したいときは ; を2回押せばよい。また、Emacsの設定によっては数式環境内でセミコロンを押しても補完ができない場合があるかもしれない。

ギリシャ文字補完 (\alpha や \beta など)

上の数式記号イメージ補完と似たような機能で、こちらはギリシャ文字を補完する。ギリシャ文字は基本的にコマンドで入力する分手間がかかるため意外と便利。数式環境内で コロン(:) を押し、続けてアルファベットを入力すれば補完できる。
キー入力補完されるコマンド出力
:a\alphaα
:b\betaβ
:o\omegaω
:O\OmegaΩ
:l\lambdaλ
:p\piπ
:ph\phiφ
:ps\psiψ
など。また、コロンの後に Tab で候補リストを表示する。普通にコロンを入力したいときは : を2回押せばよい。

end補完 (\end{}を挿入):C-c e

\begin{○○}の中身を書いているときに、 C-c e を押すと対応する\end{○○}が挿入できる。わざわざ自分で\end{○○}と書かなくても済むためちょっとだけ楽になる。このとき、もしカーソルより後ろに同じ\end{○○}が既に書かれているときは
 Environment '○○' may be already closed. Force close?(y or n)
という警告が出るが、あまり気にせず y で補完して大丈夫な場合が多い。

ただ、上で述べたbegin型補完を常に使っている場合はこのend補完にお世話になることはほぼない。


スライドの作り方

ここではLaTeXでスライドを作る方法を説明する。基本的な流れはレジュメと同じなので書き始めは特に難しくない。

スライドでは1ページごとに \begin{slide}〜\end{slide} の中に書いていく。つまり、例えば \begin{slide}〜\end{slide} を10個書けばスライドが10ページ分できるというわけである。なので、まずはレジュメのソースを適当に区切りながらslide環境に流し込み、その後レイアウトを考えていけばよい。

スライドを作るときは、聞き手にとって見やすく、また自分も発表しやすいように工夫しなければいけない。慣れるまでに時間がかかるが少しずつコツを掴んでいこう。

スライドのサンプルファイル(Linux版:slide.tex、Windows版:slide_sjis-dos.tex)を置いておく。エディタに直接貼り付けるか、右クリックでダウンロードすれば利用できる。

上のサンプルファイルをコンパイルすると、スライド1枚目のプレビューは下のようになる。(テキストは少し変えてるかも)
これはあくまで一例なので、いろいろと工夫して綺麗で見やすいオリジナルのスライドを作ってみてほしい。 snap-slide_01.png

ちなみに、サンプルファイルの1行目を見ると、

\documentclass[a5paper,landscape]{slides}
となっており、ここの書式がレジュメと違うことも一応知っておくといい。


色をつける

色をつけるには、 \textcolor{色名}{テキスト} というコマンドを用いる。ここで指定できる色名はデフォルトだと

 blackwhiteredgreenbluecyanmagentayellow

の8色のみ。例えばマゼンタを使いたいときは

\textcolor{magenta}{色を変えたいテキスト}
のように書く。

もしこれ以外の色を使いたい場合は、\textcolor[named]{色名}{テキスト} のように [named] を書き加えることで、全部で68色が使えるようになる。
 [named] で指定できる色の一覧をここにまとめておく。なお、色名はこの表記そのままに打たなければならない。大文字のところを小文字で打つとエラーになるので注意。
(一覧を色付き表示にしたHTMLファイル版をとりあえず作ってみた。でもまだほとんど役に立たないはず。)

もう一つ注意点として、例えば赤色を使うときに、[named] を使わない場合は red と書き、[named] を使う場合は Red と書かないとエラーになる。とにかく、[named] を使う場合だけ必ず大文字で始める と覚えておけばいいだろう。

ちなみに、色を使うにはcolorパッケージが必要なので、プリアンブルに \usepackage{color} と書いておかなければならない。


\begin{minipage}でレイアウト

minipage環境は、その環境内に書いた内容が1つの箱のようにみなされる

\begin{minipage}[位置]{サイズ} という書式で、
[位置] は cbt のいずれかを指定する。たぶん center と bottom と top のこと。省略してもよく、その場合は center になる。
{サイズ} では横の長さを設定する
例えば図を横に2つ並べて貼り付けたいときは次のように書く。

\begin{minipage}[c]{0.4\textwidth}
 \begin{center}
  \includegraphics[scale=1.0]
  {1つ目の図のファイル.eps}
 \end{center}
\end{minipage}
\hspace*{1em}
\begin{minipage}[c]{0.4\textwidth}
 \begin{center}
  \includegraphics[scale=1.0]
  {2つ目の図のファイル.eps}
 \end{center}
\end{minipage}

これのプレビューは下のようになる。
snap-slide_03.png


boxで装飾

boxを用いることで、テキストを枠で囲んだ装飾ができる。
利用できるboxの種類には、\fbox{} \doublebox{} \shadowbox{} \ovalbox{} 等があり、定理などの見出しに使用するとスッキリする。\begin{itemize}などとも相性が良い。
 実際にさまざまなboxを使ってみた。
snap-slide_02.png


スライド作成のコツ

ありがちなエラー

レジュメの項目で書いたことに加えて、スライドでは次のようなミスもありがち。

とりあえず、レジュメで使えたコマンドがスライドでも使えるとは限らない(逆も然り)ということは知っておこう。


小技集