跳转到正文
EasyLaTeXDocs

多行公式与对齐

使用 align 将多行公式在等号、加号或其他位置对齐;使用 align* 创建不编号版本。长推导应按逻辑步骤换行,而不是缩小字体或强行塞进一行。

EasyLaTeX 编译器设置:XeLaTeX + ctex;需加载 amsmath。

基本对齐

在 align 中,& 标记对齐位置,\\ 结束一行:

latex
\begin{align}
  (x+1)^2 &= x^2 + 2x + 1, \\
  (x-1)^2 &= x^2 - 2x + 1.
\end{align}

上例将两个等号对齐,并为每一行生成编号。对齐点一般放在等号、关系符或运算符之前,不要把 & 当作普通字符写进公式。

不编号的对齐

不需要引用的推导使用带星号版本:

latex
\begin{align*}
  f(x) &= x^2 + 2x + 1 \\
       &= (x+1)^2.
\end{align*}

第二行前的空格只让源文件更易读,不影响 PDF;真正决定对齐的是 &。

一组公式只编号一次

整组推导只需要一个编号时,使用 equation 包住 aligned:

latex
\begin{equation}
\begin{aligned}
  f(x) &= x^2 + 2x + 1 \\
       &= (x+1)^2.
\end{aligned}
\end{equation}

aligned 只能嵌在数学环境中;它本身不生成独立编号。反过来,align 已经是独立显示环境,不应再嵌套进 equation。

在公式内部对齐

对多项定义、约束或说明可使用 aligned:

latex
\[
  \begin{aligned}
    x + y &= 10, \\
    x - y &= 2.
  \end{aligned}
\]

这种写法适合不需要编号的成组公式。若每行都要编号,改用 align。

换行与标记

某一行不希望显示编号时,在行末添加 \notag:

latex
\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 等环境。

完整示例

latex
\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}
多行公式与对齐 | EasyLaTeX | EasyLaTeX