我想将一些等式对齐到等号,因此我写了以下内容:
\begin{align}
-3z &=-9\\
z &= 3\\
-3y-3*3 &= 3\\
y &=-4\\
2x+8*(-4)+4*3 &= 2\\
x &=11
\end{align}
然而,因为一个方程比其他方程长得多,所以所有方程都出现在页面的右侧:
如何才能使等号出现在中间,同时仍使所有等式与等号对齐?
答案1
一个简单的方法是复制最宽对面的入口(左侧或右侧),可以容纳一些重叠:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\lipsum[2]
\begin{align*}
-3z &= -9 \\
z &= 3 \\
-3y-3*3 &= 3 \\
y &= -4 \\
2x+8*(-4)+4*3 &= 2 \\
x &= 11
\end{align*}
\lipsum[2]
\begin{align*}
-3z &= -9 \\
z &= 3 \\
-3y-3*3 &= 3 \\
y &= -4 \\
2x+8*(-4)+4*3 &= \rlap{2}\phantom{2x+8*(-4)+4*3} \\
x &= 11
\end{align*}
\lipsum[2]
\end{document}
或者,如果您不关心方程的编号,那么您可以使用以下构造:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{array}% http://ctan.org/pkg/array
\newsavebox{\mymathbox}
\newcolumntype{R}{>{\begin{lrbox}{\mymathbox}$}r<{$\end{lrbox}\llap{\usebox{\mymathbox}}}}%
\newcolumntype{L}{>{\begin{lrbox}{\mymathbox}$}l<{$\end{lrbox}\rlap{\usebox{\mymathbox}}}}%
\begin{document}
\lipsum[2]
\begin{align*}
-3z &= -9 \\
z &= 3 \\
-3y-3*3 &= 3 \\
y &= -4 \\
2x+8*(-4)+4*3 &= 2 \\
x &= 11
\end{align*}
\lipsum[2]
\[
\renewcommand{\arraystretch}{1.2}
\begin{array}{R@{{}={}}L}
-3z & -9 \\
z & 3 \\
-3y-3*3 & 3 \\
y & -4 \\
2x+8*(-4)+4*3 & 2 \\
x & 11
\end{array} \]
\lipsum[2]
\end{document}
这将构造一个align*
形式的array
,并将内容放在零宽度框中的等号两侧。因此,等式似乎以 为中心=
。
请注意,\rlap
和\llap
使用,这会将其内容插入到文本模式中。因此,通过和列类型的自动构建\makebox
切换回数学模式。$
L
R
答案2
我遇到了类似的问题,但我还想把我的最后一个(更长的)方程式在盒子里。对于对齐的框我使用\Aboxed来自 mathtools。使用上面 @Werner 的解决方案中的概念,我找到了一个解决方案居中,围绕“=”对齐,带框的等式,即在等式的两边分别放置另一边的文本\幻影文本。这样,方程式就可以变得对称,而无需使用 \rlap 来弄乱盒子。
我知道这并不是原始帖子所要求的,但我认为这是一个非常有用的补充,因为没有太多帖子讨论中心对齐的概念。
另外,我还额外提供了一个简单的方法增加 \Aboxed 填充,我在网上找不到。这个想法是使用一个 0-widht-rule 作为 y 填充,使用两个 0-height-rule 作为 x 填充。偏移量应位于字体大小的负一半,在我的情况下是 12pt/2=-6pt。
至于 y 填充,出现 20pt 是因为我想要上面 4pt,下面 pt。这样就得到 4pt+4pt+12pt = 20pt,其中 12pt 是字体大小。
这是我的 MWE:
\documentclass[12pt]{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{mathtools} % for Aboxed, to box in alignat environment
\begin{document}
\lipsum[2]
\begin{align*}
-3z &= -9 \\
z &= 3 \\
-3y-3*3 &= 3 \\
y &= -4 \\
2x+8*(-4)+4*3 &= 2 \\
x &= 11
\end{align*}
\lipsum[2]
\begin{align}
-3z &= -9\nonumber \\
z &= 3\nonumber \\
-3y-3*3 &= 3\nonumber \\
y &= -4\nonumber \\
\phantom{2\implies} \Aboxed{\rule[-6pt]{4pt}{0pt}2x+8*(-4)+4*3 &=\rule[-6pt]{0pt}{20pt}2\rule[-6pt]{4pt}{0pt}}\phantom{2x+8*(-4)+4*3 \implies}
\end{align}
\end{document}
以下是我想要实现的结果: