LaTeX 公式如何換行?split、aligned、align 與 multline 的選擇
LaTeX 公式換行需要支援多行的數學環境。載入 amsmath 後,一條公式分行並共用一個編號,用 equation 搭配 split;多條公式分別編號,用 align;長公式不需要對齊點,用 multline。在一般 equation 裡加上 \\,無法得到預期的多行排版。
這些寫法適用於本機 TeX Live、MiKTeX 和 EasyLaTeX。範例使用 article 文件類別與 pdfLaTeX,原始碼中的文字採英文,不需要中文字型設定。既有中文論文或期刊範本應保留原文件類別及編譯引擎,只移入需要的公式片段。
可編譯的完整範例
儲存為 main.tex。範例將平方誤差項與兩個正則化項分成兩行,整個目標函數只編號一次。
\documentclass[a4paper,11pt]{article}\usepackage{amsmath}\begin{document}\begin{equation}\begin{split}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\ &\quad + \lambda w^2 + \mu(w-w_0)^2.\end{split}\label{eq:objective}\end{equation}See Equation~\eqref{eq:objective}.\end{document}其中 n 為正整數,w、w_0、x_i、y_i 為實數,\lambda 與 \mu 為非負參數。第二行接續加法。& 標記對齊位置,\\ 分隔行;原始碼中的一般換行不會讓 PDF 裡的公式換行。
依對齊與編號需求選擇環境
排版選擇示意圖:先決定編號數量,再選擇是否對齊。橫線代表公式內容。
| 需求 | 寫法 | 編號與位置 |
|---|---|---|
| 一條長公式,在指定位置對齊 | equation + split | 由外層提供一個編號 |
| 放進較大數學式的對齊區塊 | aligned | 在數學模式中使用,外層控制編號 |
| 多條式子或步驟分別編號 | align | 預設每行編號;獨立使用 |
| 長公式無共同對齊點 | multline | 整體一個編號;獨立使用 |
| 所有行都不編號 | align*、multline* 或 \[...\] 裡的 aligned | 依對齊需求選擇 |
此處的 split 每行使用一個 &。aligned 能建立多組對齊欄,也能搭配外層括號;split 適合占據整個展示公式的一條分行式。兩者都不會自動選擇換行點。
split 與 aligned:共用一個編號
完整範例使用 split。同一目標函數改用 aligned 的方式如下。後續片段都放在既有文件的本文中。
\begin{equation}\begin{aligned}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\ &\quad + \lambda w^2 + \mu(w-w_0)^2.\end{aligned}\label{eq:aligned}\end{equation}aligned 本身不編號;放在 equation 中有一個編號,放在 \[...\] 中則沒有。請透過外層環境控制,不使用 aligned* 或 split*。
原始碼與排版的對應示意。D(w) 是資料誤差項,R(w) 是兩個正則化項的總和;標記指出對齊點和換行位置。
\quad 增加縮排。若要保留行首加號的二元運算子間距,可寫 &\quad {}+ ...。數學模式會忽略大部分原始碼空白,不要用連續空格定位。
align:分別引用目標函數與導數
對 w 微分時,將 x_i、y_i、w_0、\lambda、\mu 視為常數。以下兩行各自編號。
\begin{align}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 + \lambda w^2 + \mu(w-w_0)^2 \label{eq:loss} \\J'(w) &= \frac{2}{n}\sum_{i=1}^{n}x_i(w x_i-y_i) + 2\lambda w + 2\mu(w-w_0). \label{eq:gradient}\end{align}使用 \eqref{eq:loss} 與 \eqref{eq:gradient} 引用。兩行各為一個等式;若只是同一加法式的接續行,不要多加等號,以免改變數學意義。
全部不編號可用 align*。只省略部分行的編號,在那些行的換行前加 \notag:
\begin{align}(x+1)^2 &= x^2+2x+1 \notag \\ &= x(x+2)+1. \label{eq:expansion}\end{align}標籤放在保留編號的行。參照顯示 ?? 時,本機再編譯一次並檢查重複標籤;平台則在目前編譯完成後確認參照結果。
multline:不需要對齊點的長公式
同一公式可以不用 &,改採:
\begin{multline}J(w) = \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\ + \lambda w^2 + \mu(w-w_0)^2.\label{eq:multline}\end{multline}在此處預設右側編號下,首行靠左、末行靠右,兩端留有環境設定的間距;中間行預設置中,編號位於末行右側。文件類別與 amsmath 選項可能改變位置及編號方向。無編號使用 multline*,不要將它放進 equation 或 \[...\]。
換行失敗時的檢查項目
| 現象或紀錄 | 修正方式 |
|---|---|
Environment align undefined | 在主檔導言區載入 amsmath,本機另確認套件已安裝 |
equation 中加 \\ 無法換行 | 加入 split、aligned,或改用獨立的 align、multline |
Erroneous nesting of equation structures | 檢查是否將 align 放進 equation |
Misplaced alignment tab character & | 將 & 放在對齊環境中,multline 不使用它 |
括號或 Missing \right. 錯誤 | 檢查 \left、\right 是否跨越行邊界 |
| 成功產生 PDF 但公式超寬 | 調整斷行與分組,查看 Overfull \hbox 並核對 PDF |
錯誤的巢狀用法:
% Incorrect nesting\begin{equation}\begin{align}a &= b \\ &= c\end{align}\end{equation}需要整體一個編號時改為:
\begin{equation}\begin{split}a &= b \\ &= c\end{split}\end{equation}\left( 與 \right) 不能跨越對齊環境的行邊界配對。可改用固定尺寸括號:
\[\begin{aligned}F(x) &= \Bigl(a+b+c \\ &\qquad +d+e\Bigr).\end{aligned}\]a 到 e 是相加的項。數學環境中不要插入空白段落,最後一行通常也不需要額外的 \\。
雙欄論文:縮短每一行
雙欄範本的可用寬度是一欄。先定義資料項和正則化項,可保留原函數並縮短各行:
\begin{equation}\begin{split}J(w) &= D(w)+R(w), \\D(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2, \\R(w) &= \lambda w^2+\mu(w-w_0)^2.\end{split}\label{eq:compact}\end{equation}放入投稿範本後檢查欄寬、編號與括號。優先依數學結構分行,避免用 \resizebox 將整式縮成難讀的小字。跨欄公式依出版社規定處理。
在本機與 EasyLaTeX 中驗證
兩種編譯流程示意。兩條路徑都需要檢查最新 PDF 的邊界和編號。
本機將完整範例存為 main.tex,在所在目錄執行以下指令兩次,以更新交叉參照。使用編輯器建置按鈕時,也確認根檔案與編譯器設定。
pdflatex -interaction=nonstopmode -halt-on-error main.tex先修正 main.log 的第一個錯誤,再查看超寬警告。開啟最新 main.pdf,檢查兩行內容、一個編號,以及不含 ?? 的括號參照。本機與線上輸出不同時,比較文件類別、引擎、套件版本及欄寬。
EasyLaTeX 的空白測試專案中,建立 main.tex,在頂部主檔下拉選單選取它,於編輯器設定選 pdfLaTeX,再編譯。既有論文保留原主檔、引擎與範本,只替換公式區塊。編譯器設定依專案中的使用者儲存,協作者也應各自確認。
等待目前工作完成,再看 PDF 預覽的換行、對齊與編號。發生錯誤時開啟 Bug 的 Original Log,或用 AI Fix 請 Agent 排錯。在 Chat & Agent 中可提出:
將目前目標函數拆成兩行,保留一個編號與原標籤。保留所有項、係數、括號及正負號,先確認主檔和既有套件,只修改相關公式區塊,編譯後說明剩餘錯誤或超寬情形。
核對 Agent 的原始碼變更與本次編譯結果。仍看得到舊 PDF 不代表最新建置成功。逐項比對原式後,再下載 PDF 或 LaTeX 專案,用於投稿或回到本機編輯。
延伸閱讀:多行公式與對齊、編號與參照、EasyLaTeX 入門、編譯錯誤排查。