Выравнивание более двух столбцов с помощьюalignat?

Выравнивание более двух столбцов с помощьюalignat?

Рассмотрим этот MWE, модифицированный изВыравнивание условий в среде дел:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  f(x) = \left\{\begin{alignedat}{3}
    & mx^2 +nx +1, &\text{if } & x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &\text{if } -1 < {}&x < 1 \\
    & 3x^2 - (m+n)x, &\text{otherwise} &
  \end{alignedat}\right.
\]
\end{document}

В результате получается:

тест.png

Я бы хотел, чтобы и ifs otherwise, и xs были выровнены.

Можно ли это сделать с помощью {aligned}? Если да, то где я ошибаюсь?

решение1

Вам нужно использовать &&, чтобы получить условия, выровненные слева. Чтобы получить xтакже выровненные, в этом случае я бы рекомендовал использовать \hphantom:

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

Примечания:

  • {-1}Во втором случае необходимо использовать , чтобы -оператор обрабатывался как унарный, а не как бинарный.

Чтобы ответить на ваши вопросы из комментариев:

  • Каждый &обеспечивает точку выравнивания rлевый/ lлевый. То есть, текстдовыравнивается по правому краю &, а текстпослевыровнен . Итак &, lпервый &выравнивает f(x) = {по правому краю, а последующие выражения — по левому краю. Затем, требуется выровнять последующий текст (начало условия) l. Это значит, что нам нужно &&. Первый &даст rвыравнивание по правому краю, — второй &гарантирует, что у нас будет lвыравнивание по левому краю.
  • Использование \hphantomбыло простым способом получить желаемое выравнивание. Конечно, это можно было сделать с помощью , &но это потребовало бы использования \lapтипа макроса из-за otherwiseтекста. Обратите внимание, что выражения неравенства перекрывают otherwiseтекст.

Вот результаты двух других подходов:

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

Код:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent
Recommended approach: use a \verb|\hphantom{}|: 
\[
      f(x) = \left\{\begin{alignedat}{3}
        & mx^2 +nx +1,                            &&\text{if } \hphantom{-1 <{}}   x \le -1 \\
        & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &&\text{if } {-1} < x < 1 \\
        & 3x^2 - (m+n)x,                          &&\text{otherwise} 
      \end{alignedat}\right.
    \]
Use additional \verb|&| instead of \verb|\hphantom{}|:
\[
  f(x) = \left\{\begin{alignedat}{4}
    & mx^2 +nx +1,                            &&\text{if } &      &&  &x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &&\text{if } & {-1} &&{}< {}&x < 1 \\
    & 3x^2 - (m+n)x,                          &&\text{otherwise} 
  \end{alignedat}\right.
\]
With \verb|mathllap|:
\[
  f(x) = \left\{\begin{alignedat}{4}
    & mx^2 +nx +1,                            &&\text{if } &      &&  &x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &&\text{if } & {-1} &&{}< {}&x < 1 \\
    & 3x^2 - (m+n)x,                          &&\text{\rlap{otherwise}} 
  \end{alignedat}\right.
\]
\end{document}

решение2

Альтернативой было бы использование casesокружения. Здесь нужно меньше амперсандов, за счет выравнивания x, но я лично считаю, что так элегантнее.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  f(x) = \begin{cases}
    mx^2 +nx +1, &\text{if }  x \le -1 \\
    2m e^{|x|-1} + \sin \pi x - 3n,  &\text{if } -1 < x < 1 \\
    3x^2 - (m+n)x,  &\text{otherwise}
  \end{cases}
\]
\end{document}

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

решение3

Вы можете использовать это

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  f(x) = \left\{\begin{alignedat}{3}
    & mx^2 +nx +1,                             &&\text{if }         &    & x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad   &&\text{if }         &-1< & x < 1 \\
    & 3x^2 - (m+n)x,                           &&\text{otherwise}   &&
  \end{alignedat}\right.
\]
\end{document}

РЕДАКТИРОВАТЬ: изображение:

тест.png

редактировать(by bbeeton): скорректированное изображение:

вывод скорректированного кода

разница здесь в интервале вокруг левого <знака во второй строке. Это можно сделать двумя способами:

  • ... &-1<{} & x < 1
  • воспользовавшись тем фактом, чтоИксодинаковая ширина в обеих строках, и вводим их как

    & mx^2 +nx +1,                             &&\text{if }         &     x &\le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad   &&\text{if }         & -1< x &< 1 \\
    

Правильный интервал вокруг знаков эксплуатации и связи гарантируется только в том случае, если выравнивание &предшествует знаку.

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