You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mathjax多行公式对齐异常求助:如何精准对齐&符号

解决Mathjax多行公式多对齐点错位问题

问题原因

你当前使用的aligned环境中,多个对齐点默认采用交替右/左对齐规则:第一个&后的内容左对齐,第二个&后的内容右对齐,以此循环。这就导致第二列的+号被设置为右对齐,出现错位。

解决方案

方法1:使用alignat环境(推荐)

alignat可以自定义对齐列数,强制所有目标位置左对齐,且不会添加额外空白。代码示例:

\begin{alignat*}{4}
\sum_{i=1}^{k} y_i\times \text{Pr}(Y=y_i) 
&= y_1\times\text{Pr}(Y=y_1) 
&&+ y_2\times\text{Pr}(Y=y_2) 
&&+ y_3\times \text{Pr}(Y=y_3) 
&&+ y_4\times \text{Pr}(Y=y_4) \\ 
&= `r vals[1]`\times `r probs[1]` 
&&+ `r vals[2]`\times `r probs[2]` 
&&+ `r vals[3]`\times `r probs[3]` 
&&+ `r vals[4]`\times `r probs[4]` 
\end{alignat*}
  • alignat*表示不生成公式编号;
  • {4}对应4组需要对齐的项;
  • 每组对齐用&&分隔,确保所有+号左对齐,精准匹配对齐点。

方法2:调整aligned环境的对齐标记

在原有aligned基础上,给每个+号前添加{}(保证运算符间距正确),并确保&后的内容左对齐:

\begin{aligned}
\sum_{i=1}^{k} y_i\times \text{Pr}(Y=y_i) 
&= y_1\times\text{Pr}(Y=y_1) 
&{}+ y_2\times\text{Pr}(Y=y_2) 
&{}+ y_3\times \text{Pr}(Y=y_3) 
&{}+ y_4\times \text{Pr}(Y=y_4) \\ 
&= `r vals[1]`\times `r probs[1]` 
&{}+ `r vals[2]`\times `r probs[2]` 
&{}+ `r vals[3]`\times `r probs[3]` 
&{}+ `r vals[4]`\times `r probs[4]` 
\end{aligned}
  • {}让+作为二元运算符保留正确间距;
  • 利用aligned偶数位对齐点左对齐的特性,让所有+号处于同一垂直位置。

内容的提问来源于stack exchange,提问作者Alex Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:32:08