我有一个包含三个“部分”的分段函数。我希望所有三个条件都与变量 x 对齐。我该如何实现?以下是我目前拥有的代码:
\[
f(x) = \begin{cases}
mx^2 +nx +1, & x \le -1 \\
2m e^{|x|-1} + \sin \pi x - 3n, & -1 < x < 1 \\
3x^2 - (m+n)x, & x \ge 1
\end{cases}
\]
答案1
另一种解决方案,它扩展了cases
环境。它添加了一个可选参数来定义数组列选项。标准cases
行为是默认行为,因此如果没有可选参数,它就像普通 amsmath 的情况一样。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewcommand{\env@cases}[1][@{}l@{\quad}l@{}]{%
\let\@ifnextchar\new@ifnextchar
\left\lbrace
\def\arraystretch{1.2}%
\array{#1}%
}
\makeatother
\begin{document}
\[
f(x) = \begin{cases}[@{}l@{\quad}r@{}l@{}]
mx^2 +nx +1, & &x \le -1 \\
2m e^{|x|-1} + \sin \pi x - 3n, & -1 < {} &x < 1 \\
3x^2 - (m+n)x, & &x \ge 1
\end{cases}
\]
\end{document}
答案2
您也可以使用alignedat
左边的大括号来在多个地方进行对齐:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
f(x) = \left\{\begin{alignedat}{2}
& mx^2 +nx +1, && x \le -1 \\
& 2m e^{|x|-1} + \sin \pi x - 3n, \qquad & -1 < {}&x < 1 \\
& 3x^2 - (m+n)x, && x \ge 1
\end{alignedat}\right.
\]
\end{document}
答案3
这种方法重新使用了其他答案中的想法,但方式不同:
\[
f(x) = \begin{cases}
mx^2 +nx +1, & x \le -1 \\
2m e^{|x|-1} + \sin \pi x - 3n,\kern4em & \llap{$-1 < {}$} x < 1 \\
3x^2 - (m+n)x, & x \ge 1
\end{cases}
\]
\qquad
没有在第二行留下足够的空间,因此将其加倍为\kern4em
。{}
中的小于号后面的\llap
确保它与后面的“x”之间的正确间距。最后,由于\llap
会将您置于水平模式,因此$...$
需要恢复数学模式。
结果:
答案4
我建议使用\phantom{-1 <{}}
来实现适当的间距。这将保留 所占用的尽可能多的空间-1 <
(加上{}
以获得 右侧的适当间距<
):
如果您还希望1
在右侧对齐,您可以\phantom{-}
在之前添加1
以获得:
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\Phantom}{\phantom{-1 <{}}}%
\begin{document}
\[
f(x) = \begin{cases}
mx^2 +nx +1, & \Phantom x \le -1 \\
2m e^{|x|-1} + \sin \pi x - 3n, & -1 < x < \phantom{-}1 \\
3x^2 - (m+n)x, & \Phantom x \ge \phantom{-}1
\end{cases}
\]
\end{document}