このalignat環境で何が起こっているのですか?[複製]

Nov 25 2020

の引数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*}

3つの表示列があります。ただし、これは機能せず、奇妙な間隔が生成されます。いじくり回してみると、次のコードが最初に望んでいた外観を実現していることがわかりました(唯一の違いは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*}

私はここで何を誤解していますか?

回答

2 Vincent Nov 25 2020 at 22:42

列数のしくみ

amsmathのドキュメント(8ページ)に記載されているように、

バリアント環境でalignatは、方程式間の水平方向のスペースを明示的に指定できます。この環境では、「方程式の列」の数(左右に整列された列のペアの数。引数はペアの数)という1つの引数を取ります。&任意の行のsの最大数を数え、1を加算し、2で除算します。 。

配置のしくみ

各方程式の列は1つ&に整列され、次の列から別の列で分離され&ます。別の言い方をすれば、環境を配列と考えると、配列の列は交互に右揃えと左揃えになります。これを説明するのは少し奇妙です。配列と考えると、「方程式の列」と環境の列を区別する必要があるからです。これらの配列列のペアは、方程式の列を作成します。

例に戻る

これが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*}

ここでは3つの方程式列を指定しますが、実際に使用されるのは2つだけです。1つは、\impliesに、もう1つは等式が配置されます。実際、3つ&のを使用しているため、fromからドキュメントまでの計算を使用すると、2つの列が得られます。

最初の方程式の列は、概略的には、

   \quad P_{2}(x)
\implies \quad

の左側P_{2}(x)と右側に配置され\impliesます。各行で、2番目の&列は最初の方程式の列を次の列から分離します。

= (2)(2x-1)(x-1)-20x(x-1)+4x(2x-1)
= \boxed{-8x^{2}+10x+2}

これは、方程式の列を作成するペアの最初の部分であるため、右側に配置されています。

2番目の例はまったく同じですが、2番目の方程式の列が等号に配置されている点が異なります。これは、方程式がペアの2番目の部分に配置され、方程式の列全体が作成され、最初の部分が空になるためです。配置は良好に見えますが、実際にはalignat、列の間にスペースを入れていないためです。

最初のP_{2}(x)方程式の列だけで、2番目の方程式の列にもパーツを配置する方が理にかなっていると思います\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}

出力は2番目の例と同じですが、コードは実際に方程式の内容とより一貫性があります。