latex中@的含意

Posted ssyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了latex中@的含意相关的知识,希望对你有一定的参考价值。

@arabic跟arabic类似,指定后面计数器的显示方式

[email protected] 是latex定义的xxx计数器的内部表示方式

 

ctex-faq里面说makeatletter使得@成为一个普通字母
:  那么平时@不是普通字母么?
:  不是可以直接打出来不用写成@的么?

tex将字符分成16类(catcode),其中第11类是letter(a-z, A-Z),第12类是other,
就是除了其它15类的那种。tex命令只能由letter组成(这也是很多人在macro名中
用数字出错的原因,数字就属于other类)。@默认属于other类,故不能在macro的
名字中出现。

latex有个不成文的规则就是内部命令最好用@(latex自身的命令,如@arabic,
或者宏包自身的命令,如articl.cls中的@maketitle),而用户命令中尽量不要用@。
在一定程度上减小命名冲突。

根据前面的规则 @ 是不能出现在macro名字中的,所以非要用就得更改它的catcode属性
latex在cls和sty文件中,自动将@设置为letter类,也就是它可以作为macro名字
的一部分。所以我们在cls或sty中能看到满眼的@。

在用户文件中latex恢复了 @ 的类别,仍然属于other类。这样就从机制上限制用
户命令命名时使用@。但是我们经常需要修改宏包内部的命令,如果这个命令名字
包含 @,首先需要做的就是更改@的catcode为letter,这也就是makeatletter的作用,
在修改完之后,一般建议恢复@的catcode为other,这也就是makeatother。

在Latex source中,这两个命令的定义是:
defmakeatletter{catcode`@11 elax}
defmakeatother{catcode`@12 elax}


























以上是关于latex中@的含意的主要内容,如果未能解决你的问题,请参考以下文章

LaTeX技巧22:LaTeX文档中的参考文献初级

latex5 如何快速写出公式对应的latex公式

latex5 如何快速写出公式对应的latex公式

LaTeX公式换行

在LaTeX中使用颜色 Using colours in LaTeX

latex中插入的图形与文字间距太大,怎么缩小