我需要一个宏来按如下方式处理其输入:
\foo A
> #2 = A\foo{A}
> #2 = A\foo(B)
> #3 = A(圆括号)\foo_m A
> #1 = m, #2 = A\foo_m{A}
> #1 = m, #2 = A\foo_m(B)
> #1 = m, #3 = B(圆括号)\foo_{m}(B)
> #1 = m, #3 = B (与 类似(B) = {A}
)
\foo_m {A}
如果和\foo_m (B)
(带有额外的空格)也像 5 和 6 那样映射,则可获得加分。(备注:如果我在上面的列表中省略了一个参数,则需要 #? = NoValue。)
我尝试了以下定义
\NewDocumentCommand\foo{t_ m g d()}
但这并非在所有情况下都有效(3.和4.除外)。