PR

【LaTeX】数式環境まとめ【amsmath】

LaTeX
記事内に広告が含まれています。

\LaTeX における,equation 環境や align 環境をはじめとする,さまざまな数式環境をまとめましょう。

本記事では,amsmath パッケージを読み込んでいるものとします。

数式環境の簡易一覧表

まずは,数式環境の簡易的な一覧表を記載します。

環境説明
$ $インライン数式
\( \)インライン数式,上に同じ
\[ \]1行の別行立て数式(番号なし)
equation1行の別行立て数式
align位置合わせ可能の別行立て数式
alignatスペースの入らない位置合わせ可能の別行立て数式
flalign両端揃えによる位置合わせ可能の別行立て数式
gather中央揃え可能の別行立て数式
multline (綴りに注意)1つの数式を複数行に配置
~* (align*, alignat* ...)上の数式で,番号の付かないもの,基本的に不要(解説参照)
split数式環境の中で,1つの式を複数行に分ける
alignedalign と同等のものを数式環境の中で使う
alignedatalignat と同等のものを数式環境の中で使う
gatheredgather と同等のものを数式環境の中で使う
lgathered, rgatheredgathered をそれぞれ左揃え・右揃えにしたもの,mathtools パッケージが必要
multlinedmultline と同等のものを数式環境の中で使う,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] のようにすれば,改行の際に縦方向のスペースを入れることもできます(これは今後も同じです)。

alignequation 環境のように,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}
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}

splitmultline と同様に,長くなりすぎる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 を数式内で使うものです。これも,部分的に複数行にしたいときに役立ちます。

\begin{equation}\left\{ \begin{alignedat}{2} 10 & x+{} & 2 & y=0 \\ 5 & x+{} & 37 & y=9 \end{alignedat} \right. \end{equation}

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}

gatheredgather を数式モード内で使うものです。部分的に中央揃えして複数行にしたいときに役立ちます。

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環境の出力例

multlinedmultline の数式モード内で使うものであり,使用には mathtools パッケージが必要です。

なお,分数を複数行にするには,mathtools パッケージ にある \multifrac{1行目}{2行目} を使ってもよいです。\frac{ \multifrac{1行目}{2行目}}{分母} みたいな形で用います。

場合分けの環境

場合分けの環境については,以下で解説しています。

関連する記事

参考

  1. amsmath – AMS mathematical facilities for LATEX
  2. mathtools – Mathematical tools to use with amsmath