等式中括号后的水平间距

等式中括号后的水平间距

如何在图示位置的案例括号后添加一点水平间距,以便 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

你可以重新定义方式amsmathcases通过更新来定义规范\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包(加载amsmathmathtools)和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{}做这件事。

相关内容