向现有命令添加参数

向现有命令添加参数

我正在尝试更新数学命令\deg,以便它需要一个参数。现在,如果我想输入函数的次数F,我必须键入\deg并在其后面手动添加(x)才能获得所需的结果。但是,我想重新定义该命令\deg并为其添加一个参数,以便下次\deg(x)我只需填写一个参数,而不是键入F在 的括号之间\deg{}
我尝试过类似的事情\renewcommand{\deg}[1]{\deg(#1)},但显然没有用。有什么方法可以重新定义 吗\deg

答案1

正如 David 所说,不建议您重新定义现有命令来定制它们 - 主要原因是这样做很可能会让阅读您的 TeX 文件的任何人感到困惑,尤其是未来的合作者。

相反,你可以使用类似下面的代码来定义一个新命令,\Deg以便$\Deg f$产生deg f(x)。我添加了一个可选参数,以便$\Deg[y]f$产生deg f(y)

这里有一个最小工作示例

\documentclass{article}
\newcommand\Deg[2][x]{\deg #2(#1)}

\begin{document}

  $\Deg f$, $\Deg[y]f$

\end{document}

这给出了承诺的输出:

在此处输入图片描述

请注意,宏\Deg(如\deg)需要在数学模式中使用。当然,您可以使用,\ensuremath但我避免使用此命令,因为我认为最好明确说明进入和离开数学模式。

\NewDocumentCommand最后,通过使用解析包中我们可以让可选参数的语法更加自然,这样就可以像以前一样$\Deg f$产生deg f(x),现在$\Deg f(y)$产生deg f(y)(当然,$\deg f(y)$这也是这样做的!)。以下是新代码:

\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand\Deg{ mD()x }{\deg #1(#2)}

\begin{document}

  $\Deg f$, $\Deg f(y)$

\end{document}

输出与以前相同。

相关内容