在 MathJax 中,aligned
、align
和 align*
是用于对齐多行数学公式的环境,但它们在功能、使用场景和编号规则上有明确区别:
1. 功能与使用场景
• align
环境
用于独立排版多行对齐的数学公式,每行默认自动编号。适用于需要逐行编号且公式块独立存在的场景。
1
2
3
4\begin{align}
x &= y + z \label{eq1} \\
a &= b + c \label{eq2}
\end{align}
> a = b + c (2)
• align*
环境
与 align
类似,但不生成任何行号。适用于需要对齐但无需编号的场景,例如推导过程或临时展示。
1
2
3
4\begin{align*}
x &= y + z \\
a &= b + c
\end{align*}
> 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}
> a = b + c
2. 编号规则
• align
:每行独立编号,可通过 \nonumber
取消特定行编号。
• align*
:完全无编号,简化文档排版。
• aligned
:编号由外层环境(如 equation
)控制,整个块共享一个编号。
3. 嵌套与组合
• aligned
的灵活性
可与 equation
、gather
等环境结合,实现复杂公式的对齐和编号。例如,在单编号的 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
的替代
align
和 aligned
由 amsmath
宏包提供,比 LaTeX 原生的 eqnarray
更灵活且间距更合理,推荐优先使用。
• MathJax 的兼容性
MathJax 继承 LaTeX 语法规则,上述区别在网页数学公式渲染中同样适用。
总结与选择建议
环境 | 编号规则 | 适用场景 |
---|---|---|
align |
每行独立编号 | 需逐行编号的多行公式 |
align* |
无编号 | 无需编号的对齐公式块 |
aligned |
整体共享一个外层编号 | 嵌套在父环境内的多行对齐公式块 |
选择时,优先考虑是否需要编号以及公式块的独立性。对于复杂场景,可结合 aligned
与 equation
实现灵活控制。