原因是什么不是总是使用\newcommand{\stuffa}{{STUFF}}
而不是\newcommand{\stuffb}{STUFF}
?在哪些情况下前者不是一个好主意?
我考虑这样做的原因是为了让命令在上标中工作而不使用额外的花括号,即,在不使用(做)2^\stuffa
时工作。不过,这些命令不仅会用于上标,而且我对更通用的答案感兴趣。(如果 eg为这个问题提供了一个方便的解决方案,那也会很有趣。)2^\stuffb
2^{\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$