我正在尝试更新数学命令\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}
输出与以前相同。