在 MathJax 中,alignedalignalign* 是用于对齐多行数学公式的环境,但它们在功能、使用场景和编号规则上有明确区别:


1. 功能与使用场景

align 环境
用于独立排版多行对齐的数学公式,每行默认自动编号。适用于需要逐行编号且公式块独立存在的场景。

1
2
3
4
\begin{align}
x &= y + z \label{eq1} \\
a &= b + c \label{eq2}
\end{align}
输出示例: > x = y + z  (1)
> a = b + c  (2)

align* 环境
align 类似,但不生成任何行号。适用于需要对齐但无需编号的场景,例如推导过程或临时展示。

1
2
3
4
\begin{align*}
x &= y + z \\
a &= b + c
\end{align*}
输出示例: > x = y + z
> a = b + c

aligned 环境
嵌套在 equation 等父环境内,用于对齐公式块中的多行内容,整体共享一个编号。适用于将多行公式视为一个逻辑单元的场景。

1
2
3
4
5
6
\begin{equation}
\begin{aligned}
x &= y + z \\
a &= b + c
\end{aligned}
\end{equation}
输出示例: > x = y + z  (3)
> a = b + c


2. 编号规则

align:每行独立编号,可通过 \nonumber 取消特定行编号。
align*:完全无编号,简化文档排版。
aligned:编号由外层环境(如 equation)控制,整个块共享一个编号。


3. 嵌套与组合

aligned 的灵活性
可与 equationgather 等环境结合,实现复杂公式的对齐和编号。例如,在单编号的 equation 中嵌入多行对齐公式:

1
2
3
4
5
6
\begin{equation}
\begin{aligned}
v_t &= \frac{\theta_{t-0} + \theta_{t-1} + \cdots + \theta_{t-(n-1)}}{n} \\
&= \frac{1}{n} \sum_{i=0}^{n-1} \theta_{t-i}
\end{aligned}
\end{equation}
align 的限制
通常不嵌套在 equation 中,因其本身支持多行独立编号。


4. 与其他环境的对比

eqnarray 的替代
alignalignedamsmath 宏包提供,比 LaTeX 原生的 eqnarray 更灵活且间距更合理,推荐优先使用。
MathJax 的兼容性
MathJax 继承 LaTeX 语法规则,上述区别在网页数学公式渲染中同样适用。


总结与选择建议

环境 编号规则 适用场景
align 每行独立编号 需逐行编号的多行公式
align* 无编号 无需编号的对齐公式块
aligned 整体共享一个外层编号 嵌套在父环境内的多行对齐公式块

选择时,优先考虑是否需要编号以及公式块的独立性。对于复杂场景,可结合 alignedequation 实现灵活控制。