我正在尝试修改 LaTeX 的括号 ( \cases
) 以使其类似于左边的样子:
我只能找到方框和括号 ( \cases
) 的代码,但在任何论坛上都找不到此特定变体的代码。问题是如何在 上添加“提示”[
或拉直 上的角\cases
。有人能帮我吗?
谢谢。
答案1
免责声明:这几乎完全取自Steven B. Segletes 回答我在这里做的也更像是一个矩阵,可以用于处理案例。但结果是,使用 Steven 的代码,人们可以在非常简单的调整后绘制任何想要的括号。当然,一些 Ti 的基本知识钾Z 有帮助。
\documentclass{article} % https://tex.stackexchange.com/a/327584/121799
\usepackage{tikz,amsmath,environ}
\usetikzlibrary{decorations.pathreplacing,calc}
\tikzset{
ncbar angle/.initial=90,
ncbar/.style={
to path=(\tikztostart)
-- ($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)
-- ($(\tikztotarget)!($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztostart)$)
-- (\tikztotarget)
},
ncbar/.default=0.5cm,
freaky dim/.default=4pt,
freaky/.style={
to path={let \p1=(\tikztostart),\p2=(\tikztotarget) in (\tikztostart)
-- ($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)
-- ({\x1-#1},{(\y1+\y2)/2-abs(#1)})
-- ({\x1-2*#1},{(\y1+\y2)/2})
-- ({\x1-#1},{(\y1+\y2)/2+abs(#1)})
-- ($(\tikztotarget)!($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztostart)$)
-- (\tikztotarget)}
},
freaky/.default=0.5cm,
}
\tikzset{freaky left brace/.style={freaky=0.5ex}}
\tikzset{freaky right brace/.style={freaky=-0.5ex}}
\tikzset{square left brace/.style={ncbar=0.5ex}}
\tikzset{square right brace/.style={ncbar=-0.5ex}}
\tikzset{round left paren/.style={ncbar=0.3cm,out=115,in=-115}}
\tikzset{round right paren/.style={ncbar=0.3cm,out=65,in=-65}}
%
\NewEnviron{flcases}{\setbox0=\hbox{$\,\begin{matrix}\BODY\end{matrix}\,$}%
\setbox2=\hbox{\begin{tikzpicture}
\draw [thick] (0,\botdim) to [freaky left brace] (0,\topdim);
\copy0
\end{tikzpicture}}
\vcenter{\hbox{\copy2}}%
}
\def\topdim{\the\dimexpr+\ht0+.5\ht\strutbox-.5\dp\strutbox-3pt\relax}
\def\botdim{\the\dimexpr-\ht0+.5\ht\strutbox-.5\dp\strutbox+3pt\relax}
\begin{document}
\[ f(x)=
\begin{flcases}
0 & \text{if}~x<0 \\
\pi & \text{if}~x\ge0
\end{flcases}%
\]
\end{document}