
Рассмотрим этот 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}
В результате получается:
Я бы хотел, чтобы и if
s otherwise
, и x
s были выровнены.
Можно ли это сделать с помощью {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}
РЕДАКТИРОВАТЬ: изображение:
редактировать(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 \\
Правильный интервал вокруг знаков эксплуатации и связи гарантируется только в том случае, если выравнивание
&
предшествует знаку.