若要在一個 LaTeX 方程式中,於對齊步驟之間放置 cases 區塊,請將 cases 放在 aligned 的一列中,再用 equation 包住整個結構。這樣可以對齊等號,並讓完整推導共用一個方程式編號。

本指南適用於在 Mac 上編輯 .tex 文件,並希望在分段表達式的上方和下方放置一般代數步驟的人。主要範例只使用 amsmath;其他做法則說明何時適合使用 mathtools 或各自置中的區塊。

如何讓步驟和 cases 放在同一個對齊方程式中?

使用三個巢狀層級:equation 包含完整的展示式,aligned 排列推導,而 cases 在一列中提供帶大括號的表達式。官方指南將 aligned 說明為可置於外層表達式中的建構元件,並要求 aligned 和 cases 都出現在數學模式中。請參閱 amsmath 套件使用指南第 3.7 節。

以下是完整文件。令 n 為整數,a 為純量。無論 n 為偶數或奇數,這個表達式的值都是 a;cases 區塊會呈現這段中間推理。

\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}

將範例讀作四個外層列。前兩列展開表達式,第三列依奇偶性求值,第四列給出共同結果。兩個分支都化簡為 a,因此最後的等式適用於每個整數 n。此代數範例僅供說明;請以你自己推導中的表達式和條件取代。

哪些 & 符號和換行屬於哪個環境?

外層的 &= 標示每個等號之前的對齊點。在 cases 中,& 符號會分隔分支表達式與其條件。這兩個層級各有不同用途:cases 區塊占據一個外層列的一部分,即使它包含多個分支列。套件將 cases 實作為帶左大括號的雙欄陣列,如 amsmath 套件文件所示。

此範例的關鍵轉換是 \end{cases} \\。關閉 cases 會結束分段表達式;接著的 \\ 則結束外層的 aligned 列。之後的 &= a 就能在先前的等號下方開始。cases 內的換行只會移至另一個分支。

修改範例時,請先保留這種結構。每次只更改一個分支表達式或條件,再檢查結果。這樣更容易判斷不預期的版面是來自外層推導,還是分段表達式本身。

如何在 Mac 上使用此範例?

你需要可正常運作的 LaTeX 發行版和原始碼編輯器。如果你已在使用 TeXShop,它提供編輯器和 PDF 預覽,並使用 TeX Live 進行排版。根據開發者的 關於 TeXShop 頁面,其預設 PDF 工作流程會使用 pdftex 和 pdflatex。

  1. 建立新的原始碼文件,並貼上完整範例。
  2. 將檔案儲存為 cases-between-steps.tex。
  3. 使用 LaTeX 排版引擎,例如 pdflatex。
  4. 從 TeXShop 的 Typeset 選單選擇 Typeset。根據 TeXShop 更新紀錄,此命令會排版目前文件。
  5. 如果方程式參照尚未解析,請再次排版,然後檢查 PDF。

在預覽中檢查三個特徵:外層等號位於同一垂直欄,大括號只涵蓋兩個分支,而且整段推導只有一個方程式編號。也請檢查兩個條件和最後一列,確認數學內容在編輯後仍正確。

我們已根據文件檢查這些範例,但此處沒有編譯,因為當時沒有 LaTeX 引擎可用。請先試用這份小型獨立文件,再將其納入較大的專案。

應該選用哪些環境和套件?

根據步驟之間的關係選擇外層結構。若要形成連續的等式鏈,請使用一個共用的對齊環境。如果只是需要將不同組別放在 cases 區塊的上方和下方,請使用下一節中各自置中的替代做法。

期望結果 結構 套件
共用等號對齊,且只有一個編號 equation 包含 aligned,並巢狀使用 cases amsmath
各組分別置中,且只有一個編號 equation 包含 gathered,並巢狀使用多個區塊 amsmath
在 cases 各列中使用較大的分數 將 cases 替換為 dcases mathtools
條件自動以文字呈現 使用 cases* 或 dcases* mathtools

amsmath 使用指南說明了精簡的建構元件;mathtools 套件第 3.4.3 節則說明了其他 cases 變體。

何時應將 cases 換成 dcases?

一般的 cases 使用文字樣式的數學排版。mathtools 環境 dcases 使用展示樣式,適合需要更多空間呈現分數的情況。載入 mathtools 也會載入 amsmath。帶星號的變體 dcases* 會將第二欄設為文字欄;請在其中用行內數學分隔符括住數學條件。這些行為詳見 mathtools 套件。

以下是使用分數的完整替代範例。對整數 n 而言,第一列中的分母不是三就是一,因此兩個分支都有定義。

\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{...} 內;使用帶星號的變體時,則直接將文字寫在第二欄中。

如果只需要將區塊上下堆疊,該怎麼做?

若上方和下方的組別需要各自的局部對齊,請使用 gathered。這是指南所述精簡建構元件的一種應用:每個 aligned 組別都會成為外層 gathered 結構中的一列。請參閱 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) 可明確表示其關聯,而最後一列則補充了結果的一項推論。

若需要一欄連續對齊的等號,請回到第一個範例。即使出現在同一個方程式中,不同的 aligned 組別也無法共用對齊點。

如何診斷常見的版面問題?

由外往內檢查。先找出帶編號的展示式,再找出建立其列的結構,最後檢查 cases 區塊。新增間距調整之前,請依照以下順序診斷:

  • **下方步驟出現在 cases 區塊旁邊:**檢查 \end{cases} 後面是否緊接著外層的 \\。
  • **看似延續的內容出現在大括號下方:**檢查該延續內容之前是否出現 \end{cases}。
  • **上方和下方的等號未對齊:**檢查它們是否屬於不同的 aligned 組別。若要共用對齊方式,請使用一個外層 aligned。
  • **文件回報巢狀錯誤:**檢查 equation 內是否有 align。在該位置請改用從屬環境 aligned。
  • **分數看起來太小:**考慮使用 dcases,並載入 mathtools。

巢狀診斷有套件文件所述的錯誤巢狀方程式結構復原機制支持;該機制會以 aligned 取代。請參閱 amsmath 套件文件。分數替代方案則依據 mathtools cases 文件。

若要在 cases 區塊後增加少量空間,請將其外層列結尾改為 \end{cases} \\[4pt]。此數值僅為示範起點。此外,請勿在數學環境中加入空白行,也不要在最後一列後加上行尾的 \\。這些慣例詳見 amsmath 使用指南第 3.1 和 3.9 節。

一項重要限制是分頁:aligned 和 gathered 會形成不可分割的結構,因此 \allowdisplaybreaks 不會將它們拆分到不同頁面。若推導特別長,請重新安排展示式結構,不要預期該命令會拆分此巢狀版面。相關限制詳見 amsmath 的分頁說明。

對於一般的短推導,請從一個 equation、一個 aligned,以及一列巢狀的 cases 開始。將外層換行放在 cases 區塊之後,確認每個分支條件,並只在需要不同的水平對齊或數學尺寸時才改用其他結構。

來源