带尖括号的 Case 环境

带尖括号的 Case 环境

我想创建一个cases显示尖括号而不是花括号的环境。我无法重新定义环境本身,因为我必须将新环境与旧环境一起使用,也就是说,我必须在同一个文档中使用“花括号”和“尖括号”。有我可以使用的包吗?

答案1

以下代码更新cases为采用可选参数。可选参数用作左分隔符,而不是传统的(默认)\lbrace

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,etoolbox}

\makeatletter
\renewenvironment{cases}[1][\lbrace]{%
  \def\@ldelim{#1}
  \matrix@check\cases\env@cases
}{%
  \endarray\right.%
}
\patchcmd{\env@cases}{\lbrace}{\@ldelim}{}{}
\makeatother

\begin{document}

\[
  f(x) = \begin{cases}
    a & \text{if $x < 0$} \\
    b & \text{otherwise}
  \end{cases}
\]

\[
  f(x) = \begin{cases}[\langle]
    a & \text{if $x < 0$} \\
    b & \text{otherwise}
  \end{cases}
\]

\end{document}

即使嵌套,它也应该按预期运行:

在此处输入图片描述

\[
  f(x) = \begin{cases}
    a & \text{if $x < 0$} \\
    b & \begin{cases}[\langle]
      {} + c & \text{if $x < 7$} \\
      {} + d & \text{otherwise}
    \end{cases}
  \end{cases}
\]

但是,使用常规的 可能更好array。这取决于您如何嵌套内容。

答案2

如果我理解正确,那么您可以使用该empheq包实现您想要的功能,但有一些限制(不要加载amsmath:它会加载mathtools,它会加载它)。限制是由于\langle无法随心所欲地扩展。实际上,它适用于两行的情况,可能三行会使用垂直间距。

以下是一个例子:

\documentclass{article}
\usepackage{empheq}

\begin{document}

\begin{empheq}[left={f(x) = \empheqlangle}]{alignat*= 2}
 & \smash{x^2} + 1&\quad & \text{if }x > 0 \\
 & 1-x && \text{if }x < 0
\end{empheq}

\end{document} 

在此处输入图片描述

答案3

我找到了另一种简单的方法scalerel包裹,将符号拉伸<至所需的大小比格德林

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\usepackage{scalerel}

\begin{document}

\[
g(x) =
\stretchleftright[1000]{<}{%
\begin{aligned}\,
    ax+b, & \text{ if } x\leq 0\\
    x^2,  & \text{ if } x>0
\end{aligned}}{}
\]

\end{document}

相关内容