我想定义一个命令\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
。