这个问题的灵感来自于标签中的变音符号并引用了对如何在下标中自动添加\!?
然而最好还是避免
_
使用标签。
我已经用“命名空间”命名所有标签(例如fig:
,,eq:
等等tab:
)并避免使用变音符号(以及 Unicode 字符),但想知道是否还有更多需要考虑的事情以避免编译错误和与加载的包冲突。
有哪些标签命名规则和建议可以避免错误和冲突?
答案1
最安全的做法是坚持使用 a-zA-Z0-9。标点符号(如"
和 ):
可能会被 babel 激活。Babel 会尽一些努力确保即使处于激活状态,也是安全的,但您需要依赖各个语言文件中的各个定义。基本上,内部键是一个宏名称,坚持使用可以轻松转换为宏名称的内容是个好主意,因此(ascii)字母和数字也可以。
答案2
这是一个主观问题,但通常的建议是:不要使用对 TeX 有特殊含义的任何字符(即除“字母”或“其他”之外的 catcode)。可能会有例外,但如果你不理解它们是什么,依赖它们会很烦人,而且谁能真正理解 TeX 在想什么,或者在只是为了个人方便而制作一些元数据时想要理解呢?我有一个例外做觉得有用(并且令人难忘)的是空格是允许的。这样我就可以写出清晰易读的长标签,例如\ref{thm:fermat's last theorem}
。
答案3
以下是我的看法:标准 ASCII 字符集中的字母和数字是安全的。空格也可以,但我已养成了使用_
空格的习惯,例如在命名文件时,以使文件尽可能易于移植。
我可以建议的另一件事是使用匈牙利命名法,就像编程一样,如果你熟悉它的话。
另外,还有一些额外的内容(我经常遇到的事情):小心复制粘贴和修改方程式,您还需要修改标签!......(好吧,这只是在编译时产生警告,但仍然......)