我想定义自己的宏,它接受可选参数,例如\big
,\Big
等,如果指定则应用该参数,否则应用自动调整大小\left
,\right
对。
那么,在指定可选参数的情况下,如何使以下内容发挥作用。
我发现如果我将语法更改为仅接受\bracc[big]{1, 2}
而不是\bracc[\big]{1, 2}
(即删除\
),那么我可以使用
\csname#1\endcsname\{#2\csname#1\endcsname\}
效果很好,但我更愿意指定\big
(即使用\
)。
代码:
\documentclass{article}
\usepackage{xstring}
\usepackage{xparse}
\NewDocumentCommand{\bracc}{O{} m}{%
\IfEq{#1}{}{%
\left\{#2\right\}%
}{%
#1\{#2#1\}%
}%
}%
\begin{document}
$\bracc{1, 2}$
%$\bracc[\big]{1, 2}$% How to get this case to work?
\end{document}
答案1
您不需要任何包来实现这一点,并且您应该(有效地)使用\bigl
并且\bigr
如果\big
指定:
\documentclass{article}
\newcommand\bracc[2][\left]{%
\ifx\left#1\else\mathopen\fi#1\{%
#2%
\ifx\left#1\right\else\mathclose\expandafter#1\fi\}%
}%
\begin{document}
$\bracc{1, 2}$
$\bracc[\big]{1, 2}$% How to get this case to work?
\end{document}