若要引用整個方程組及其中的個別方程,請載入 amsmath,將帶編號的陳列式放在 subequations 中,並在該環境內緊接著放置方程組標籤。為每個帶編號的列各加一個標籤,然後使用 \eqref 引用任一層級。amsmath 使用者指南,第 3.11 節。
本指南適用於在 Mac 上編輯 LaTeX 文件,且需要「系統 (1)」和「方程式 (1b)」等引用方式的使用者。範例採用抽象代數表達式,並區分會為各個方程分別編號的環境,以及只用於排列多行內容的環境。
建立方程組引用與個別方程引用
先準備可正常運作的 LaTeX 安裝環境。LaTeX Project 將 MacTeX 列為適用於 Mac 的發行版,內含 LaTeX、完整的 TeX 系統和文件編輯器。以下編號技巧取自 amsmath 套件。取得 LaTeX;CTAN:amsmath。
在 LaTeX 編輯器中,將以下完整文件存成 equation-group.tex。關鍵是將 \label{eq:system} 直接放在 \begin{subequations} 之後、內層 align 開始之前。套件指南明確說明,這個位置可用來擷取父編號。amsmath 使用者指南,第 3.11.3 節。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Consider the system~\eqref{eq:system}:
\begin{subequations}\label{eq:system}
\begin{align}
a+b &= c \label{eq:sum} \\
a-b &= d \label{eq:difference} \\
2a &= c+d \label{eq:combined}
\end{align}
\end{subequations}
The whole group is system~\eqref{eq:system}.
The second relation is equation~\eqref{eq:difference}.
Together, equations~\eqref{eq:sum} and~\eqref{eq:difference}
give equation~\eqref{eq:combined}.
\begin{equation}\label{eq:next}
2b=c-d
\end{equation}
The next equation is~\eqref{eq:next}.
\end{document}
將主檔編譯兩次,讓 LaTeX 先寫入再讀取引用資訊。若 pdflatex 可用,且目前工作目錄包含已儲存的檔案,請在終端機執行以下命令。LaTeX 使用輔助檔案,因此第一次執行時引用可能會顯示為 ??。LearnLaTeX:交叉引用。
pdflatex -halt-on-error equation-group.tex
pdflatex -halt-on-error equation-group.tex
對於這份獨立文件,預期引用結果如下。這些結果是根據已記載的編號行為推定,並非本機編譯結果;研究環境中沒有 LaTeX 編譯器。
| 引用命令 | 預期結果 | 所指內容 |
|---|---|---|
\eqref{eq:system} |
(1) |
整個方程組 |
\eqref{eq:sum} |
(1a) |
第一個方程 |
\eqref{eq:difference} |
(1b) |
第二個方程 |
\eqref{eq:combined} |
(1c) |
第三個方程 |
\eqref{eq:next} |
(2) |
方程組之後的方程 |
實作方式說明了編號順序:進入 subequations 時會遞增並儲存父方程編號,接著開始子計數器。離開外層環境時,主計數器會還原為父編號。因此,父編號為 (1) 的方程組包含三個子方程後,接續的一般方程編號為 (2)。amsmath 套件,第 15 節。
選擇符合引用需求的環境
選擇版面配置之前,先決定讀者需要引用哪些內容:整個集合、每個方程,或是分成多行的單一表達式。本選擇指南依據套件文件中的區分編寫。amsmath 使用者指南,第 3.2–3.7 節。
| 讀者的需求 | 適用結構 | 編號目標 |
|---|---|---|
| 引用一組方程,以及其中各個對齊的方程 | 在 align 外層使用 subequations |
父編號及各個帶編號的列 |
| 引用一組分別置中的方程 | 在 gather 外層使用 subequations |
父編號及各個帶編號的方程 |
| 引用以文字隔開的相關陳列式 | 在多個帶編號的陳列式外使用一個 subequations |
父編號及各個陳列式 |
| 引用一個多行表達式 | equation 中包含 split 或 aligned |
一個方程編號 |
| 顯示沒有自動編號的對齊列 | align* |
不自動為各列編號 |
為什麼 aligned 不會建立個別子方程
aligned 是封裝在數學環境內的組成區塊。在 aligned 中使用 equation,會為外層方程編號;但不會為每一列建立個別的帶編號目標。若要引用個別列,請在 subequations 中選用 align。指南將這些陳列環境與其內部組成區塊分別說明。amsmath 使用者指南,第 3.7 節。
一個實用的規劃方法是先草擬引用該內容的句子。若需要「系統 (1) 中的第二個方程」,第一個範例便提供這兩種引用目標。若只需要「方程式 (1) 中的推導」,單一帶編號的多行陳列式可能就足夠。先選好結構再加標籤,能清楚指定預期的引用目標。
讓同一組方程跨越多個陳列式
外層環境可在方程之間包含文字。套件隨附的子方程範例展示了這種用法,也示範如何使用不同數學環境組成一組陳列式。最後一個相關陳列式結束後,再關閉外層環境。子編號方程範例。
以下是第二份完整文件。第一個子方程排版時佔兩行,但只有一個引用目標;第二個則是在一句文字之後出現的獨立陳列式。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{subequations}\label{eq:identities}
\begin{equation}\label{eq:expansion}
\begin{split}
(a+b)^2 &= a^2+2ab+b^2 \\
&= (a-b)^2+4ab
\end{split}
\end{equation}
A related identity is
\begin{equation}\label{eq:product}
(a+b)(a-b)=a^2-b^2.
\end{equation}
\end{subequations}
The group is~\eqref{eq:identities}.
Its members are~\eqref{eq:expansion} and~\eqref{eq:product}.
\end{document}
在這個獨立範例中,預期方程組引用為 (1),成員引用則為 (1a) 和 (1b)。split 內的中間一行沒有獨立編號。若要將編號與第一份文件比較,請把此範例另存為獨立檔案。套件隨附範例也展示了多行表達式取得一個子編號的情況。子編號方程範例。
診斷錯誤或未解析的引用
先檢查問題現象,再修改計數器或在文字中直接輸入數字。以下步驟可協助區分引用查找問題,以及所選環境與預期引用目標不符的情況。
- 如果 PDF 顯示
??,請再次編譯。 引用資訊會從先前執行所產生的輔助資料讀取。若問題仍然存在,請核對引用鍵與標籤的拼寫。LearnLaTeX:交叉引用。 - 如果方程組引用含有字母,請檢查標籤位置。 將父標籤放在
\begin{subequations}之後。每個子標籤都應放在其帶編號列的\\之前;最後一列則放在\end{align}之前。amsmath 使用者指南,第 3.11.3 節。 - 如果個別列沒有各自的編號,請檢查環境。
equation中的aligned區塊只提供一個外層引用目標。若每一列都需要引用,請使用第一個範例中的結構。amsmath 使用者指南,第 3.7 節。 - 如果無關的方程也出現字母後綴,請檢查外層環境的結尾。 外層環境內所有帶編號的內容都會納入子編號序列。將
\end{subequations}移至預定方程組的實際結尾。子編號方程範例。
套用範例時,可使用 eq:system 和 eq:difference 等描述性鍵。前綴 eq: 是作者採用的命名慣例;LaTeX 不會用它判斷標籤所指物件的類型。標籤的位置才會提供這項脈絡。LearnLaTeX:交叉引用。
確認編輯後引用仍然正確
文件初次編譯成功後,試著進行一項可控的編輯:在方程組前插入一個一般帶編號的方程。持續重新編譯,直到引用變動警告消失,接著檢查方程組引用、一個子方程引用,以及後續方程。在第一個範例中,它們現在應分別顯示為 (2)、(2b) 和 (3)。這是根據套件計數器行為推得的示意檢查。amsmath 套件,第 15 節。
這項編輯可檢驗使用標籤的目的:編號變動後,引用句仍應指向預期的方程。請將父標籤留在外層環境的開頭,為每個需要引用的子方程設定獨立的帶編號目標,並在套用至較大的手稿時,使用完整範例作為小型對照文件。
來源
- amsmath 套件使用者指南 — 美國數學學會與 LaTeX Project。
- amsmath 套件 — LaTeX Project,透過 CTAN 發行。
- 主方程編號;子編號方程;align、gather 及其他 AMS-LaTeX 環境的測試 — amsmath 套件文件,由 CTAN 發行。
- 交叉引用 — LearnLaTeX。
- 取得 LaTeX — LaTeX Project。
- amsmath — LaTeX 的 AMS 數學功能 — CTAN。