如何在图示位置的案例括号后添加一点水平间距,以便 1 和 0 向右移动(给定的屏幕截图看起来还可以,但我使用了不同的字体,间距太紧):
梅威瑟:
\documentclass[ngerman]{scrbook}
\usepackage{amsmath}
\begin{document}
\begin{equation}
f(x) =
\begin{cases}
1 & \text{if } x \text{ is even}\\
0 & \text{else}
\end{cases}
\end{equation}
\end{document}
答案1
你可以重新定义方式amsmath
cases
通过更新来定义规范\env@cases
。下面我删除了从列规范中剥离的零宽度列填充array
:
\documentclass{scrbook}
\usepackage{amsmath}
\makeatletter
\def\env@cases{%
\let\@ifnextchar\new@ifnextchar
\left\lbrace
\def\arraystretch{1.2}%
\array{l@{\quad}l@{}}% Formerly @{}l@{\quad}l@{}
}
\makeatother
\begin{document}
\begin{equation}
f(x) =
\begin{cases}
1 & \text{if $x$ is even} \\
0 & \text{else}
\end{cases}
\end{equation}
\end{document}
或者,你可以使用类似如下的方式定义自己的宽度
@{\hspace{<len>}}l@{\quad}l@{}
其中指定长度<len>
。以上内容管理文档范围内的间距cases
。如果您想进行一次性更改,您可以case
手动编写自己的更改:
\documentclass{scrbook}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\renewcommand{\arraystretch}{1.2}
f(x) = \left\{
\begin{array}{@{\quad}l@{\quad}l@{}}
1 & \text{if $x$ is even} \\
0 & \text{else}
\end{array}
\right.
\end{equation}
\end{document}
有关该@{...}
规范的使用的更多信息,请参阅表格中的列和行填充。
答案2
我提出了一种简单的解决方案,它依赖于empheq
包(加载amsmath
和 mathtools
)和align(ed)
或align(ed)at
环境。它允许您定义数学环境左侧或右侧的内容。我给出了 5 种控制水平间距的变体,不仅包括括号和后续公式(具有过度值)之间的水平间距,还包括数值和条件之间的水平间距,以及条件的不同对齐方式。
\documentclass[ngerman]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage[overload]{empheq}
\begin{document}
\begin{equation}[left = {f(x) =} \empheqlbrace\qquad ]
\begin{aligned}
& 1 & & \text{if } x \text{ is even}\\
& 0 & & \text{else}
\end{aligned}
\end{equation}
\bigskip
Controlling the horizontal spacing between the numerical values and the conditions:
\begin{equation}[left = {f(x) =} \empheqlbrace\qquad ]
\begin{alignedat}{2}
& 1 & \qquad & \text{if } x \text{ is even}\\
& 0 & & \text{else}
\end{alignedat}
\end{equation}
Condition right aligned:
\begin{equation}[left = {f(x) =} \empheqlbrace\qquad ]
\begin{alignedat}{2}
1 & \qquad & \text{if } x \text{ is even}\\
0 & & \text{else}
\end{alignedat}
\end{equation}
\bigskip
If there is no equation numbering, the syntax is slightly simpler.
\begin{alignat*}{2}[left = {f(x) =} \empheqlbrace\qquad ]
1 & \quad & \text{if } x \text{ is even}\\
0 & & \text{else}
\end{alignat*}
\begin{alignat*}{3}[left = {f(x) =} \empheqlbrace\qquad ]
1 & & \quad \text{if } x \text{ is even}&\\
0 & & \text{else}&
\end{alignat*}
\结束{文档}
答案3
您可以用来\hspace{}
做这件事。