我想在显示数学中对齐一些多项式的项。例如,在以下内容中:
\begin{align}
e &= x^5 + x \\
f &= x^5 + x^4 + x^3 + x^2 + x + 1 \\
g &= x^4 + x^2 + 1 \\
h &= x^5 + x^3 + x^2 + x \\
i &= x^4 + x^3 \\
\end{align}
我希望它看起来像代码中的对齐方式。但我似乎无法弄清楚将“&”符号放在哪里才能正确显示。有人能帮忙吗?
答案1
打字很无聊,但很有效
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\begin{equation*}
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.2} % like cases
\begin{array}{
r
>{{}}c<{{}} % equals
r % degree 5
>{{}}c<{{}} % plus
r % degree 4
>{{}}c<{{}} % plus
r % degree 3
>{{}}c<{{}} % plus
r % degree 2
>{{}}c<{{}} % plus
r % degree 1
>{{}}c<{{}} % plus
r % degree 0
}
e & = & x^5 & & & & & & & & & + & 1 \\
f & = & x^5 & + & x^4 & + & x^3 & + & x^2 & + & x & + & 1 \\
g & = & & & x^4 & & & + & x^2 & & & + & 1 \\
h & = & x^5 & & & + & x^3 & + & x^2 & + & x & & \\
i &= & & & x^4 & + & x^3 & & & & & &
\end{array}
\end{equation*}
\end{document}
列间距设置为零,间距是通过在关系和运算符号周围添加空原子获得的。
答案2
mathenv
这是我使用而不是的原因之一amsmath
:更灵活的方程数组。这个例子非常像 egreg 的例子,但更短,并且可以选择省略来*
获得编号方程:
\documentclass{article}
\usepackage{mathenv}
\begin{document}
\begin{eqnarray*}[r*{6}{>{{}}l<{{}}r}]
e & = & x^5 & & & & & & & & & + & 1 \\
f & = & x^5 & + & x^4 & + & x^3 & + & x^2 & + & x & + & 1 \\
g & = & & & x^4 & & & + & x^2 & & & + & 1 \\
h & = & x^5 & & & + & x^3 & + & x^2 & + & x & & \\
i &= & & & x^4 & + & x^3 & & & & & &
\end{eqnarray*}
\end{document}
输出:
答案3
amsmath
也可以alignat
这样做:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{7}
e & ={} & x^5 & & & & & & & & & {}+{} & 1 \\
f & ={} & x^5 & {}+{} & x^4 & {}+{} & x^3 & {}+{} & x^2 & {}+{} & x & {}+{} & 1 \\
g & ={} & & & x^4 & & & {}+{} & x^2 & & & {}+{} & 1 \\
h & ={} & x^5 & & & {}+{} & x^3 & {}+{} & x^2 & {}+{} & x & & \\
i & ={} & & & x^4 & {}+{} & x^3 & & & & & &
\end{alignat}
\end{document}