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
相关产品推荐
相关产品推荐

