複数行の数式

(初級編)

最終更新:

概要

複数行に跨った数式の等号を揃えたり、長大な数式を途中で改行したくなることがよくあるだろう。ここではそれらの数式をうまく記述する方法を説明する。

等号を揃える(非推奨)

方程式や計算過程などの等号を揃えたいとき、eqnarray環境を用いる方法が普及している。eqnarrayでは各行ごとに数式番号が付き、eqnarray*を用いるか各行に\nonumberを付けることで数式番号を振らないようにできる。ただし以下に示したように、レイアウトのために\nonumberを乱用してはいけない。


\begin{eqnarray*}
(x - 3)(x + 2)(x + 7) &=& (x - 3)(x^2 + 9x + 14) \\
&=& (x^3 + 9x^2 + 14x) - (3x^2 + 27x + 42) \\
&=& x^3 + 6x^2 - 13x - 42
\end{eqnarray*}
以下はやってはいけない例(論理構造を無視している)。
\begin{eqnarray}
(x - 3)(x + 2)(x + 7) &=& (x - 3)(x^2 + 9x + 14) \nonumber \\
&=& (x^3 + 9x^2 + 14x) - (3x^2 + 27x + 42) \\
&=& x^3 + 6x^2 - 13x - 42 \nonumber
\end{eqnarray}
		

amsmathパッケージ

eqnarray環境はレイアウトの問題から使用が推奨されないようである。その代わりにamsmathパッケージを用いるのがより良い。

amsmathパッケージはLaTeXで数式を表現する際に必要な、標準では不十分な機能を補うパッケージで、数式を主に扱う文書ではごく一般的に使用されている。まず次のようにしてamsmathパッケージを読み込む。


\documentclass[a4paper]{jsarticle}
\usepackage{amsmath}
\begin{document}
...
		

equation環境の拡張

amsmathパッケージを読み込むと、equation*環境を使用できるようになる。これは通常のequationと似ているが数式番号を表示しない点が異なる。逆に言えば、初期状態のLaTeXにはこの機能が存在しないのである。

等号を揃える(推奨)

前述のeqnarray環境の代替として、split環境を使用できるようになる。これはequation環境の中に入れて用いる。また、eqnarrayと違って揃え位置の&」は1つでよい。数式番号は複数行の中間に1つだけ配置される。もちろんequation*を使用してもよい。


\begin{equation}
\begin{split}
(x - 3)(x + 2)(x + 7) &= (x - 3)(x^2 + 9x + 14) \\
&= (x^3 + 9x^2 + 14x) - (3x^2 + 27x + 42) \\
&= x^3 + 6x^2 - 13x - 42
\end{split}
\end{equation}
		

等号で揃えて並べる

複数の数式を等号で揃えるにはalign環境(もしくはalign*)を使用する。一見split環境と似ているが、こちらは各行ごとに数式番号を表示する。また、揃え位置の「&」は奇数個目が狭く、偶数個目が広く表示されるので下図のように数式を縦横に並べることも可能である。


\begin{align}
\lambda_\mathrm{A1} &= \SI{502+-2}{nm} \\
\lambda_\mathrm{A2} &= \SI{501.8+-0.8}{nm} \\
\lambda_\mathrm{B1} &= \SI{448+-2}{nm} \\
\lambda_\mathrm{B2} &= \SI{447.0+-0.8}{nm}
\end{align}
\begin{align*}
A_1 &= 1.2 & A_2 &= 2.9 & A_3 &= 3.1 \\
B_1 &= 1.1 & B_2 &= 4.5 & B_3 &= 1.4
\end{align*}
		

中央揃えで並べる

複数の数式を単に並べるにはgather環境(もしくはgather*)を使用する。


\begin{gather}
l = \sqrt{{l_x}^2 + {l_y}^2} \\
m = \frac{m_1 + m_2 + \cdots + m_n}{n}
\end{gather}
		

数式を折り返す

長い数式がページの横幅に収まりきらないとき、初期状態では数式がページ外にはみ出てしまう。amsmathパッケージのmultline環境を用いると数式を任意の箇所で折り返すことができる。数式番号の位置も自動で調整される。※注意:multilineではない。


%equation環境でははみ出てしまう
\begin{equation}
x = 4.3834819x_0 + 6.4320266x_1 + 6.9295096x_2 + 6.2056923x_3 + 7.2624671x_4 + 3.5497641x_5 + 1.8074235x_6 + 2.845002x_7 + 4.0583701x_8 + 0.80100385x_9 
\end{equation}
%multline環境で、折り返したい箇所に改行"\\"を挿入する
\begin{multline}
x = 4.3834819x_0 + 6.4320266x_1 + 6.9295096x_2 + 6.2056923x_3 + 7.2624671x_4 \\
+ 3.5497641x_5 + 1.8074235x_6 + 2.845002x_7 + 4.0583701x_8 + 0.80100385x_9 
\end{multline}
		

参考文献

amsmathパッケージの詳細およびその他のコマンド等は下記のリファレンスで確認できる。

関連項目

戻る