Latex 对齐语法

Latex alignat syntax

为了在 Latex 中对齐几个方程,我写了这样的代码:

\begin{alignat*}{7}
    d &= \frac{1}{1 + 0.2316419x} & \quad & a_1 &= 0.31938153 & \quad & a_2 &= -0.356563782 \
    a_3 &= 1.781477937 & \quad & a_4 &= -1.821255978 & \quad & a_5 &= 1.330274429
\end{alignat*}

我得到了这样的东西。

我不明白为什么a_1和'='之间有一个space。你能告诉我如何消除 space 吗?谢谢你的时间。

您可以使用以下方法:

\begin{alignat*}{3}
    & d   = \frac{1}{1 + 0.2316419x}  \quad && a_1  = 0.31938153   \quad && a_2 = -0.356563782 \
    & a_3 = 1.781477937               \quad && a_4  = -1.821255978 \quad && a_5 = 1.330274429
\end{alignat*}

结果为:

Another question about alginat 有一个答案解释了会发生什么 (https://tex.stackexchange.com/questions/49014/aligning-equations-with-text-with-alignat)。

想法是 alginat 使用 rl 比对结构。这意味着第一列右对齐,第二列左对齐。这就是发生在你身上的事情,因为“a_1”是左对齐的,而“= 0.31938153”是右对齐的。由于下面一行中的负号,这会创建不需要的 space.

要解决这个问题,正如 xiawi 指出的那样,您只需添加另一列即可。 Alignat 不会添加额外的 space,因此这不会弄乱您的间距,并使两列左对齐。但是,如果要保留 space 以强调符号差异,也可以将等号移到上一列。