我的理解是,的参数alignat
是列数,我们用它&
来分隔它们。我尝试了以下代码:
\begin{alignat*}{3}
\quad & P_{2}(x) &= (2)(2x-1)(x-1)-20x(x-1)+4x(2x-1)\\
\implies & \quad &= \boxed{-8x^{2}+10x+2}
\end{alignat*}
它有三列可见。但是,这不起作用,会产生奇怪的间距。经过一番修改,我发现以下代码实现了我最初想要的外观(唯一的区别是 double &&
):
\begin{alignat*}{3}
\quad & P_{2}(x) &&= (2)(2x-1)(x-1)-20x(x-1)+4x(2x-1)\\
\implies & \quad &&= \boxed{-8x^{2}+10x+2.}
\end{alignat*}
我在这里误解了什么?
答案1
列数如何运作
正如amsmath
文档(第 8 页),
变体环境
alignat
允许明确指定方程之间的水平间距。此环境接受一个参数,即“方程列”的数量(右对齐列和左对齐列的对数;参数是对数):计算&
任意行中的最大 s 数,加 1 并除以 2。
对齐的工作原理
每个方程列都与一个 对齐&
,并与下一个方程列之间由另一个 分隔&
。另一种说法是,如果您将环境视为一个数组,则数组的列交替右对齐和左对齐。这有点难以解释,因为如果您将其视为一个数组,则必须区分“方程列”和环境列。一对这样的数组列构成一个方程列。
回到你的例子
这是alignat
您的第一个示例中的环境。
\begin{alignat*}{3}
\quad & P_{2}(x) &= (2)(2x-1)(x-1)-20x(x-1)+4x(2x-1)\\
\implies & \quad &= \boxed{-8x^{2}+10x+2}
\end{alignat*}
这里指定了三个方程列,但实际上只使用了两个:一个用于\implies
,另一个用于放置等式。实际上,您使用了三个&
,因此使用从 到文档的计算我们得到了两列。
第一个方程式仅以示意图形式显示,
\quad P_{2}(x)
\implies \quad
它与 的左侧P_{2}(x)
和 的右侧对齐\implies
。在每一行中,第二个分隔符&
将第一个方程列与下一个方程列分开,后者仅
= (2)(2x-1)(x-1)-20x(x-1)+4x(2x-1)
= \boxed{-8x^{2}+10x+2}
并且其在右侧对齐,因为它是构成方程列的一对元素中的第一个部分。
您的第二个示例完全相同,只是第二个方程列现在在等号上对齐,因为方程放在组成整个方程列的对的第二部分,第一部分为空。对齐看起来不错,但实际上只是因为alignat
列之间没有任何空格。
P_{2}(x)
我认为将该部分也放在第二个等式列中更有意义,而只将其\implies
放在第一个等式列中。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
& & P_{2}(x) &= (2)(2x-1)(x-1)-20x(x-1)+4x(2x-1)\\
& \implies & &= \boxed{-8x^{2}+10x+2}
\end{alignat*}
\end{document}