xstring 包的多种情况

xstring 包的多种情况

关于语句(\IfEqCase),我如何将其设置为同时测试同一命令的多个用例而不嵌套,例如,我试图定义一个需要 3 个参数的新命令:

\newcommand{\TRIALL}[3][]{%
         \IfEqCase{#1}{%
        {B}{\textbf}%
        {U}{\uline}%
        {I}{\textit}%
        {E}{\emph}%
    }[\PackageError{TRIAL}{Undefined option to TRIAL: #1}{}]%   
          \IfEqCase{#2}{%
        {l}{^^^^200d{#1{^^^^200d#3}}}%
        {b}{^^^^200d#1{^^^^200d#3^^^^200d}^^^^200d}%
        {r}{#1{#3^^^^200d}^^^^200d}%
        {i}{#1{#3}}%
    }[\PackageError{TRIAL}{Undefined option to TRIAL: #2}{}]%
}%

但是,我需要一种格式,可以在同一行同时定义 {#1} 和 {#2} 的情况,因为命令定义需要一组不能嵌套的命令

我需要类似的东西:

\IfEqCase{#1,#2}{%
{B,L}{{^^^^200d\textbf{^^^^200d#3}}%}

此设置是为了缩写“Salim Bou”描述的命令,强调阿拉伯文本字符 我想设置它,以便我可以创建单个命令来添加下划线、粗体甚至斜体,以及同时使用这些选项的任意组合,除了框架选项之外。我更喜欢定义带有可选参数的命令,而不是定义一组命令,这样我的代码会更简洁。对于 MWE,您可以参考 Salim Bou 发布的答案

相关内容