
我想將一些方程式與等號對齊,所以我寫了這樣的:
\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}
這會以 analign*
的形式建構 an array
,並將內容放在等號兩側的零寬度框中。因此,方程式似乎以 為中心=
。
請注意\rlap
和\llap
使用\makebox
,它以文字模式插入其內容。因此,透過和列類型$
的自動構造切換回數學模式。L
R
答案2
我遇到了類似的問題,但我也想放置我的最終(更長)方程在盒子裡。對於我使用的對齊框\盒裝來自數學工具。使用上面@Werner解決方案中的概念,我找到了一個解決方案中心,圍繞“=”對齊,盒裝方程,即將方程式的每一邊放置另一邊的文字為\幻影文字.這樣,方程式就可以變得對稱,而無需使用 \rlap 來弄亂盒子。
我知道這並不完全是原始帖子所要求的,但我認為這將是一個非常有用的補充,因為沒有很多帖子可以討論中心對齊的概念。
另外,作為額外的內容,我還提供了一個簡單的方法增加 \Aboxed 填充,我在網路上找不到任何地方。這個想法是使用一個 0 寬度規則進行 y 填充,使用兩個 0 高度規則進行 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}
這是我想要達到的結果: