我想将cases
以下一些内容对齐:
value1 if condition
value2 line1ofvalue2... otherwise
line2ofvalue2..
line3ofvalue2.
首先,只有 2 个条件(每个条件对应一个值),所以我希望if condition
和otherwise
左对齐。然后,由于我的value2
很长,我需要将其拆分为 3 行,因此我希望这 3 行左对齐。
有人知道怎么做吗?非常感谢
答案1
环境array
提供了与amsmath
包裹 cases
环境。事实上,它amsmath
的定义与具有一定拉伸度(的)和特定列对齐(的)cases
的完全一致。请考虑以下显示两种不同样式的最小示例:array
\arraystretch
1.2
@{}ll@{}
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent Original \texttt{cases} example:
\[
X=%
\begin{cases}
0& \text{if $r-j$ is odd},\\
r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
\end{cases}
\]
\noindent Using the \texttt{array} environment:
\[
\renewcommand{\arraystretch}{1.2}%
X=\left\{%
\begin{array}{@{}ll@{}}
0& \text{if $r-j$ is odd},\\
r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
\end{array}
\right.
\]
\end{document}
因此,利用array
环境可以尝试:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent Requested environment using \texttt{array}:
\[
\renewcommand{\arraystretch}{1.2}%
X=\left\{%
\begin{array}{@{}lll@{}}
0& & \text{if $r-j$ is odd},\\
k& +7& \text{if $r-j$ is even}. \\
& +1+2i& \\
& \binom{3}{n}
\end{array}
\right.
\]
\end{document}
l
如果需要,还可以调整前两个左对齐列之间的间隙(@{}l@{}ll@{}
例如,使用)。这种方法的优点是环境方面的灵活性array
,同时仍保留与环境的视觉等效性cases
;即用户定义的cases
环境。
答案2
这是环境的扩展amsmath
cases
。有一个新的可选参数用于自定义cases
列。如果没有参数,它的工作方式与原始的一样cases
。
\makeatletter
\renewcommand\env@cases[1][@{}l@{\quad}l@{}]{%
\let\@ifnextchar\new@ifnextchar
\left\lbrace
\def\arraystretch{1.2}%
\array{#1}%
}
\makeatother
中的原始定义amsmath.sty
包含@{}l@{\quad}l@{}
,我们将其替换为#1
。现在您可以使用array
列规范的所有功能。
完整使用示例:
\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}
\[
\begin{cases}
value1 & if condition \\
value2 & otherwise
\end{cases}
\]
\[
\begin{cases}[@{}lp{3cm}l@{}]
value1 & & if condition \\
value2 & line1ofvalue2 \newline
line2ofvalue2 \newline
line3ofvalue2 & otherwise
\end{cases}
\]
\end{document}
答案3
这是你想要的?
\documentclass{article}
\usepackage[fleqn]{amsmath}
\begin{document}
\newcommand{\Phantom}{\phantom{value2}}%
\begin{align*}
f(x) = \begin{cases}
value1& condition1 \\
value2 \text{ line1ofvalue2}& condition2\\
\Phantom \text{ line2ofvalue2}\\
\Phantom \text{ line3ofvalue2}
\end{cases}
\end{align*}
\end{document}