Выровнять по центру

Выровнять по центру

Я хочу выровнять некоторые уравнения по знакам равенства, поэтому я написал это:

\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 padding, который я не смог найти нигде в сети. Идея заключается в том, чтобы использовать одно правило 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}

И вот результат, которого я хотел добиться:

введите описание изображения здесь

Связанный контент