\LaTeX における,equation
環境や align
環境をはじめとする,さまざまな数式環境をまとめましょう。
本記事では,amsmath
パッケージを読み込んでいるものとします。
数式環境の簡易一覧表
まずは,数式環境の簡易的な一覧表を記載します。
環境 | 説明 |
---|---|
$ $ | インライン数式 |
\( \) | インライン数式,上に同じ |
\[ \] | 1行の別行立て数式(番号なし) |
equation | 1行の別行立て数式 |
align | 位置合わせ可能の別行立て数式 |
alignat | スペースの入らない位置合わせ可能の別行立て数式 |
flalign | 両端揃えによる位置合わせ可能の別行立て数式 |
gather | 中央揃え可能の別行立て数式 |
multline (綴りに注意) | 1つの数式を複数行に配置 |
~* (align*, alignat* ... ) | 上の数式で,番号の付かないもの,基本的に不要(解説参照) |
split | 数式環境の中で,1つの式を複数行に分ける |
aligned | align と同等のものを数式環境の中で使う |
alignedat | alignat と同等のものを数式環境の中で使う |
gathered | gather と同等のものを数式環境の中で使う |
lgathered , rgathered | gathered をそれぞれ左揃え・右揃えにしたもの,mathtools パッケージが必要 |
multlined | multline と同等のものを数式環境の中で使う,mathtools パッケージが必要 |
なおこれ以外に,eqnarray
環境がありますが,現在は非推奨とされています。
数式には,インライン数式と別行立て数式(ディスプレイスタイルの数式)があります。インライン数式とは文の途中に \lim_{n\to\infty} a_n のように記載されるもので,別行立て数式は改行して
\lim_{n\to\infty} a_n
のように書かれるものです。本記事では,別行立て数式のさまざまな環境について扱います。
上表における,equation
環境以降をまとめていきましょう。
主な数式環境まとめ
コードは見やすいように整形していますが,きれいに書かなくても出力は同じです。
なお,全ての数式環境において,空白の行があるとエラーを吐くので,空白の行を作ってはいけません。
equation環境
\begin{equation}
S=\sum_{n=1}^\infty a_n
\end{equation}
\begin{equation} S=\sum_{n=1}^\infty a_n \end{equation}
1行のみの別行立て数式環境です。最も基本的なものといえるでしょう。
align環境
\begin{align}
(a+b)^2 &= (a+b)(a+b) \\
&= a(a+b)+b(a+b) \\
&= a^2+ab+ba+b^2 \\
&= a^2+2ab+b^2
\end{align}
\begin{align} (a+b)^2&= (a+b)(a+b) \\ &= a(a+b)+b(a+b) \\ &= a^2+ab+ba+b^2 \\ &= a^2+2ab+b^2 \end{align}
\begin{align}
a_1 &= c_1 & a_2+b_2 &= c_2 \\
a_3 &= c_3 & a_4 &= c_4+d_4
\end{align}
\begin{align} a_1&=c_1 & a_2+b_2&=c_2 \\
a_3&=c_3 & a_4&=c_4+d_4
\end{align}
align
環境は,揃えたい場所の前に &
をかくことで,複数行にわたる数式を同じ場所で揃えることができます。数式番号は各行毎につきます。
一つの行に &
を複数用いる場合は,奇数番目の &
が位置合わせで,偶数番目の &
は「区切り」を意味します。区切りがないと,この部分は,1番目の &
に揃えるのか,それともその次のやつに揃えるかが分からなくなるので,そういう構造になっています。「区切り」には,多少のスペースが入ります。
なお,&
がないと全体が右揃えになります。
\\
は改行記号です。\\[20pt]
のようにすれば,改行の際に縦方向のスペースを入れることもできます(これは今後も同じです)。
align
は equation
環境のように,1行数式のときにも使えますが,2つの環境では若干上下のスペースが異なる場合があります。
alignat環境
\begin{alignat}{2}
a_1 &= c_1 & a_2+b_2 &= c_2 \\
a_3 &= c_3 & a_4 &= c_4+d_4
\end{alignat}
\begin{alignat}{2} a_1 &= c_1 & a_2+b_2 &= c_2 \\ a_3 &= c_3 & a_4 &= c_4+d_4 \end{alignat}
\begin{alignat}{2}
10 & x+{} & 2 & y=0 \\
5 & x+{} & 37 & y=9
\end{alignat}
\begin{alignat}{2} 10& x+{} & 2 & y=0\\ 5 & x+{} & 37 & y=9 \end{alignat}
alignat
環境は,各行の &
の個数の最大値/2 + 1 を引数に持ちます。今の場合は,\begin{alignat}{2}
です。これは align
環境と似ていますが,「区切り」を意味する偶数番目の &
でスペースが入りません。
1つ目の例は,align
の2つ目の例に対応しています。見比べてみてください。「区切り」スペースが入っていないのが分かるでしょう。「区切り」でスペースが入らないゆえに,2つ目の例のような,連立方程式の変数部分をそろえるのに使えます。
なお,2つ目の例で途中 {}
を挿入しているのは,そうしないと + が二項演算子の意味にならないからです。 a+, a+{} (a+, a+{}
) の違いを比較してください。
flalign環境
\begin{flalign}
a_1 &= c_1 & a_2+b_2 &= c_2 \\
a_3 &= c_3 & a_4 &= c_4+d_4
\end{flalign}
flalign
は full length alignment の意味で,align
に似ていますが,数式をできるだけ両端揃えにしようとするものです。なので,数式がかなり左右に寄ります。
gather環境
\begin{gather}
A = a_1+a_2+a_3 \\
B = b_1+b_2
\end{gather}
\begin{gather}A= a_1 + a_2 + a_3 \\ B = b_1+b_2 \end{gather}
gather
は単に複数行の数式を中央ぞろえで表示したい場合に用います。
multline環境
\begin{multline}
a+b+c+d+e+f+g \\
+h+i+j+k+l+m+n+o \\
+p+q+r+s+t+u+v+w+x+y+z
\end{multline}
1つの数式を複数行に配置するものです。よって数式番号は1つしか付きません。最初の行は左揃え,最後の行は右揃えになるように配置されます。綴りに注意してください。
なお,\shoveleft{一行の数式全体}, \shoveright{一行の数式全体}
を用いると,中央の行を左寄せにしたり,右寄せんにしたりできます。
~*環境
equation*, align*, alignat*, flalign*, gather*, multline*
環境は,それぞれ上の環境の数式番号なしバージョンです。
実際のところは,mathtools
パッケージを用いて,\mathtoolsset{showonlyrefs=true}
とすることで,align
などの*
なし環境であっても,別の場所で参照する数式以外は番号が付かないようにできます。多くの場合,こちらの方が使い勝手が良いでしょう。(ただし,これは cleveref
パッケージと共存できません)
また,align
などの *
なし環境において,一部だけ数式番号を除きたい場合は,その行の終わりに \notag
をつけるとよいです。
数式環境の中で使われるものと使用例
ここから解説するものは,\begin{align} ~~~ \end{align}
のような数式環境の中で使うものです。$ $
や \( \)
といったインライン数式中でも使えます。
数式環境の中でさらに環境を指定することは少ないかもしれませんが,知っておくとかなり重宝することもあるので,使用例を中心に確認していきましょう。
split環境
\begin{equation}
\begin{split}
a &= \int_0^\infty f(x) \sin x \cos x \, dx \\
&\quad + \int_0^\infty f(-x) \sin x \log x \, dx
\end{split}
\end{equation}
\begin{equation}
\begin{split} a &=\int_0^\infty f(x) \sin x \cos x \, dx\\
&\quad + \int_0^\infty f(-x) \sin x \log x \, dx
\end{split}
\end{equation}
split
は multline
と同様に,長くなりすぎる1つの数式を複数行で表示するために使います。よって,数式番号は1つしか付きません。
一方で,形式は align
のときと似ていて位置合わせが可能です。ただし,&
記号を1つしか使えません。複数使いたい場合は,次に解説する aligned
などの環境を用いるとよいです。
aligned環境
\begin{equation}
A= \left\{ x\in\mathbb{R} \middle|
\begin{aligned}
0 \le f(x,y) \le 1 \\
(y\in I)
\end{aligned}
\right\}
\end{equation}
\begin{equation}
A= \left\{ x\in \mathbb{R} \middle|
\begin{aligned}
0 \le f(x,y) \le 1 \\
(y\in I)
\end{aligned}\right\}
\end{equation}
aligned
は,align
を数式内で使うものです。このように,部分的に複数行にしたいときに役立ちますね。
なお,a= \begin{aligned} ~~~ \end{aligned} =b
のような使い方をした場合,a=, =b
は複数行数式の真ん中に出力されます。これを上揃えにしたい場合は \begin{aligned}[t] ~~~ \end{aligned}
とし,下揃えにしたい場合は \begin{aligned}[b] ~~~ \end{aligned}
としてください。これに関しては,以降の ~ed
環境でも同じです。
alignedat環境
\begin{equation}
\left\{
\begin{alignedat}{2}
10 & x+{} & 2 & y=0 \\
5 & x+{} & 37 & y=9
\end{alignedat}
\right.
\end{equation}
alignedat
は,alignat
を数式内で使うものです。これも,部分的に複数行にしたいときに役立ちます。
gathered環境
\begin{equation}
A= \left\{ x\in \mathbb{R} \middle|
\begin{gathered}
0\le f(x)\le 1 \\
0\le g(x)\le 3 \\
0\le h(x)\le 2
\end{gathered}
\right\}
\end{equation}
\begin{equation}
A= \left\{ x\in \mathbb{R} \middle|
\begin{gathered}
0\le f(x)\le 1 \\
0\le g(x)\le 3 \\
0\le h(x)\le 2
\end{gathered}\right\}
\end{equation}
gathered
は gather
を数式モード内で使うものです。部分的に中央揃えして複数行にしたいときに役立ちます。
lgathered, rgathered環境
gathered
は中央揃えでしたが,それを左揃え・右揃えにしたものが lgathered, rgathered
です。これを用いるには,mathtools
パッケージが必要です。例は省略します。
multlined環境
\begin{equation}
\frac{
\begin{multlined}
a+b+c+d+e+f+g \\
+h+i+j+k+l+m+n+o \\
+p+q+r+s+t+u+v+w+x+y+z
\end{multlined}
}{\alpha}
\end{equation}
multlined
は multline
の数式モード内で使うものであり,使用には mathtools
パッケージが必要です。
なお,分数を複数行にするには,mathtools
パッケージ にある \multifrac{1行目}{2行目}
を使ってもよいです。\frac{ \multifrac{1行目}{2行目}}{分母}
みたいな形で用います。
場合分けの環境
場合分けの環境については,以下で解説しています。