居中对齐

居中对齐

我想将一些等式对齐到等号,因此我写了以下内容:

\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切换回数学模式。$LR

答案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}

以下是我想要实现的结果:

在此处输入图片描述

相关内容