我有一个很长的方程式,超出了整页的范围,我想知道是否有人可以帮助我正确对齐它。
\begin{align*}
&(q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8) \\
&=q^{1+2}+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}+q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8} \\
&=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}
\end{align*}
如果最后一行像其他方程式一样被编号会很有帮助,但这不是必需的。
答案1
您可以将方程的一部分放在下一行,并在前导空格中添加\quad
或\qquad
。但是,我更喜欢使用 来alignat
对齐二元运算符,我认为这会使其更易于阅读:
笔记:
- 解决
alignat
方案需要使用,\mathclap
以便这些方程不会影响对齐。这在包裹mathtools
(已包括amsmath
)。 - 根据 barbara beeton 的建议,我在 的
{}
最后添加了一个。这使得 成为二元运算符并产生正确的对齐。=
\mathclap
=
代码:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
Use \verb|\quad|
\begin{align*}
&(q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8) \\
&\quad=q^{1+2}+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}\\
&\quad+ q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8} \\
&\quad=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}
\end{align*}
or use \verb|\qquad|
\begin{align*}
&(q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8) \\
&\quad=q^{1+2}+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}\\
&\qquad+ q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8} \\
&\quad=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}
\end{align*}
Alternatively, you could use \verb|alignat*|
\begin{alignat*}{4}
&\mathrlap{(q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8)} \\
&\quad=q^{1+2} &&+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}\\
&\quad&&+ q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8} \\
&\quad\mathrlap{{}=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}}
\end{alignat*}
\end{document}
答案2
这是一个解决方案,它采用不同的方法来演示索引的乘法,通过将它们排列起来使总数更加明显。我个人喜欢使用 Knuth 的halign
结构来做这种事情,因为我认为它更简单,但如果你刚开始,你可能更喜欢使用更标准的 LaTeX 工具。所以这里有两个版本。
\documentclass{article}
\usepackage{mathtools}
% so we can put the equation number at the bottom
\newcommand\tagmehere{\addtocounter{equation}{1}\tag{\theequation}}
\begin{document}
First using plain TeX facilities, embedded in LaTeX.
\begin{equation}
\vbox{\openup3pt\halign{\quad#&&${}#$\hfil\cr
\omit $\left(q^1 +q^3 +q^5 +q^7\right)\left(q^2 +q^4 +q^6 +q^8\right)$\hidewidth\cr
\noalign{\smallskip}
& =q^{1+2} & +q^{1+4} & +q^{1+6} & +q^{1+8} \cr
& & +q^{3+2} & +q^{3+4} & +q^{3+6} & +q^{3+8} \cr
& & & +q^{5+2} & +q^{5+4} & +q^{5+6} & +q^{5+8} \cr
& & & & +q^{7+2} & +q^{7+4} & +q^{7+6} & +q^{7+8} \cr
\noalign{\smallskip}
& =q^3 & +2q^5 & +3q^7 & +4q^9 & +3q^{11} & +2q^{13} & +q^{15} \cr
}}
\end{equation}
And now using an \texttt{alignat} environment
\begin{alignat*}{8}
\mathrlap{\left(q^1 +q^3 +q^5 +q^7\right)\left(q^2 +q^4 +q^6 +q^8\right)}\\[\smallskipamount]
& \quad && =q^{1+2} && +q^{1+4} && +q^{1+6} && +q^{1+8} \\
& && && +q^{3+2} && +q^{3+4} && +q^{3+6} && +q^{3+8} \\
& && && && +q^{5+2} && +q^{5+4} && +q^{5+6} && +q^{5+8} \\
& && && && && +q^{7+2} && +q^{7+4} && +q^{7+6} && +q^{7+8}\\[\smallskipamount]
& && =q^3 && +2q^5 && +3q^7 && +4q^9 && +3q^{11} && +2q^{13} && +q^{15}\tagmehere
\end{alignat*}
\end{document}
笔记
原作者希望方程编号位于末尾。在纯 TeX 版本中,这自然会发生,因为我已将对齐包裹在 a 中
vbox
(高度很大但深度不大),并且方程编号与基线对齐。如果您希望数字居中,则可以使用 avcenter
而不是 the,vbox
以便基线位于中间。在alignat
版本中,我们必须手动输入标签以将其放在底部,但我使用一个小宏来巧妙地更新方程计数器(借用自这里)。我考虑过alignedat
在方程中使用 - 这会将方程数字置于中间,但这并不是我真正想要的。在普通解决方案中,
\openup3pt
在行之间添加一些额外的空间,这样它们看起来会更好一些,因为所有上标都很好。我习惯\noalign{\smallskip}
在需要的地方插入一些额外的空间。在 LaTex 版本中,我们不需要额外的openup
空间,因为这是自动完成的,我们只需使用行尾标记的可选参数即可插入额外的行空间。需要
alignat
所有这些 double&&
,因为它假设我有一堆方程式,因此它使交替列左右对齐。 在 中没有这样的麻烦halign
。
答案3
从@PeterGrill 的答案开始,使用\MoveEqLeft
提供的命令mathtools
。尽管如此,你还是无法摆脱最后一个\quad
或\qquad
,但我认为\MoveEqLeft
在这里 很有用。
\documentclass{scrartcl}
\usepackage{mathtools}
\begin{document}
\begin{align}
\MoveEqLeft (q^1 + q^3 + q^5 + q^7) (q^2 + q^4 + q^6 + q^8) \nonumber \\
&= q^{1+2} + q^{1+4} + q^{1+6} + q^{1+8} + q^{3+2} + q^{3+4} + q^{3+6} + q^{3+8} \nonumber \\
&\qquad + q^{5+2} + q^{5+4} + q^{5+6} + q^{5+8} + q^{7+2} + q^{7+4} + q^{7+6} + q^{7+8} \nonumber \\
&= q^3 + 2q^5 + 3q^7 + 4q^9 + 3q^{11} + 2q^{13} + q^{15}
\end{align}
\end{document}
关于\nonumber
方法……我没什么可说的,它有效,但也许还有其他更好的解决方案。
答案4
这里有三种编号方法,均使用\MoveEqLeft
。显示一组未编号的方程式,或除中间方程式外所有方程式均有编号,或整个方程式组只有一个编号。
\MoveEqLeft
是mathtools
专门针对对齐中第一行较长的情况而定义的。我在略有不同的上下文中使用它,但总体思路是一样的:这个命令使用replaces
& 符号,默认情况下将第一行移动 2 个 em;这里我使用可选参数,即第一行移动的 em 数。实际上,它可以应用于对齐的任何行,但我认为它只适用于第一行。
第二个想法是将第二行放在一个multlined
环境中,也在 mathtools 中定义。
\documentclass[a4paper, 11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[showframe, nomarginpar]{geometry}
\usepackage{mathtools}
\begin{document}
\begin{align*}
\MoveEqLeft[4] (q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8) \\
&=\begin{multlined}[t]
q^{1+2}+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}\\+ q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8}
\end{multlined}\\
&=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}
\end{align*}
\begin{align}
\MoveEqLeft[4] (q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8) \\
&=\begin{multlined}[t] \notag
q^{1+2}+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}\\+ q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8}
\end{multlined}\\
&=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}
\end{align}
\begin{equation}
\begin{aligned}
\MoveEqLeft[4] (q^1+q^3+q^5+q^7)(q^2+q^4+q^6+q^8) \\
&=\begin{multlined}[t]
q^{1+2}+q^{1+4}+q^{1+6}+q^{1+8}+q^{3+2}+q^{3+4}+q^{3+6}+q^{3+8}\\+ q^{5+2}+q^{5+4}+q^{5+6}+q^{5+8}+q^{7+2}+q^{7+4}+q^{7+6}+q^{7+8}
\end{multlined}\\
&=q^3+2q^5+3q^7+4q^9+3q^{11}+2q^{13}+q^{15}
\end{aligned}
\end{equation}
\end{document}