新命令可以以数字结尾吗?

新命令可以以数字结尾吗?

可能重复:
\newcommand 名称不能包含数字,例如 \Mycomand123

我正在尝试定义命令\s1\s2等等。现在替换非常简单,但想法是将其替换为以后有意义的东西。

这就是我现在所拥有的

\newcommand{\s1}{s1}

我收到以下错误:

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.52 \newcommand{\s1}{s1}

如果我用 newcommand 定义注释该行,它就可以正常工作。(并且我在同一位置定义了其他 newcommand,并且我确实有一个\begin{document}

知道我做错了什么吗?

答案1

只有字母(@在某些情况下)可以成为 定义的命令名称的一部分\newcommand。您必须使用低级宏\@namedef

\makeatletter % to make \@namedef accessible
\@namedef{s1}{s1}
\makeatoter % to revert \makeatletter

但是,您无法使用这样的命令\s1,而必须始终写\csname s1\endcsname。我认为这对您没有任何用处,只需坚持使用字母即可。

备注:我在答案中做了一些简化。我知道我做了。但这是基本思想。

相关内容