1つのLaTeX数式内で、位置を揃えたステップの間に場合分けブロックを配置するには、casesをalignedの行に入れ、全体をequationで囲みます。これにより等号の位置が揃い、導出全体に1つの数式番号が付きます。
このガイドは、区分的な式の上下に通常の代数ステップを置きたい、Macで.tex文書を編集する人を対象としています。主な例ではamsmathだけを使います。別案では、mathtoolsや独立して中央揃えにするブロックが適切な場合を説明します。
ステップと場合分けを1つの整列数式にまとめるには?
3つの階層を入れ子にして使います。equationが表示全体を囲み、alignedが導出の各行を配置し、casesが1つの行に括弧付きの式を作ります。公式ガイドではalignedを、包含する式の中に収まる構成要素と説明しており、alignedとcasesの両方が数式モードにある必要があります。amsmathパッケージのユーザーズガイドの3.7節を参照してください。
以下は完全な文書の例です。nを整数、aをスカラーとします。この式の値はnが偶数でも奇数でもaです。場合分けブロックにより、途中の推論が見えるようになります。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Let \(n\) be an integer and \(a\) be a scalar.
\begin{equation}
\label{eq:cases-chain}
\begin{aligned}
S(n) &= a\bigl[(-1)^n+1-(-1)^n\bigr] \\
&= a(-1)^n+a\bigl(1-(-1)^n\bigr) \\
&= \begin{cases}
a+0, & \text{if } n \text{ is even}, \\
-a+2a, & \text{if } n \text{ is odd}
\end{cases} \\
&= a.
\end{aligned}
\end{equation}
The result is recorded in \eqref{eq:cases-chain}.
\end{document}
この例は、外側の4行で構成されています。最初の2行で式を展開し、3行目で偶奇に基づいて評価し、4行目で共通の結果を示しています。どちらの場合もaに簡約されるので、最後の等式はすべての整数nに当てはまります。この代数は説明用です。ご自身の導出に使う式と条件に置き換えてください。
どのアンパサンドと改行がどの環境に属する?
外側の&=は、各等号の前にある位置揃えポイントを示します。casesの内側では、アンパサンドが場合分けの式と条件を区切ります。この2つの階層の役割はそれぞれ異なります。場合分けブロックには複数の分岐行が含まれますが、外側の行の一部を占めます。パッケージではcasesを、左側に波括弧が付いた2列の配列として実装しています。amsmathパッケージのドキュメントを参照してください。
この例で重要な切り替えは\end{cases} \\です。casesを閉じると区分的な式が終わり、その後の\\で外側のalignedの行が終わります。これで次の&= aを、それ以前の等号の下から始められます。cases内の改行は、別の分岐へ移動するだけです。
例を変更するときは、まずこの構造を保ってください。分岐の式か条件を一度に1つずつ変更し、その都度結果を確認します。そうすれば、予想外の配置が導出の外側に由来するのか、区分的な式自体に由来するのかを特定しやすくなります。
Macでこの例を使うには?
動作するLaTeXディストリビューションとソースエディタが必要です。すでにTeXShopを使っている場合は、エディタとPDFプレビューが備わっており、組版にはTeX Liveを使用します。開発者のTeXShopについてのページによると、既定のPDFワークフローではpdftexとpdflatexを使います。
- 新しいソース文書を作成し、例全体を貼り付けます。
cases-between-steps.texという名前で保存します。pdflatexなどのLaTeX組版エンジンを使います。- TeXShopの
TypesetメニューからTypesetを選択します。TeXShopの変更履歴に記載されているように、このコマンドは現在の文書を組版します。 - 数式参照が解決されていない場合は、もう一度組版してからPDFを確認します。
プレビューでは3つの点を確認してください。外側の等号が縦に1列に揃っていること、波括弧が2つの分岐だけを囲んでいること、導出に数式番号が1つだけ付いていることです。また、編集後も数式が保たれているか、両方の条件と最後の行を読んで確認してください。
これらの例はドキュメントを参照して確認しましたが、ここではLaTeXエンジンを利用できなかったためコンパイルしていません。大きなプロジェクトに組み込む前に、小さな単独文書で試してください。
どの環境とパッケージを選べばよい?
各ステップの関係に応じて、外側の構造を選びます。等号が連続する1つの式変形なら、共通の位置揃えを維持します。場合分けブロックの上下に別々のグループを置くだけなら、次のセクションにある独立して中央揃えにする方法を使います。
| 望む結果 | 構造 | パッケージ |
|---|---|---|
| 等号の位置を揃え、数式番号を1つにする | equationの中にalignedを置き、その中にcasesを入れる |
amsmath |
| グループごとに中央揃えし、数式番号を1つにする | equationの中にgatheredを置き、さらにブロックを入れ子にする |
amsmath |
| 場合分けの各行で大きな分数を使う | casesをdcasesに置き換える |
mathtools |
| 条件を自動的にテキストとして組む | cases*またはdcases*を使う |
mathtools |
簡潔な構成要素についてはamsmathユーザーズガイドに、追加のcases形式についてはmathtoolsパッケージの3.4.3節に説明があります。
casesをdcasesに置き換えるのはどんな場合?
通常のcasesではテキストスタイルの数式を使います。mathtools環境のdcasesではディスプレイスタイルを使うため、分数にもっと余裕が必要な場合に便利です。mathtoolsを読み込むと、amsmathも読み込まれます。アスタリスク付きのdcases*では2列目がテキストになります。そこで数式の条件を書く場合は、インライン数式の区切り記号で囲みます。これらの動作はmathtoolsパッケージに記載されています。
以下の完全な別案では分数を使います。整数nの場合、最初の行の分母は3または1になるため、どちらの分岐も定義されます。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
Let \(n\) be an integer and \(a\) be a scalar.
\begin{equation}
\begin{aligned}
T(n) &= \frac{2a}{2+(-1)^n} \\
&= \begin{dcases}
\frac{2a}{3}, & \text{if } n \text{ is even}, \\
2a, & \text{if } n \text{ is odd}
\end{dcases} \\
&= \frac{a}{1+\frac{1}{2}(-1)^n}.
\end{aligned}
\end{equation}
\end{document}
ここでは、分岐のスタイルを変更しても外側のレイアウトは変わりません。簡潔な分岐にはcasesを、分数をディスプレイスタイルにすると読みやすくなる場合にはdcasesを選びます。casesまたはdcasesを使う場合、文章は\text{...}の中に置いてください。アスタリスク付きの形式では、文章を2列目にそのまま書きます。
ブロックを上下に並べるだけでよい場合は?
上と下のグループでそれぞれ独立した位置揃えが必要なら、gatheredを使います。これはガイドに記載された簡潔な構成要素の応用です。各alignedグループが、包含するgathered構造の1行になります。amsmathの位置揃え用構成要素を参照してください。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Let \(n\) be an integer and \(a,b\) be scalars.
\begin{equation}
\begin{gathered}
\begin{aligned}
S(n) &= a\bigl[(-1)^n+1-(-1)^n\bigr] \\
&= a(-1)^n+a\bigl(1-(-1)^n\bigr)
\end{aligned} \\
S(n)=\begin{cases}
a+0, & \text{if } n \text{ is even}, \\
-a+2a, & \text{if } n \text{ is odd}
\end{cases} \\
\begin{aligned}
S(n) &= a, \\
S(n)+b &= a+b.
\end{aligned}
\end{gathered}
\end{equation}
\end{document}
この配置では、意図的に上のグループ、中央の式、下のグループをそれぞれ別々の横位置に配置します。各グループの等号が揃うとは限りません。S(n)を繰り返すと関係が明確になり、最後の行では結果から導かれることを付け加えます。
等号を連続して1列に揃える必要がある場合は、最初の例に戻ってください。別々のalignedグループは、同じ数式内にあるだけでは位置揃えポイントを共有できません。
よくあるレイアウトの問題を診断するには?
外側から内側へ確認します。数式番号の付く表示を特定し、次に行を作る構造、最後に場合分けブロックを確認します。空きを調整する前に、以下の手順で診断してください。
- 下のステップが場合分けブロックの横に表示される:
\end{cases}の直後に外側の\\があるか確認します。 - 続きのつもりの式が波括弧の下に表示される: 続きの式より前に
\end{cases}があるか確認します。 - 上と下の等号が揃わない: それらが別々の
alignedグループに属していないか確認します。共通の位置揃えには、外側のalignedを1つ使います。 - 文書で入れ子が誤っているというエラーが出る:
equationの中にalignがないか確認します。その位置では、下位のaligned環境を使います。 - 分数が小さすぎる:
dcasesの使用を検討し、mathtoolsを読み込みます。
入れ子に関する診断は、誤って入れ子にされた数式構造をパッケージが処理する際にalignedに置き換えるという、ドキュメント記載の挙動に基づいています。amsmathパッケージのドキュメントを参照してください。分数の別案についてはmathtoolsのcasesに関するドキュメントを参照してください。
場合分けブロックの後に少し空きを追加するには、外側の行末を\end{cases} \\[4pt]に置き換えます。この量は、調整を始めるときの目安です。また、数式環境の中に空行を入れず、最後の行の後ろには行末の\\を置かないでください。これらの慣例はamsmathユーザーズガイドの3.1節と3.9節で扱われています。
大きな制約の1つはページ分割です。alignedとgatheredは分割できない構造を作るため、\allowdisplaybreaksでもページをまたいで分割できません。導出が非常に長い場合は、この入れ子レイアウトをそのコマンドで分割しようとせず、表示の構造を変更してください。この制限についてはamsmathの改ページに関するガイドに記載されています。
通常の短い導出なら、equationを1つ、alignedを1つ、入れ子になったcases行を使って始めてください。場合分けブロックの後で外側の行を改行し、各分岐の条件を確認します。横方向の位置揃えや数式のサイズを変える必要がある場合に限り、別の構造に切り替えてください。
出典
- amsmathパッケージのユーザーズガイド — 米国数学会およびLaTeXプロジェクト。
- amsmathパッケージ — CTAN経由で配布されているLaTeXプロジェクト。
- mathtoolsパッケージ — CTAN経由で配布されているMorten Høgholm、Lars Madsen、およびLaTeX3プロジェクト。
- TeXShopについて — Richard Koch、オレゴン大学。
- TeXShopの変更履歴 — Richard Koch、オレゴン大学。