我想编写一个干净的分段定义函数。
这里有一个类似的帖子:如何编写带有外面括号的函数(分段)?,但我还有一些后续问题。
我现在有两个选择:
\[ f(n) = \begin{cases}
\frac{n}{2} & \textrm{ if $n$ is even} \\
-\frac{n-1}{2} & \textrm{ if $n$ is odd} \\
\end{cases} \]
(使用该amsmath
包),以及
For every $n \in \mathbb{N}$, let
\[ f(n) = \left\{
\begin{array}{l l}
\frac{n}{2} & \quad \mbox{if $n$ is even}\\
-\frac{n-1}{2} & \quad \mbox{if $n$ is odd}\\
\end{array} \right. \]
对于如此简单的事情来说,两者似乎都非常复杂...此外,有没有办法将“居中” $\frac{n}{2}$
,使其看起来对齐$-\frac{n-1}{2}$
(而不是偏左)?
答案1
对齐分数的一个更简单的解决方案是让 TeX 决定添加什么空格:
\[
f(n) =
\begin{cases}
\hfill \frac{n}{2} \hfill & \text{ if $n$ is even} \\
\hfill -\frac{n-1}{2} \hfill & \text{ if $n$ is odd} \\
\end{cases}
\]
正如评论中所解释的,\hfill
占用了尽可能多的空间,因此在两边都放置一个 会产生使文本居中的效果。如果在两行中都这样做,则不必弄清楚哪一行更长。与使用 相比,这更能抵抗代码的更改\phantom
。我还继续将其更改\textrm
为\text
,因为这\text
是预期的。
答案2
这只是一条信息丰富的长评论。
amsmath
将环境定义cases
为
\left\lbrace
\def\arraystretch{1.2}%
\array{@{}l@{\quad}l@{}}%
% cases content
\endarray\right.%
因此,为了实现相同的间距,并cases
在其中包含的元素的水平对齐方面具有一定的灵活性,您可以使用
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{amsfonts}% http://ctan.org/pkg/amsfonts
\begin{document}
For every $n \in \mathbb{N}$, let
\[
f(n) = \left\{\def\arraystretch{1.2}%
\begin{array}{@{}c@{\quad}l@{}}
\frac{n}{2} & \text{if $n$ is even}\\
-\frac{n-1}{2} & \text{if $n$ is odd}\\
\end{array}\right.
\]
\end{document}
答案3
如果你的问题是“我该如何对齐我的分数”?那么轰隆隆:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
A function is defined:
\[
f(X) =
\begin{cases}
\phantom{-}x & \text{if}\ x>0 \\
-x & \text{if}\ x<0
\end{cases}
\]
\end{document}
\phantom
添加与其参数大小相同的空格。
此外,通过适当的换行和间距(LaTeX 会忽略这些),您可以使其相当易读(这似乎回答了您的另一个问题)。hasemacs
将align-current
LaTeX 表格对齐,&
这非常酷。