插入带有可选参数的命令作为可选参数问题

插入带有可选参数的命令作为可选参数问题

如果我定义以下两个命令:

\newcommand{\TestA}[1][]{a^{#1} aaa}
\newcommand{\TestB}[1][]{#1}

然后调用它

$\TestA[\TestB[111]]$

我收到错误:

"Argument of \\TestB has an extra  }."

但是 $\TestB[111]$ 和 $\TestA[111]$ 可以工作...

这是一个错误还是我做错了什么?

答案1

您将 latex 与可选参数的方括号混淆了。当 latex 看到

 \TestA[\TestB[111]]

它认为的可选参数\TestA\TestB[111。现在它尝试评估这个表达式,但却感到困惑,因为\TestB不符合语法。

要解决这个问题,你需要将可选参数括在括号中\TestA

\TestA[{\TestB[111]}]

相关内容