第 11 回(2005.07.04) -- 文書作成(LaTeX 入門 2)

今回は前回に引き続き,TeX について学ぶ. TeX の基本的な使い方については前回で把握できているはずのため,今回と次回は TeX の文法について学ぶものとする.
時間的制約が強すぎるため,LaTeX の細かい文法については省略せざるを得ないが, この授業で LaTeX の基礎については十分に学習できるはずである. また,TeX を使っていて不満に思う点があれば,教科書および参考文献をあたるのがよい. そうすればたいていのことは解決できるであろう.

LaTeX のコマンドの基本

さて,LaTeX の文法については今回から学習が始まると言って良い. そこで,LaTeX の文法の基本について述べておこう.
LaTeX はソースファイル中に文章とLaTeXコマンドを混在させて記入する形をとることは前回の授業で解説した.
よって,LaTeX の文法について学ぶということは, LaTeX コマンドについて学ぶということとほぼ同義であるので, LaTeXコマンドについて学習しよう.
さて,LaTeX コマンドは,一般に \ で始まる文字列で表される. ただし,LaTeX コマンドはあまりにも多く,全部を一度に解説しても混乱するだろうから, その働きと文法によって何種類かに分け,その分類について解説しておく.

注意 ここのコマンドの分類は,諸君のための独自かつ便宜的な分類である. 世の中で通用する分類でも何でもないので,注意すること(^-^).

■ LaTeX コマンドの種類 ■
種類 説明
別名コマンド 何か別の表示やに化ける,もしくは ごく簡単な機能を果たす「だけ」のコマンド.

\文字列 という形をしていることが多い.
単なる置換を行って表示を行うと考えれば良い. 非常にわかりやすいコマンド.
\LaTeX, \today, \ldots, \copyright, \\ など.
関数コマンド 引数をとって何か簡単な表示を行うコマンド.

\文字列[hoge]{are} という形をしていることが多い.
注意 [hoge] 部分はオプションなので無くても良いが, {are} 部分は引数 are を入力するために必須である.

# 陰で表示以外の機能を果たしていることも多いが.
\emph{hogehoge}, \footnote{hoga} など.
モードコマンド TeX のモード(状態)を変化させるためのコマンド.

\文字列 という形をしていることが多い.
このコマンドがあるところより後ろが,指定したモードになる.

他のモードで打ち消すか有効範囲を決めておくかしないと, 文章の最後までそのモードになってしまうこともあるので使い方には注意が必要である.
実際には,モードの有効範囲を明示的に決めておくのがスマートである.

注意 TeX ではあらゆる有効範囲を { } (中カッコ)で囲むことで指定できるので,モードの有効範囲もこの方法を使えば良い.

例えば,ボールド(太字)フォントモードにしてしまうコマンド \bf を一時的に使うには, {\bf hugahuga} などとすれば,それ以外の部分がボールドにならずに済む.
\bf, \rm, \small, \large, \LARGE, \huge, %\centering, など.
複合コマンド 関数コマンドとモードコマンドの両方の機能を持つコマンド.

\文字列[hoge]{are} という形をしていることが多い.
引数に応じて何かの表示ないしは機能を行いつつ,モードを変更する.
章や節を宣言するコマンドなどが分かりやすい例だろう.

これらのコマンドはその性質上,有効範囲を { } で決めたりせずに,他の複合コマンドで打ち消すようにした方が良い.
\chapter, \section, \subsection, など.
環境コマンド いくつものモードを同時に変更したり,有効範囲中でのみ使える特殊なコマンドが存在したりする,特殊なモードコマンド.

\begin{文字列}[hoge]{are}
\end{文字列}
が対になって有効範囲を決めるという形式になっているものが多い.
# \begin… と \end… の間が有効範囲である.

TeX が良くわからない,というのはたいていこの種類のコマンドが良くわからないということになるので,そう意識して学べば習得が早いだろう.
\begin{center}, \end{center},
\begin{equation}, \end{equation},
\begin{itemize}, \end{itemize} など.
機能コマンド TeX の「コンピュータ言語」としての機能を果たすためのコマンド.

文法的にはあまり特定の形は無い.

表示に直接関わらないことが多いため,一見何をしているかわかりにくい.
初心者が触れる機会は少ないが,TeXの「相互参照機能」を使うためのコマンドはこれに属するので,触れないわけにはいかないだろう.

この種類のコマンドもわかりにくい,と評判である(^-^). ただし,それは TeX がわからないのではなくて, 本質的な意味でコンピュータが苦手だというだけのことが多い.
\newcommand, \label, \cite, \ref など.



LaTeX の文法 2

LaTeX の文法は,マークアップ言語であるという認識から見れば非常に単純そのものである. というより,単純すぎて扱いにくいぐらいである. ただし,ユーザに対して便宜性を重視したためか,原則からはずれ気味のコマンドも多く, かえって見通しが悪くなっているともいえ, 最終的には多くのコマンドを丸暗記する羽目になるともいえる.
そういう意味では,TeX を使いこなすというのは,どこまでを覚えどこから覚えるのをあきらめるか, という境界線を自分の体質に応じてうまく見極める能力にかかっているのかも知れない.
それにはある程度の分量を TeX で記述して慣れてみるしかない. 臆せずにガンガン使ってみるべきである.

[LaTeX文法] 文書クラス

TeX はその文書がどのような文書であるかによっておおまかにスタイルを使い分けるようになっており, この文書の違いを「文書クラス」という名前で分類している. 各々の文書クラスに応じて適したコマンドが用意されていたりするので, 適切に使い分けるのが良い,ということになっている.
そして,その文書がどの文書クラスに属するかは LaTeX 文書の最初の行の \documentclass{ } コマンドで指定される.
代表的な文書クラスには次のようなものがある.

■ 文書クラス ■
文書クラス名 説明
book 書籍などの大きめの文書
article 記事などの中程度の文書
report レポートなどの小さめの文書
slides スライド用の文書.
letter 手紙用の文書. 日本では(手紙のフォーマットが異なることから)あまり使われてない.

文書クラスは自分で作成することができるため,無数に存在する.
通常は article クラスか report クラスを用いていれば十分だろう.

[LaTeX文法] 文,段落

LaTeX では,文章や段落を表示するにはそのまま記述すれば良い. 特にコマンドは必要ない.
段落の区切りであるが, 空行があると「段落が変わった」とTeX に判断される.
# より正確には,「段落の終りは完全な空行である」というルールになっている.

実習 自分で作成した or サンプル のTeXソースファイルを編集 & コンパイル & 表示して, 段落が複数ある文書を作成し,「段落の区切り」についての上の文法を理解せよ.

[LaTeX文法] 細々としたコマンド

良く使うが,分類上,説明がなかなかされないコマンドというのがLaTeX にはある. 混乱を招かないよう,先にそれらを説明しておこう.

\\
改行.これを入力したところで改行するはずである…が, TeX は内部でいろいろ計算しているので,時々無視される(^-^).

%
コメントアウト. この文字からその行末までが完全に無視される. つまり,書いてないのと同じことになる. これを使えば,TeX の文中にいろいろ注釈を書いておくことができる.

\TeX, \LaTeX
TeX や LaTeX のロゴを表示するコマンド(^-^).

\today
その日の日付を出力するコマンド. TeX の種類によっては,(あるモードでは)元号で出力してくれる…が, 気をつけないと「昭和7x年6月26日」なんて出力になることもあるので, 印刷前にチェックは必要だ.

空白, 改行, タブ
これらの記号は全てまとめて「空白」とみなされる. しかも,これらの記号はいくつ連続していても一つと見なされるので, 空白記号を続けて書いてスペースを空けた表示を,という期待は裏切られるので注意すること.

\mbox{ }
\mbox{ } の中身は文字列として扱われる. どこに使うんだ? と思うだろうが,数式中に文字を書きたい時などには重宝する.

\footnote{ }
\footnote{ } の中身は脚注として出力される.

実習 上で説明されたコマンドを全て試してみよ.

[LaTeX文法] タイトル

文書自身のタイトル(表題)は,通常は次の 4つのコマンドを用いて出力する.

\title{ }
その文書のタイトル名を「設定」する.
プリアンブル中に記入する.

\author{ }
その文書の著者を「設定」する.
複数の著者がいる場合は, \author{ 田中 \and 鈴木 } などと \and で区切って書く.
プリアンブル中に記入する.

\date{ }
その文書の作成日を「設定」する.
\date{ } の中に具体的な日付を書くのも良いし, \today コマンドを用いて \date{\today} とするのも良い.
プリアンブル中に記入する.

\maketitle
上の 3つのコマンドで設定した内容をタイトルとして出力する.
タイトルが独立したページに出力されるか,ページの中に紛れ込んで出力されるかは 用いている文書クラスによって異なる.
本文領域中に記入する.

実習 タイトルを出力できるようにしてみよ.

[LaTeX文法] 文章の区分 … 章,節

TeX には,文書を章や節などの構造に分ける機能がある.
文書クラス によって,使えるコマンドは違うのだが, だいたい以下のような章分類のためのコマンドがある.

注意
TeX 文法としては,あるセクションはより大きなセクションに含まれていないといけない.
# ただし,\part は例外で省略してもよい.
# また,article 文書クラスには \chapter が含まれていない.

論理的かつ長い文章は,これらのコマンドだけを先に書いてから間を埋めるようにするとよいだろう.

\part{ }
非常に長い文章を分けるときに使われる単位. 本が二分冊になるときなどに使うのが良さそうだ.
省略可.

\chapter{ }
本ぐらい長い文章を分けるときに使われる.
article 文書クラスでは使えない.
# これは,article クラスとして書いた複数の文書を後で report クラスの文書としてまとめることなどを想定しているためである.

\section{ }
article 文書クラスで使える最大の単位.

\subsection{ }, \subsubsection{ }
\section の下,さらに下(^-^).

\paragraph{ }, \subparagraph{ }
\subsection の下,さらに下(^-^).

実習
自分で作成した or サンプル のTeXソースファイルに対し, 文書クラスを article として, 上の文章区分コマンドのうち,使えるものを全て試せ.
次に, 文書クラスを report に変更して, 同じことをせよ.

[LaTeX文法] 引用

\begin{quote}, \end{quote}
一段落に満たない程度の短い文章を引用するのに用いる.

\begin{quotation}, \end{quotation}
一段落以上の長めの文章を引用するのに用いる.

実習 上のコマンドを二つとも試してみよ.

[LaTeX文法] リスト

\begin{itemize}, \end{itemize}
ごく普通の箇条書きのためのコマンドである. 以下のように \item コマンドを用いることで項目わけを行って表示する.
TeX コマンド例 実際にはこう出力される
\begin{itemize}
   \item さとう
   \item しお
   \item す
   \item しょうゆ
   \item みそ
   \end{itemize}
  ・ さとう
  ・ しお
  ・ す
  ・ しょうゆ
  ・ みそ
            


\begin{enumerate}, \end{enumerate}
番号をつけた,ごく普通の箇条書きのためのコマンドである. \item コマンドの使い方は先と同じである.
TeX コマンド例 実際にはこう出力される
\begin{enumerate}
   \item さとう
   \item しお
   \item す
   \item しょうゆ
   \item みそ
   \end{enumerate}
  1. さとう
  2. しお
  3. す
  4. しょうゆ
  5. みそ
            


\begin{description}, \end{description}
・ や 番号 の代わりに,項目見出しを自分で指定する箇条書きである. 以下のように, \item[ ] コマンドを用いるのがちょっと違うところか.
TeX コマンド例 実際にはこう出力される
\begin{description}
   \item[さとう] 甘い
   \item[しお] しょっぱい
   \item[す] すっぱい
   \item[しょうゆ] しょっぱ〜い
   \item[みそ] そういえばなんていえばいいんだろう.
   \end{description}
  さとう   甘い
  しお     しょっぱい
         すっぱい
  しょうゆ しょっぱ〜い
  みそ     そういえばなんていえばいいんだろう.
            

実習 リストに関する上のコマンドを全て試してみよ.

[LaTeX文法] 数式

数式を扱うには,二段階の手順がいる. それは,

  1. 数式環境コマンドを書く.
  2. その環境の中に数式を表示するコマンドを書く.

という手順である.
そこでまず,数式環境コマンドについて示そう.

■ 数式環境コマンド ■
コマンド 説明
$ $ 文中で用いる数式を表すのに用いる. このコマンドで表した数式は「文字列」と同じ扱いをされる.
実はこのコマンドは \( \) の省略形である.
\[ \] 番号無し ディスプレイ数式.
数式のために特別に行を空けて表示するコマンドである.
\begin{equation}, \end{equation} 数式番号つき ディスプレイ数式.
数式のために特別に行を空けて表示するコマンドである. 数式番号がつくので,本格的だ(^-^).

実習 上でしめした 3種類の数式環境コマンドを全て試してみよ.
ただし,数式の内容は a+b などのような簡単なものでよい.




次に,数式を表すコマンドを示そう. ただし,これはあまりにも膨大なので,そのほんの一部だけであることをあらかじめ断っておく. これ以上は,参考文献を参照するのが良い.

■ 数式コマンド ■
コマンド 説明 コマンド例 表示例
^{ } _{ } 上つき添字, 下つき添字 x^{2y} - x_{3z} tex image example 0
\frac{ }{ } (きちんとした)分数 \frac{ x }{ y } tex image example 1
\sqrt{ } 平方根
オプションをつければ,べき乗根も書ける.
\sqrt{ x } + \sqrt[3]{ y } tex image example 2
\ldots \cdots \vdots \ddots 省略記号 a \ldots b \cdots c \vdots d \ddots e tex image example 3
\alpha \beta \gamma .... ギリシャ文字 \alpha + \Gamma tex image example 4
\mathcal{ } 筆記体文字 \mathcal{ A } tex image example 5
\pm \mp \times \div \ast \star \circ \bullet \cdot \cap \otimes .... 二項演算子. 非常に多いので,参考文献を探すこと. a \pm b \cap c tex image example 6
\leq \geq \neq \equiv \in ... 関係記号. これも非常に多いので,参考文献を探すこと. a \leq b \geq c \neq d \equiv e \in f tex image example 7
\leftarrow \Leftarrow \rightarrow \Rightarrow ... 矢印記号. これも非常に多いので,参考文献を探すこと. a \rightarrow b \Rightarrow c tex image example 8
\nabla \forall \exists \partial \infty ... その他の記号. これも非常に多いので,参考文献を探すこと. {}^{\exists}\nabla b = \partial u / \partial x \mbox{ s.t. } {}^{\forall}\epsilon < \infty tex image example 9
\sum \prod \int \oint ... 特殊記号(大きさがある程度自在に変化する). これも非常に多いので,参考文献を探すこと. \sum_{n=1}^N a_n \prod_{j=2}^J b_j = \int x dx \oint y dy tex image example 10
\sin \cos \exp \lim \log \max ... 関数. これも非常に多いので,参考文献を探すこと(^-^). \lim_{n=1}^N \log x_n tex image example 11
\left左カッコ \right右カッコ 中身の見た目の大きさに合わせて自動的に伸び縮みするカッコ. 左右のカッコは違うものでもよいが,\left には必ず対応する \right が必要である. カッコとして使えるコマンドは 「区切り記号」とよばれる.
区切り記号は ( ) [ ] \{ \} など多くがあり,やはり参考文献をあたるべし.
ちなみに,. (ピリオド)も区切り記号として使え,これを用いた場合, 「見えないカッコ」が作られる.
\left\{ \sum_{j=1}^{1000} \exp(j) \right] tex image example 12

実習
上で示した数式コマンドを全て試してみよ.
余裕がある者はさらに複雑な数式を表示すべく試みてみよ.




最終更新日 … $Date: 2005-05-04 05:59:05+09 $
Valid CSS! Valid XHTML 1.1!