如何根据调整大小参数构建条件

如何根据调整大小参数构建条件

我想定义自己的宏,它接受可选参数,例如\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}

相关内容