我在尝试在align*
环境中对齐一些方程式时遇到了一些问题。输出应该是这样的:
如您所见,所有+
符号都垂直对齐,后面的字母也是如此。我尝试使用环境align*
来获得类似的结果,但我无法对齐符号和字母。这是我的代码和输出:
\begin{align*}
a &+2\alpha az &+3\alpha^2 az^2 &+4\alpha^3az^3 &+5\alpha^4az^4 +\mbox{ecc.}\\
&+bz &+2\alpha bz^2 &+3\alpha^2 bz^3 &+4\alpha^4bz^4,
\end{align*}
有没有办法得到更优雅的结果,而不需要总数中的空格?谢谢!
答案1
我认为你不需要中心化,而是需要是彼此对齐。
为了避免&+{}&
为每个加法符号都输入一次,我定义了一个方便的快捷方式。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
With all variables spelled out
\begin{equation*}
\begingroup\lccode`~=`+ \lowercase{\endgroup\edef~}{&\mathchar\the\mathcode`+{}&}
\mathcode`+=\string"8000
\begin{alignedat}{6}
a + 2\alpha az + 3\alpha^2 az^2 + 4\alpha^3 az^3 + 5\alpha^4 az^4 + \text{ecc.}\\
+ bz + 2\alpha bz^2 + 3\alpha^2 bz^3 + 4\alpha^4 bz^4 &,
\end{alignedat}
\end{equation*}
and like the original
\begin{equation*}
\begingroup\lccode`~=`+ \lowercase{\endgroup\edef~}{&\mathchar\the\mathcode`+{}&}
\mathcode`+=\string"8000
\begingroup\lccode`~=`* \lowercase{\endgroup\def~}#1{\hphantom{#1}}
\mathcode`*=\string"8000
\begin{alignedat}{6}
a + 2\alpha az + 3\alpha^2 az^2 + 4\alpha^3 az^3 + 5\alpha^4 az^4 + \text{etc.,}\\
+ b*{z} + 2\alpha b*{z^2} + 3\alpha^2 b*{z^3} + 4\alpha^4 b*{z^4}
\end{alignedat}
\end{equation*}
\end{document}
答案2
align 提供交替的左对齐和右对齐,但在这里我认为你想要居中,所以
\documentclass{article}
\usepackage{array,amsmath}
\begin{document}
\[
\begin{array}{*{20}{@{}>{{}}c<{{}}@{}}}
a &+&2\alpha az &+&3\alpha^2 az^2 &+&4\alpha^3az^3 &+&5\alpha^4az^4 &+&\mbox{ecc.}\\
&+&bz &+&2\alpha bz^2 &+&3\alpha^2 bz^3 &+&4\alpha^4bz^4,
\end{array}
\]
\end{document}
答案3
alignat*
以下是与环境和包相关的方法eqparbox
:
\documentclass{article}
\usepackage{mathtools, eqparbox}
\newcommand{\eqmathbox}[2][T]{\eqmakebox[#1]{$\displaystyle#2$}}
\begin{document}
\begin{alignat*}{4}
a &+\eqmathbox{2\alpha az} & & +\eqmathbox[T2]{3\alpha^2 az^2}& & + \eqmathbox[T3]{4\alpha^3az^3} & & +\eqmathbox[T4]{5\alpha^4az^4} +\mbox{\&c.}\\
&+\eqmathbox{bz} & & +\eqmathbox[T2]{2\alpha bz^2} & & +\eqmathbox[T3]{3\alpha^2 bz^3} & & +\eqmathbox[T4]{4\alpha^4bz^4},
\end{alignat*}
\end{document}
答案4
相同array
但更简单且右对齐。我用\setlength{\arraycolsep}{0pt}
它来保持二元运算符的自然间距+
。
\documentclass[a4paper]{article}
\usepackage{amsmath,array}
\begin{document}
\[\setlength{\arraycolsep}{0pt}
\begin{array}{*6{>{{}}r<{{}}}}
a +& 2\alpha az +& 3\alpha^2 az^2 +& 4\alpha^3az^3 +& 5\alpha^4az^4 +& \mbox{ecc.},\\
+& bz +& 2\alpha bz^2 +& 3\alpha^2 bz^3 +& 4\alpha^4bz^4 \phantom{{}+{}}&
\end{array}
\]
\end{document}