LaTeX中\@restonecolfalse什么意思?最初在哪里定义?

2020-10-22 17:34发布

如题。我在编写一个模板,需要自定义双语目录,在网上搜索资料的时候发现很多自定义目录都用到了\if@twocolumn、\@restonecoltrue以及\@restonecolfalse等宏,请问这...

如题。我在编写一个模板,需要自定义双语目录,在网上搜索资料的时候发现很多自定义目录都用到了\if@twocolumn、\@restonecoltrue以及\@restonecolfalse等宏,请问这些宏是什么意思?它们最初在哪里定义?
2条回答
zepinglee
2020-10-23 16:42 .采纳回答
这个问题已经不太适合“基础入门”的标签了,应该是“模板开发”。 LaTeX 的源码在 [source2e](http://mirrors.ctan.org/macros/latex/base/source2e.pdf),几个标准文档类(article、book 和 report)的源码在 [classes](http://mirrors.ctan.org/macros/latex/base/classes.pdf) ,这是在 `\documentclass` 载入时执行的。 回到你的问题,`\@restonecolfalse` 是在 classes 的第 3 页,`\newif\if@restonecol` 在定义 `\if@restonecol` 的同时也会定义 `\@restonecoltrue` 和 `\@restonecolfalse`。`\if@twocolumn` 是在 source2e,应该不难搜索到。 在重定义内容时要注意,已经调用的宏包或者文档类可能已经重定义了底层的内容,比如 `ctexart` 就调用了许多宏包,并在 `article` 的基础上进行了很多修改。另一方面,重定义时需要避免跟后续调用的宏包冲突,比如 `hyperref` 通常在导言区的结尾,也就是在载入其他宏包并进行设置后才载入 `hyperref`。

一周热门 更多>