不使用 \newcommand{{...}} (带双花括号)的原因

不使用 \newcommand{{...}} (带双花括号)的原因

原因是什么不是总是使用\newcommand{\stuffa}{{STUFF}}而不是\newcommand{\stuffb}{STUFF}?在哪些情况下前者不是一个好主意?

我考虑这样做的原因是为了让命令在上标中工作而不使用额外的花括号,即,在不使用(做)2^\stuffa时工作。不过,这些命令不仅会用于上标,而且我对更通用的答案感兴趣。(如果 eg为这个问题提供了一个方便的解决方案,那也会很有趣。)2^\stuffb2^{\stuffb}xparse

我认为这是一个非常基本的问题,已经被回答过很多次了,但我无法通过大量的研究找到答案。

这个问题与我的问题相关,但没有回答我的问题。

答案1

定义完全不同,只添加额外的组如果你想要一个额外的组

\newcommand\zzz{\bfseries}

会成为\zzz别名\bfseries,并\zzz this 会成为大胆的

    \newcommand\zzz{{\bfseries}}

不会产生任何有用的效果,因为字体更改会立即结束。

\newcommand\recip{\frac{1}}

将定义一个倒数函数,\recip{4}排版为 1/4。

\newcommand\recip{{\frac{1}}}

不会做任何有用的事情,\recip{4}{\frac{1}}{4}会引发有关缺少参数的错误\frac

在定义中增加额外的组似乎可以x^\stuff工作,这是实现上的意外,不应使用。记录的 LaTeX 语法始终是使用大括号上标。

一般来说它会改变间距,

\newcommand\zzz{+}

会使\zzz行为变得像 +

\newcommand\zzzb{{+}}

会做出通常不想要的\zzzb行为,并且没有空间比较{+}

 $1  \zzz 2  \zzzb 3$

相关内容