如何摆脱 \def

如何摆脱 \def

最近,一家杂志要求我删除\def我的个人宏定义中的 。事实证明这并不容易,而且简单的替换\def并不\newcommand总是有效。有没有标准方法可以做到这一点?

我举两个例子:

(1)\def\res{\texttt{Res}\left(#1\right)} 我无法用 newcommand 替换 def

(2)\def\io{\infty} 我可以用 newcommand 替换 def

答案1

在提交的内容中应该 \def因为文字编辑担心用户会做出如下行为

\def\c{\gamma}

因此无法排版一位名字中包含“Ş”的土耳其合著者的论文。这确实发生了。

你可能使用一些\renewcommand说明,但要清楚地标记它们。我正在考虑一些相当安全的方法,比如

\renewcommand{\epsilon}{\varepsilon}

但你应该肯定不要修改重要命令。

无论如何,你的定义\res是错误的,因为你在替换文本中使用了一个参数而没有声明它。可能

\newcommand{\res}[1]{\operatorname{\mathtt{Res}}(#1)}

我不鼓励你

\newcommand{\io}{\infty}

因为标准命令是语义的,而你的命令不是,而且所得的收益确实不值得记住另一个命令的痛苦。

在任何情况下,如果使用\newcommand返回有关命令已定义的错误,请避免切换到,\renewcommand除非你恰恰知道自己在做什么(就像这个\epsilon案例一样,但是不是在这种\c情况下)。

相关内容