多行公式与对齐
使用 align 将多行公式在等号、加号或其他位置对齐;使用 align* 创建不编号版本。长推导应按逻辑步骤换行,而不是缩小字体或强行塞进一行。
EasyLaTeX 编译器设置:XeLaTeX + ctex;需加载 amsmath。
基本对齐
在 align 中,& 标记对齐位置,\\ 结束一行:
\begin{align}
(x+1)^2 &= x^2 + 2x + 1, \\
(x-1)^2 &= x^2 - 2x + 1.
\end{align}
上例将两个等号对齐,并为每一行生成编号。对齐点一般放在等号、关系符或运算符之前,不要把 & 当作普通字符写进公式。
不编号的对齐
不需要引用的推导使用带星号版本:
\begin{align*}
f(x) &= x^2 + 2x + 1 \\
&= (x+1)^2.
\end{align*}
第二行前的空格只让源文件更易读,不影响 PDF;真正决定对齐的是 &。
一组公式只编号一次
整组推导只需要一个编号时,使用 equation 包住 aligned:
\begin{equation}
\begin{aligned}
f(x) &= x^2 + 2x + 1 \\
&= (x+1)^2.
\end{aligned}
\end{equation}
aligned 只能嵌在数学环境中;它本身不生成独立编号。反过来,align 已经是独立显示环境,不应再嵌套进 equation。
在公式内部对齐
对多项定义、约束或说明可使用 aligned:
\[
\begin{aligned}
x + y &= 10, \\
x - y &= 2.
\end{aligned}
\]
这种写法适合不需要编号的成组公式。若每行都要编号,改用 align。
换行与标记
某一行不希望显示编号时,在行末添加 \notag:
\begin{align}
f(x) &= x^2 + 2x + 1 \notag \\
&= (x+1)^2.
\end{align}
需要解释每一步时,把中文解释放在公式外,或使用 \text{...}。不要通过在等号后堆叠大量文字来让公式承担段落说明。
常见误用
& 数量不一致
同一个 align 环境的各行应有相同的对齐结构。报错 Extra alignment tab has been changed to \cr 时,检查某一行是否多写或少写了 &。
在 equation 中嵌套 align
align 自己会显示并编号。若只要一个编号,使用 equation 与 aligned 的组合。
使用 eqnarray
eqnarray 是旧环境,运算符周围的间距不理想。新文档使用 amsmath 提供的 align、gather、multline 等环境。
完整示例
\documentclass[UTF8,a4paper,12pt]{ctexart}
\usepackage{amsmath}
\begin{document}
每一行编号:
\begin{align}
(x+1)^2 &= x^2 + 2x + 1, \\
(x-1)^2 &= x^2 - 2x + 1.
\end{align}
整组只编号一次:
\begin{equation}
\begin{aligned}
f(x) &= x^2 + 2x + 1 \\
&= (x+1)^2.
\end{aligned}
\end{equation}
\end{document}