# 多行公式 · 方程组、分段与推导对齐

> 一个方程组、一个分段函数、一串多步推导——怎么让它们的等号对齐、排得整整齐齐？靠 aligned、cases、gathered 这些环境，配合 & 对齐点和 \\ 换行。这一章讲透多行公式的对齐。

- 作者：David（道雾轩）
- 专栏：LaTeX 完全上手指南（https://daiw.org/manual/latex.md）
- 最后更新：2026-07-13
- 原文：https://daiw.org/manual/latex/multiline
- 转载与引用：请注明出处并附原文链接（https://daiw.org/about/copyright）

# 多行公式 · 方程组、分段与推导对齐

数学写作里，公式常常不止一行：一个方程组、一个分段函数、一串「等式接等式」的推导。这时最讲究的是**对齐**——所有等号排成一列，读起来才清爽。上一章矩阵用的 `&`（对齐）和 `\\`（换行），正是多行公式的同一套语言。

## 推导对齐：aligned + &

多步推导里，想让每行的**等号对齐**，用 `aligned` 环境，并在每个等号**前面**放一个 `&` 当对齐点：

```latex
$$
\begin{aligned}
(a+b)^2 &= a^2 + 2ab + b^2 \\
        &= a^2 + b^2 + 2ab
\end{aligned}
$$
```

$$
\begin{aligned}
(a+b)^2 &= a^2 + 2ab + b^2 \\
        &= a^2 + b^2 + 2ab
\end{aligned}
$$

<Callout type="info">
  **`&` 标记「对齐点」，而不是「分列」。** 在推导里，惯例是把 `&` 放在**等号左边**(`&=`)，于是所有 `=` 竖直对齐，第二行开头留空（只有 `&=`）表示「承接上一行」。这是数学推导最标准的排法——等号成一列，一眼看清每步做了什么。
</Callout>

## 方程组：aligned 也能做

方程组本质就是「几个等式对齐」，同样用 `aligned`（左边补个大括号更像方程组，用 `cases` 或 `\left\{`）：

```latex
$$
\begin{cases}
2x + 3y = 5 \\
x - y = 1
\end{cases}
$$
```

$$
\begin{cases}
2x + 3y = 5 \\
x - y = 1
\end{cases}
$$

`cases` 环境自带**左大括号**，是写方程组和分段函数最顺手的选择。

## 分段函数：cases 的主场

分段函数是 `cases` 最经典的用法——左边一个大括号，每行「值 + 条件」，中间用 `&` 分隔：

```latex
$$
f(x) = \begin{cases}
x^2, & x \geq 0 \\
-x,  & x < 0
\end{cases}
$$
```

$$
f(x) = \begin{cases}
x^2, & x \geq 0 \\
-x,  & x < 0
\end{cases}
$$

这里 `&` 又回到「分列」的角色：左列是取值、右列是条件。条件里的文字说明记得用 `\text`（见 [数学模式](https://daiw.org/manual/latex/math-modes)）：`& \text{当 } x > 0`。

## 居中不对齐：gathered

有时你只想让几行公式**各自居中**、不需要对齐，用 `gathered`：

```latex
$$
\begin{gathered}
E = mc^2 \\
F = ma
\end{gathered}
$$
```

$$
\begin{gathered}
E = mc^2 \\
F = ma
\end{gathered}
$$

每行独立居中，不像 `aligned` 那样按 `&` 对齐。适合罗列几个并列的、无需对齐的公式。

## 拆长公式：split

一个**太长放不下一行**的公式，想在某处折行、并让折行处对齐，用 `split`（通常嵌在 `aligned` 或编号环境里）：

```latex
$$
\begin{aligned}
S &= 1 + 2 + 3 + \cdots \\
  &\quad + (n-1) + n \\
  &= \frac{n(n+1)}{2}
\end{aligned}
$$
```

$$
\begin{aligned}
S &= 1 + 2 + 3 + \cdots \\
  &\quad + (n-1) + n \\
  &= \frac{n(n+1)}{2}
\end{aligned}
$$

折行的续行用 `\quad`（见 [数学间距](https://daiw.org/manual/latex/spacing)）缩进一点，视觉上表示「这行接着上面」。

<Callout type="warn">
  **关于 `align` 与本站的差异：** 在完整的 LaTeX 文档里，顶层的多行公式常用 `align` 环境（它会**自动给每行编号**）。但**本站(KaTeX)里，请把多行公式放进 `$$ ... $$`，并用 `aligned`（带 `-ed`）而不是 `align`**——KaTeX 不支持顶层 `align`、也不做自动编号。语法几乎一样，记得加那个 `-ed`。`gather` → `gathered` 同理。
</Callout>

## 小结与下一章

多行公式全靠 `&`（对齐 / 分列）和 `\\`（换行）这套语言：推导对齐用 `aligned`（`&` 放等号前）、方程组和分段函数用 `cases`（自带大括号）、只居中用 `gathered`、拆长公式用 `split`。记住本站要用 `aligned` 而非 `align`。

多行公式里已经出现了 `\quad` 这种「手动加空隙」的命令。数学间距是最后一块拼图——什么时候该加空、加多大，是让公式「呼吸顺畅」的收尾功夫。👉 [数学间距：让公式疏密得当](https://daiw.org/manual/latex/spacing)。

## 参考文献

- [1] Overleaf.「Aligning equations with amsmath.」https://www.overleaf.com/learn/latex/Aligning_equations_with_amsmath —— `align` / `aligned` / `cases` / `split`。
- [2] KaTeX.「Supported Functions — Environments.」https://katex.org/docs/supported.html#environments —— 本站可用多行环境。
