今回は前回に引き続き,TeX について学ぶ.
TeX の基本的な使い方については前回で把握できているはずのため,今回と次回は
TeX の文法について学ぶものとする.
時間的制約が強すぎるため,LaTeX の細かい文法については省略せざるを得ないが,
この授業で LaTeX の基礎については十分に学習できるはずである.
また,TeX を使っていて不満に思う点があれば,教科書および参考文献をあたるのがよい.
そうすればたいていのことは解決できるであろう.
さて,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 の文法は,マークアップ言語であるという認識から見れば非常に単純そのものである.
というより,単純すぎて扱いにくいぐらいである.
ただし,ユーザに対して便宜性を重視したためか,原則からはずれ気味のコマンドも多く,
かえって見通しが悪くなっているともいえ,
最終的には多くのコマンドを丸暗記する羽目になるともいえる.
そういう意味では,TeX を使いこなすというのは,どこまでを覚えどこから覚えるのをあきらめるか,
という境界線を自分の体質に応じてうまく見極める能力にかかっているのかも知れない.
それにはある程度の分量を TeX で記述して慣れてみるしかない.
臆せずにガンガン使ってみるべきである.
TeX はその文書がどのような文書であるかによっておおまかにスタイルを使い分けるようになっており,
この文書の違いを「文書クラス」という名前で分類している.
各々の文書クラスに応じて適したコマンドが用意されていたりするので,
適切に使い分けるのが良い,ということになっている.
そして,その文書がどの文書クラスに属するかは LaTeX 文書の最初の行の
\documentclass{ }
コマンドで指定される.
代表的な文書クラスには次のようなものがある.
文書クラス名 | 説明 |
---|---|
book | 書籍などの大きめの文書 |
article | 記事などの中程度の文書 |
report | レポートなどの小さめの文書 |
slides | スライド用の文書. |
letter | 手紙用の文書. 日本では(手紙のフォーマットが異なることから)あまり使われてない. |
文書クラスは自分で作成することができるため,無数に存在する.
通常は article クラスか report クラスを用いていれば十分だろう.
LaTeX では,文章や段落を表示するにはそのまま記述すれば良い.
特にコマンドは必要ない.
段落の区切りであるが,
空行があると「段落が変わった」とTeX に判断される.
# より正確には,「段落の終りは完全な空行である」というルールになっている.
実習 自分で作成した or サンプル のTeXソースファイルを編集 & コンパイル & 表示して, 段落が複数ある文書を作成し,「段落の区切り」についての上の文法を理解せよ.
良く使うが,分類上,説明がなかなかされないコマンドというのがLaTeX にはある. 混乱を招かないよう,先にそれらを説明しておこう.
実習 上で説明されたコマンドを全て試してみよ.
文書自身のタイトル(表題)は,通常は次の 4つのコマンドを用いて出力する.
\author{ 田中 \and 鈴木 }
などと
\and
で区切って書く.
\date{ }
の中に具体的な日付を書くのも良いし,
\today
コマンドを用いて
\date{\today}
とするのも良い.
実習 タイトルを出力できるようにしてみよ.
TeX には,文書を章や節などの構造に分ける機能がある.
文書クラス
によって,使えるコマンドは違うのだが,
だいたい以下のような章分類のためのコマンドがある.
注意
TeX 文法としては,あるセクションはより大きなセクションに含まれていないといけない.
# ただし,\part
は例外で省略してもよい.
# また,article 文書クラスには \chapter
が含まれていない.
論理的かつ長い文章は,これらのコマンドだけを先に書いてから間を埋めるようにするとよいだろう.
実習
自分で作成した or サンプル のTeXソースファイルに対し,
文書クラスを article として,
上の文章区分コマンドのうち,使えるものを全て試せ.
次に,
文書クラスを report に変更して,
同じことをせよ.
実習 上のコマンドを二つとも試してみよ.
\item
コマンドを用いることで項目わけを行って表示する.
TeX コマンド例 | 実際にはこう出力される |
---|---|
\begin{itemize}
|
・ さとう ・ しお ・ す ・ しょうゆ ・ みそ |
\item
コマンドの使い方は先と同じである.
TeX コマンド例 | 実際にはこう出力される |
---|---|
\begin{enumerate}
|
1. さとう 2. しお 3. す 4. しょうゆ 5. みそ |
\item[ ]
コマンドを用いるのがちょっと違うところか.
TeX コマンド例 | 実際にはこう出力される |
---|---|
\begin{description}
|
さとう 甘い しお しょっぱい す すっぱい しょうゆ しょっぱ〜い みそ そういえばなんていえばいいんだろう. |
実習 リストに関する上のコマンドを全て試してみよ.
数式を扱うには,二段階の手順がいる. それは,
という手順である.
そこでまず,数式環境コマンドについて示そう.
コマンド | 説明 |
---|---|
$ $ |
文中で用いる数式を表すのに用いる.
このコマンドで表した数式は「文字列」と同じ扱いをされる.
実はこのコマンドは \( \)
の省略形である.
|
\[ \] |
番号無し ディスプレイ数式.
数式のために特別に行を空けて表示するコマンドである. |
\begin{equation}, \end{equation} |
数式番号つき ディスプレイ数式.
数式のために特別に行を空けて表示するコマンドである. 数式番号がつくので,本格的だ(^-^). |
実習
上でしめした 3種類の数式環境コマンドを全て試してみよ.
ただし,数式の内容は
a+b
などのような簡単なものでよい.
次に,数式を表すコマンドを示そう.
ただし,これはあまりにも膨大なので,そのほんの一部だけであることをあらかじめ断っておく.
これ以上は,参考文献を参照するのが良い.
コマンド | 説明 | コマンド例 | 表示例 |
---|---|---|---|
^{ } _{ } | 上つき添字, 下つき添字 | x^{2y} - x_{3z} |
![]() |
\frac{ }{ } | (きちんとした)分数 | \frac{ x }{ y } |
![]() |
\sqrt{ } |
平方根
オプションをつければ,べき乗根も書ける. |
\sqrt{ x } + \sqrt[3]{ y } |
![]() |
\ldots \cdots \vdots \ddots | 省略記号 | a \ldots b \cdots c \vdots d \ddots e |
![]() |
\alpha \beta \gamma .... | ギリシャ文字 | \alpha + \Gamma |
![]() |
\mathcal{ } | 筆記体文字 | \mathcal{ A } |
![]() |
\pm \mp \times \div \ast \star \circ \bullet \cdot \cap \otimes .... | 二項演算子. 非常に多いので,参考文献を探すこと. | a \pm b \cap c |
![]() |
\leq \geq \neq \equiv \in ... | 関係記号. これも非常に多いので,参考文献を探すこと. | a \leq b \geq c \neq d \equiv e \in f |
![]() |
\leftarrow \Leftarrow \rightarrow \Rightarrow ... | 矢印記号. これも非常に多いので,参考文献を探すこと. | a \rightarrow b \Rightarrow c |
![]() |
\nabla \forall \exists \partial \infty ... | その他の記号. これも非常に多いので,参考文献を探すこと. | {}^{\exists}\nabla b = \partial u / \partial x \mbox{ s.t. } {}^{\forall}\epsilon < \infty |
![]() |
\sum \prod \int \oint ... | 特殊記号(大きさがある程度自在に変化する). これも非常に多いので,参考文献を探すこと. | \sum_{n=1}^N a_n \prod_{j=2}^J b_j = \int x dx \oint y dy |
![]() |
\sin \cos \exp \lim \log \max ... | 関数. これも非常に多いので,参考文献を探すこと(^-^). | \lim_{n=1}^N \log x_n |
![]() |
\left左カッコ \right右カッコ |
中身の見た目の大きさに合わせて自動的に伸び縮みするカッコ.
左右のカッコは違うものでもよいが,\left には必ず対応する \right
が必要である.
カッコとして使えるコマンドは
「区切り記号」とよばれる.
区切り記号は ( ) [ ] \{ \} など多くがあり,やはり参考文献をあたるべし. ちなみに,. (ピリオド)も区切り記号として使え,これを用いた場合, 「見えないカッコ」が作られる. |
\left\{ \sum_{j=1}^{1000} \exp(j) \right] |
![]() |
実習
上で示した数式コマンドを全て試してみよ.
余裕がある者はさらに複雑な数式を表示すべく試みてみよ.