我想创建一个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}