我正在输入包含许多德语脚本字母的笔记。具体来说,我需要输入大写和小写的德语字母。
我使用了以下命令:
....
\newcommand{\R}{\mathfrak{R}}
\newcommand{\r}{\mathfrak{r}}
....
$\R = \langle \r_1, \ldots, \r_n \rangle$
....
然后运行该文件后,显示错误:
命令 \r 已定义。\newcommand{\r}{\mathfrak{r}}
尽管我们用不同的字母定义了 \mathfrak{R} 和 \mathfrak{r},但为什么会出现这种情况?
(请为问题添加合适的标签;坦率地说,我不知道标签;我搜索了 newcommand 但没有找到。)
答案1
正如您已经遇到的那样,许多单字母命令序列已经定义,覆盖它们不是一个好主意,因为这可能会在意想不到的地方破坏事情。
因此有两种可能性:
- 定义稍长的命令(两个字母或三个字母的命令序列;如注释部分建议的 egreg)。当您使用德语脚本字母的一小部分固定子集时,这是可行的。
- 定义 的缩写
\mathfrak
,例如\FR
。请注意,当命令的参数仅包含一个字符时,可以删除括号。
为了说明第 2 点,你可以执行以下操作:
\newcommand*\FR{\mathfrak}
\FR r\FR R\FR{Rr}
只需按几次键即可获得德语脚本字符。
PS 如果您想将您的作品提交给期刊或会议,请坚持使用标准 LaTeX 符号。编辑不喜欢作者的宏(一个原因是,不同作者的宏彼此不兼容;另一个原因是需要从 LaTeX 生成不同的输出格式,如 MathML,而用户定义的宏会破坏这种格式)