包含数字的命令名称

包含数字的命令名称

我想定义一个命令\C4来产生C4(粗体和普通字体)。我写了类似的东西

\begin{document}
 \DeclareTextFontCommand{\textscn}{\upshape\bfseries}
 \newcommand{\C4}{\textscn{C4}}
\end{document}

此代码出现错误。我想知道如何避免此错误?!

提前致谢。

答案1

名称中不能有带数字的命令

你可以有

\newcommand{\C}[1]{\textscn{C#1}}

定义\C为采取一个论点,所以\C4\C3会起作用,就像\C{hello world}

但是我会避免使用单字母命令,大多数命令在 latex 中已针对重音符号和类似命令进行了预定义。例如,如果您开始使用,\C您可能会想要\c使用小写版本,但这\c是变音符。

我会使用稍微长一点的名字,例如

\newcommand{\upC}[1]{\textscn{C#1}}

\upC4这将允许\upC5

或者基于语义的名称,无论它是什么。例如:

\newcommand{\category}[1]{\textscn{C#1}}

这将允许\category4,并且\category5 如果 C4 在您的实际上下文中代表“类别 4”。

答案2

TeX 的语法规则允许你这样做

\def\C4{\textscn{C4}}

你是不是定义一个名为的命令C4;你正在定义一个命令,\C它是必需的随后是4

因此,例如,您也不能拥有\C3

你会发现非常有趣的帖子*为什么* TeX 不允许命令名称中包含数字?关于这个主题。

实际上可以将\C其变成寻找其后的一个整数并根据该值进行分支,但这非常脆弱且不推荐。

我只会选择\Civ\Cfour

相关内容