\newcommand 带有一个可选参数:在数学环境中替换参数会产生不想要的输出

\newcommand 带有一个可选参数:在数学环境中替换参数会产生不想要的输出

我定义了一个新命令,

\newcommand{\Test}[1][p]{\ensuremath{n_{\mathrm{dof}}^{\mathrm{Q#1}} }}

带有一个可选参数,该参数为 1 或 0。如果我调用时\Test不带参数,则会得到所需的输出,即正确的下标 Qp。但是,调用\Test{2}会给出下标 Qp,并且参数 2 位于其他位置。我的直觉是在调用时检索 Q2 \Test{2}。如有必要,我可以添加图片,但我希望我所指的内容清晰易懂。

是不是我遇到的有什么不正确的地方?

答案1

您误解了可选参数的语法:它们由正方形括号。当你写1)

\newcommand{\Test}[1][p]{n_{\mathrm{dof}}^{\mathrm{Q#1}}}

然后\Test扫描后面是否有方括号。您的宏应该被用作\Test(然后您将得到Qp上标)或\Test[2]

\documentclass{article}
\newcommand{\Test}[1][p]{n_{\mathrm{dof}}^{\mathrm{Q#1}}}
\begin{document}
$\Test$, $\Test{2}$, $\Test[2]$
\end{document}

在此处输入图片描述


1)\ensuremath除非我的生命取决于它,否则我不会使用它;即使在这种情况下,我也会思考我的生命是否足够宝贵......

相关内容