LaTeX/LaTeXによる文書整形の応用/数式を記述する
LaTeXはもともと数学系の論文作成を目的として作られたため,数式を整形して出力することには群を抜いて優れています.数式にはさまざまな記号が用いられ,その大きさも大小さまざまですが,LaTeXは数字や記号の大きさを制御しながら美しく数式を出力できます.これらは数式モードと呼ばれるモードで処理され,整形されます.ここではその数式の記述方法を説明します.
数式を記述するには数式モードを利用します.これは数式を記述するための環境と考えることができます.一方,文書を記述するモードをパラグラフモードと呼びます.数式モードではパラグラフモードとは異なった出力制御が行われます.次にその特徴を示します.また数式の出力例を図に示します.
- 改行を行わない
- 印刷の習慣にしたがって,半角英数字が
体になる
- ``+''や``-'',``<''や``>'',``|''といった記号が出力できる
- 明示的に指定しない限り,デリミタ(1.5.2)以外の空白が無視される
- 数式モードでしか使えないコマンドを処理する
図:数式の出力例
|
数式モードでは半角英数字が
体で表示されます.特に数式モード中で英単語などを
記述する場合は \mbox コマンドを用いる必要があります.
さらに数式モードには大きく分けて3つのモードが存在します.
- インライン数式モード
- ディスプレイ数式モード
- 番号つきディスプレイ数式モード
インライン数式モードとディスプレイ数式モード,番号つきディスプレイ数式モードとでは一部の数学記号の出力形式が異なります.次にそれぞれのモードについて説明します.
インライン数式モードは文章中に数式を埋め込む際に用いるモードです.インライン数式モードを用いるには,インライン数式モードで整形したい範囲を次のいずれかの記号あるいはコマンドのペアで囲みます.
$ |
|
と | |
$ |
\( |
|
と | |
\) |
\begin{math} |
|
と | |
\end{math} |
次にインライン数式モードの記述例と表示例を示します.
$ x = a $ から \( x = b \) までの関数 $f(x)$ の積分は
\begin{math}
\int^{b}_{a} f(x) dx = \lim_{n \to \infty} \sum^{n-1}_{i=0} f(x_{i}) \Delta x
\end{math}
と置き換えて考えることができる.
x = a から x = b までの関数 f(x) の積分は
と置き換えて考えることができる.
``$ ''で開いたインライン数式モードを``\) ''や\end{math} などの他のコマンドで閉じることはできない. これらは必ずペアで用いること.
ディスプレイ数式モードは,数式をセンタリングして出力する際に用いるモードです.ディスプレイ数式モードを使うには,数式の部分を次のいずれかの記号あるいはコマンドのペアで囲みます.
$$ |
|
と | |
$$ |
\[ |
|
と | |
\] |
\begin{displaymath} |
|
と | |
\end{displaymath} |
インライン数式モードと同様に,これらのコマンドは必ずペアで用います.次にディスプレイ数式モードの記述例と表示例を示します.
$$ x = a $$ から \[ x = b \] までの関数 $$f(x)$$ の積分は
\begin{displaymath}
\int^{b}_{a} f(x) dx = \lim_{n \to \infty} \sum^{n-1}_{i=0} f(x_{i}) \Delta x
\end{displaymath}
と置き換えて考えることができる.
↓
x = a
から
x = b
までの関数
f(x)
の積分は
と置き換えて考えることができる.
``$ ''や``$$ ''を用いる場合,どの
``$ ''や``$$ ''が数式モードの開始あるいは終了
を表しているかがわかりにくい. 間違いを防ぐためにもmath環境や
displaymath環境を用いたほうがよい.
番号つきディスプレイ数式モードは,数式をセンタリングし,かつ右端に通し番号を振って出力するモードです.番号つきディスプレイ数式モードで出力するにはequation環境を用います.またeqnarray環境を用いると数式を並べて記述できます.番号つきディスプレイ数式モードの例を次に示します.
$ x = a $ から \( x = b \) までの関数 $f(x)$ の積分は
\begin{equation}
\int^{b}_{a} f(x) dx = \lim_{n \to \infty} \sum^{n-1}_{i=1} f(x_{i}) \Delta x
\end{equation}
と置き換えて考えることができる.
↓
x = a から x = b までの関数 f(x) の積分は
(1) と置き換えて考えることができる.
eqnarray環境については記述方法が異なるなります.
ここでは基本的な数式モード用コマンドを説明します.
数式にはx2やxiのように添字をつけることがあります.これらはそれぞれ``^ ''と``_ ''を用いて出力します.添字の出力方法と出力例を表に示します.
表:
添字の出力例
記述例 |
|
記述例 |
|
記述例 |
|
記述例 |
|
x^{2} |
x2 |
x^{2}_{i} |
x2i |
x^{y^{2}} |
xy2 |
x^{\prime} |
|
x^{2+i} |
x2+i |
x_{i}^{2} |
xi2 |
x^{y_{2}} |
xy2 |
{}^{\forall}x |
|
x_{i} |
xi |
{x_{i}}^{2} |
xi2 |
x_{y_{i}} |
xyi |
{}^{\exists}x |
|
x_{i-1} |
xi-1 |
{x^{2}}_{i} |
x2i |
x_{y^{2}} |
xy2 |
{}_{n}C_{r} |
nCr |
|
グルーピングの仕方によって出力が異なるので注意すること.
またx_{a}_{1} やn^{x}^{2} などのように添字を二重にするとエラーとなる.
LaTeXでは分数の記述も簡単にできます.分数を記述するには\frac コマンドを用います.
次に\frac コマンドの出力例を示します.モードによって出力が微妙に異なるので注意してください.
分数の出力には\verb+\frac+コマンドを用います.インライン数式モードでは
$ y = \frac{1}{x+1} $のように出力されます.
一方ディスプレイ数式モードでは
\begin{displaymath}
y = \frac{1}{x+1}
\end{displaymath}
のように出力されます.
↓
分数の出力には \frac コマンドを用います.インライン数式モードでは
のように出力されます. 一方ディスプレイ数式モードでは
のように出力されます.
同じく数式中でよく使われるものに根号記号があります.根号は次のように記述します.単純に2乗根を記述したい場合はオプション引数を省略します.
次に出力例を示します.
根号の出力には\verb+\sqrt+コマンドを用います.
インライン数式モードでは
$ L = \int_{b}^{a} \sqrt{ \left( \frac{dx}{dt} \right)^{2}
+ \left( \frac{dy}{dt} \right)^{2} } dt $ のように出力されます.
一方ディスプレイ数式モードでは
\begin{displaymath}
L = \int_{b}^{a} \sqrt{ \left( \frac{dx}{dt} \right)^{2}
+ \left( \frac{dy}{dt} \right)^{2} } dt
\end{displaymath}
のように出力されます.
オプション引数をとると $ \sqrt[3]{27} = 3 $ のようになります.
↓
根号の出力には \sqrt コマンドを用います.
インライン数式モードでは
のように出力されます.一方ディスプレイ数式モードでは
のように出力されます.オプション引数をとると
のようになります.
根号記号は中の数式によってその大きさが自動的に変化します.
シグマ記号を出力するには次のように記述します.
シグマの範囲を指定するには添字を用います.次に出力例を示します.
シグマ記号の出力には\verb+\sum+コマンドを用います.
インライン数式モードでは
$ \sum^{n}_{k=1}(a_{k}+b_{k}) = \sum^{n}_{k=1}a_{k} + \sum^{n}_{k=1}b_{k} $
のように出力されます
一方ディスプレイ数式モードでは
\begin{displaymath}
\sum^{n}_{k=1}(a_{k}+b_{k}) = \sum^{n}_{k=1}a_{k} + \sum^{n}_{k=1}b_{k}
\end{displaymath}
のように出力されます.
↓
シグマ記号の出力には \sum コマンドを用います.
インライン数式モードでは
のように出力されます.一方ディスプレイ数式モードでは
のように出力されます.
積分記号を出力するには次のように記述します.
シグマと同様に積分の範囲を指定するには添字を用います.次に出力例を示します.
積分記号の出力には\verb+\int+コマンドを用います.
インライン数式モードでは
$ \int^{b}_{a}f(x)dx = \int^{c}_{a}f(x)dx + \int^{b}_{c}f(x)dx $
のように出力されます
一方ディスプレイ数式モードでは
\begin{displaymath}
\int^{b}_{a}f(x)dx = \int^{c}_{a}f(x)dx + \int^{b}_{c}f(x)dx
\end{displaymath}
のように出力されます.
↓
積分記号の出力には \int コマンドを用います.
インライン数式モードでは
のように出力されます.一方ディスプレイ数式モードでは
のように出力されます.
数学では同じものが続く場合に点を用いて省略していることを表すことがあります.このような場合に用いることのできる省略記号を表に示します.
表:
省略記号一覧
コマンド |
出力 |
コマンド |
出力 |
\ldots |
|
\cdots |
|
\vdots |
|
\ddots |
|
|
またそれぞれのコマンドの出力例を次に示します.
\begin{displaymath}
\left( \begin{array}{rrcr}
1 & 2 & \cdots & n \\
2 & 4 & \cdots & 2n \\
\vdots & \vdots & \ddots & \vdots \\
m & m\cdot 2 & \cdots & m\cdot n
\end{array} \right) \;\;\; (n , m = 0, 1, 2, \ldots)
\end{displaymath}
↓
\ldots コマンドはパラグラフモード(1.5.4)でもそのまま用いることができます.また行列の記述方法についてはを参照してください.
数式を記述する場合,ベクトル記号など,変数を表す文字に修飾記号をつけることがあります.このような文字修飾記号一覧を表に示します.
表:
文字修飾記号一覧
記述例 |
出力例 |
記述例 |
出力例 |
\vec{x} |
|
\bar{x} |
|
\hat{x} |
|
\tilde{x} |
|
\dot{x} |
|
\ddot{x} |
|
\acute{x} |
|
\grave{x} |
|
\check{x} |
|
\breve{x} |
|
|
これらの文字修飾コマンドによる出力はそれぞれの文字の高さにあわせられます.そのため,文字の高さが異なる場合は記号が上下してしまいます.これを等しい高さにあわせるためには\mathstrut コマンドを用います.出力例を次に示します.
左側が通常の例,右側が\verb+\mathstrut+を用いた例です.
\begin{displaymath}
\vec{a} + \vec{b} + \vec{c} + \vec{d} + \vec{e} + \vec{f} \;\;\;\;\;\;\;
\vec{\mathstrut a} + \vec{\mathstrut b} + \vec{\mathstrut c} +
\vec{\mathstrut d} + \vec{\mathstrut e} + \vec{\mathstrut f}
\end{displaymath}
↓
左側が通常の例,右側が \mathstrut を用いた例です.
数式の上下に線を引くコマンド\overline , \underline ,および上下に括弧をつけるコマンド\overbrace , \underbrace の出力例を次に示します.どのコマンドも引数として数式をとります.また上括弧,下括弧にはそれぞれ添字をつけることができます.
\begin{displaymath}
\overline{A} \cup \overline{B} = \overline{A \cap B}
\end{displaymath}
\begin{displaymath}
\overbrace{1 + 3 + \cdots + 2n-1}^{n個}
\end{displaymath}
\begin{displaymath}
\underbrace{\mbox{インライン数式モード \hspace{3em} ディスプレイ数式モード
\hspace{3em} 番号つきディスプレイ数式モード}}_{\mbox{3種類の数式モード}}
\end{displaymath}
↓
\underline コマンドはパラグラフモードのものと同じものです.(2.1.3).
数式では式の左辺と右辺の関係を否定するために``/''を用いることがあります.これには\not コマンドを否定したい記号の直前に記述します.出力例を次に示します.
$\triangle A\not\equiv\triangle B$
``''には\neq コマンドを用います.
表:
その他の数学記号
コマンド | 出力 |
コマンド | 出力 |
コマンド | 出力 |
コマンド | 出力 |
\log
| |
\sin
| |
\cos
| |
\tan
| |
\max
| |
\min
| |
\gcd
| |
\det
| |
\exp
| |
\ln
| |
\pm
| |
\mp
| |
\times
| × |
\div
| |
\ast
| * |
\star
| |
\circ
| |
\bullet
|
|
\cdot
| ・ |
\bigcirc
| |
\setminus
| |
\wr
| |
\in
| |
\ni
| |
\cap
| |
\cup
| |
\vee
| |
\wedge
| |
\subset
| |
\subseteq
| |
\supset
| |
\supseteq
| |
\oplus
| |
\ominus
| |
\otimes
| |
\oslash
| |
\leq
| |
\geq
| |
\ll
| |
\gg
| |
\neq
|
|
\equiv
| |
\sim
| 〜 |
\cong
| |
\propto
| |
\approx
| |
\parallel
| |
\perp
| |
\emptyset
| |
\angle
| |
\langle
| |
\rangle
| |
\lfloor
| |
\rfloor
| |
\lceil
| |
\rceil
| |
\infty
| |
\partial
| |
\prime
| |
\ell
| |
\imath
| |
\jmath
| |
\surd
| |
\nabla
| |
\forall
| |
\exists
| |
\neg
| |
\backslash
| \ |
\prod
| |
\coprod
| |
\dagger
| |
\ddagger
| |
\aleph
| |
\sharp
| |
\flat
| |
\natural
| |
\triangleleft
|
|
\triangleright
|
|
\bigtriangleup
|
|
\bigtriangledown
|
|
\triangle
| |
\Box
| □ |
\Diamond
| |
\diamond
| |
\clubsuit
| |
\diamondsuit
|
|
\heartsuit
|
|
\spadesuit
|
|
|
数学では一部の文字列を特殊記号として用いたり,特別な記号を用いたりします.
や
などがこれにあたります.表にはこれら数学記号のいくつかをモード別に示します.またその他の数学記号については表に,矢印記号については表にそれぞれ示す.
表:
いくつかの数学記号
コマンド |
インライン数式モード |
ディスプレイ数式モード |
\int |
|
|
\int_{0}^{\infty} |
|
|
\sum |
|
|
\sum_{n = 1}^{\infty} |
|
|
\lim |
|
|
\lim_{n \to -\infty} |
|
|
|
数式モードでは明示的に空白コマンドを記述しないと文書イメージ上に空白が挿入されません.数式モードでは表に示すコマンドを用いて空白を制御します.特に``\! ''は記号間などを詰めるのに用いることができます.
表:
数式モードの空白制御
コマンド |
機能 |
\; |
大きめの空白 |
\: |
中くらいの空白 |
\, |
小さめの空白 |
\! |
負の空白 |
|
これらの空白制御コマンドの出力例を次に示します.
\begin{displaymath}
\int\int_{G}f(x,y)dxdy
\end{displaymath}
\begin{displaymath}
\int\!\!\!\int_{G}
f(\,x,\,y\,)\;\,dx\:dy
\end{displaymath}
↓
数式モード内の3つのモードでは,それぞれ出力される数学記号の大きさや形式は異なっています.これはそれぞれのモードで使用される文字スタイルが異なるためです.数式モードで利用できる文字スタイルを表に示します.インライン数式モードでは\textstyle が,ディスプレイ数式モード,番号つきディスプレイ数式モードでは\displaystyle が標準となっています.
表:
数式モードの文字スタイル
スタイル |
出力例 |
\displaystyle |
|
\textstyle |
|
\scriptstyle |
|
\scriptscriptstyle |
|
|
数式モード内ではこれらのコマンドによって意図的に文字スタイルを変化させることができます.
インライン数式モードでの出力をディスプレイ数式モードのようにする場合は
インライン数式モード開始直後に \displaystyle を記述します.
数式モードでの文字スタイル変更コマンドは,グルーピング
( 1.5.3)が終了す
るか,その数式モードを抜けるまで有効です.
数式モード内においても文字スタイルの変更( 2.1.1)は可能であるが,文字サイズの変更( 2.1.2)はできない.文字サイズを変更したい場合は数式モードの外で文字サイズを変更しなければならない.
数式モードでは一般の英数字用フォント以外に特殊な文字スタイルであるカリグラフ文字を利用できます.カリグラフ文字を用いるには\cal コマンドを用います.\cal コマンドは文字スタイル変更コマンドなのでグルーピング(1.5.3)を用います.カリグラフ文字の出力例を次に示します.
\begin{displaymath}
\cal ABCDEFGHIJKLMNOPQRSTUVWXYZ
\end{displaymath}
↓
カリグラフ文字はアルファベットの大文字にのみ有効です.
数式モードではSFCの建物の名称にも用いられているギリシャ文字を出力できます.文章中に出力したい場合はインライン数式モード()を用います.ギリシャ文字一覧を表に示します.
表:
ギリシャ文字一覧
読み |
大文字 |
小文字 |
  |
コマンド |
出力 |
コマンド |
出力 |
アルファ |
A |
A |
\alpha |
|
ベータ |
B |
B |
\beta |
|
ガンマ |
\Gamma |
|
\gamma |
|
デルタ |
\Delta |
|
\delta |
|
イプシロン |
E |
E |
\epsilon, \varepsilon |
|
ゼータ |
Z |
Z |
\zeta |
|
イータ |
H |
H |
\eta |
|
シータ |
\Theta |
|
\theta, \vartheta |
, |
イオタ |
I |
I |
\iota |
|
カッパ |
K |
K |
\kappa |
|
ラムダ |
\Lambda |
|
\lambda |
|
ミュー |
M |
M |
\mu |
|
ニュー |
N |
N |
\nu |
|
サイ |
\Xi |
|
\xi |
|
オミクロン |
O |
O |
o |
o |
パイ |
\Pi |
|
\pi, \varpi |
, |
ロー |
P |
P |
\rho, \varrho |
, |
シグマ |
\Sigma |
|
\sigma, \varsigma |
, |
タウ |
T |
T |
\tau |
|
ウプシロン |
\Upsilon |
|
\upsilon |
|
ファイ |
\Phi |
|
\phi, \varphi |
, |
カイ |
X |
X |
\chi |
|
プサイ |
\Psi |
|
\psi |
|
オメガ |
\Omega |
|
\omega |
|
|
表:
大きさを変化させることができる括弧,矢印記号一覧
コマンド |
出力 |
コマンド |
出力 |
コマンド |
出力 |
コマンド |
出力 |
(
|
( |
)
|
) |
[
|
[ |
]
|
] |
\{
|
|
\}
|
|
\langle
|
|
\rangle
|
|
\lfloor
|
|
\rfloor
|
|
\lceil
|
|
\rceil
|
|
/
|
/ |
\backslash
|
\ |
|
|
| |
\|
|
|
\uparrow
|
↑ |
\downarrow
|
↓ |
\updownarrow
|
|
|
\Uparrow
|
|
\Downarrow
|
|
\Updownarrow
|
|
|
|
数式モードでは同時に記述する数式の大きさにあわせて括弧や矢印記号の大きさを変化させることができます.これには大きさの基準となる数式を挟むように記述されている括弧や矢印記号の直前に,その数式の左側の括弧,矢印記号であれば\left コマンドを,逆に右側であれば\right コマンドを記述します.ただし\left コマンドと\right コマンドは必ず対応していなければならないので,括弧の一方だけ,あるいは1つの矢印記号だけの大きさを変化させたい場合は,対応する括弧,矢印記号が存在しない側の\left
あるいは\right コマンドの直後にピリオドを記述して,コマンドの対応をとる必要があります.\left ,\right コマンドで大きさを変化させることができる括弧,矢印記号の一覧を表に示します.
\left ,right コマンドの出力例を次に示します.
$$ ( \frac{x}{z} )^{2} + \left( \frac{y}{z} \right)^{2} = 1 $$
片側だけのときは不必要な括弧の代わりにピリオドをつけます.
\begin{displaymath}
f(x) = \left\{ \begin{array}{l}
\displaystyle \frac{( x + 1 )( x + 2 )}{x} \;\;\; ( x \neq 0 ) \\
0 ( x = 0 )
\end{array} \right.
\end{displaymath}
↓
片側だけの時は不必要な括弧の代わりにピリオドをつけます.
数式モードで行列を記述するにはarray環境を用います.これは数式モードで用いることのできる表記述環境で,基本的にはtabular環境(2.6)と同じです.行列前後の括弧には大きさの変化する括弧()を用います.行列の記述例を次に示します.
\begin{displaymath}
\left( \begin{array}{rr}
a & b \\ c & d
\end{array} \right) \left( \begin{array}{r}
x \\ y
\end{array} \right) = 0 \; \Longleftrightarrow \; \left\{
\begin{array}{rrrrr}
ax & + & by & = & 0 \\
cx & + & dy & = & 0
\end{array} \right.
\end{displaymath}
↓
数式を複数行にわたって記述する場合,一般にはeqnarray環境を利用しますが,array環境で列を1つにして数式を記述することでもできます.ただし数式番号を振ることはできないので,状況に応じて使い分けてください.
数式モードでは一般に数式は改行されないので,複数行に渡る数式を記述するにはeqnarray,eqnarray*環境を利用します.これはちょうど列が3のarray環境のような環境で,基本的な記述方法はarray環境に似ており,左右の列は\displaystyle ,中央の列は\textstyle の文字スタイル()で出力されます.またeqnarray環境はすべての行の数式に番号を振りますが,eqnarray* 環境はまったく番号は振りません.eqnarray環境の記述例を次に示します.
\begin{eqnarray}
\lefteqn{ \{ (x^{2} + 3x - 1)(7x + 6) \}^{\prime}} \\
& = & (x^{2}+3x-1)^{\prime} (7x+6)+(x^{2}+3x-1)(7x+6)^{\prime} \nonumber \\
& = & (2x + 3)(7x + 6) + 7(x^{2} + 3x - 1) \nonumber \\
& = & 14x^{2} + 12x + 21x + 18 + 7x^{2} + 21x - 7 \nonumber \\
& = & 21x^{2} + 54x + 11
\end{eqnarray}
↓
eqnarray環境で番号が必要ない場合は行の区切り``\\ ''の直前に
\nonumber コマンドを記述します.また\lefteqn コマンドはtabular環境での\multicolumn{3}{l}{数式}
()とほぼ同等の機能を提供し,引数の数式を左寄せします.行の区切り``\\ ''の直後に\label コマンド()を記述すれば数式番号の相互参照()ができます.
eqnarray,eqnarray*環境はそれぞれ番号つきディスプレイ数式モード,ディスプレイ数式モードに変更するための環境なので,他の数式モード内では使用できない.
通常,ディスプレイ数式モード(),および番号つきディスプレイ数式モード()では,数式はすべて中央寄せされますが,fleqnスタイルオプションを指定することで数式を左寄せできます.さらに行の左端から数式の先頭までの長さを\mathindent パラメータで設定できます.パラメータの設定方法に関してはを参照してください.
通常,equation環境()やeqnarray環境()で出力される数式番号は右端に出力されます.これを左端に出力されるようにするのがleqnoスタイルオプションです.
|