答案1
我建议您使用一个cases
环境(由包提供amsmath
)并在其中嵌入两个array
环境。
\documentclass{article} % or some other suitable document class
\usepackage{amsmath} % for 'cases' environment
\usepackage{booktabs} % for '\addlinespace' macro
\begin{document}
\[
C(n)=
\begin{cases}
f(x), & \begin{array}{@{}l@{}}
n=0\\
\text{where $x=1$}
\end{array} \\ \addlinespace % increase the vertical separation
f(x), & \begin{array}{@{}l@{}}
n>0\\
\text{where $x=c(n-1)+n$}
\end{array}
\end{cases}
\]
\end{document}
答案2
我能想到两种方法。我将使用环境来简化事情,但如果你自己amsmath
cases
手动构建东西,这种方法也同样有效。array
选项1(减少打字),使用左列的空单元格(参见标记为 ❶_ 的行以使内容排列整齐:
\[
C(n)=
\begin{cases}
f(x), &n=0\\
&\textrm{where $x=1$}\\ % ❶
f(x), &n>0\\
&\textrm{where $x=c(n-1)+n % ❶
\end{cases}
\]
请注意,我选择\textrm
而不是,\text
因为后者将继承周围文本的格式,这可能导致意外结果,例如定理的文本。
选项 2(也许更美观)。
首先,我们将定义一个命令\stackmath
来建立单列数组。
\NewDocumentCommand{\stackmath}{m}
{
\begin{array}{@{} l @{}} % ❷
#1
\end{array}
}
请注意,我们将@{}
❷ 放在数组的两侧,以避免 LaTeX 默认在那里放置的额外间距。这是一个通常有用的命令,因为它可以让我们在数学模式的任何地方以多行形式排版左对齐数学,只需输入以下内容:
\stackmath{x<0\\x>0}
让线条堆积起来。
然后我们可以写
\[
C(n)=
\begin{cases}
f(x), &\stackmath{n=0\\
\textrm{where $x=1$}}\\ % ❸
f(x), &\stackmath{n>0\\
\textrm{where $x=c(n-1)+n}
\end{cases}
\]
你可能会发现自己想要使用❸处的可选参数\\
来稍微打开一些内容,例如,在环境\\[5pt]
中的行之间获得一些额外的空间cases
。