提问于:
浏览数:
2115
2 回答
0
这个问题已经不太适合“基础入门”的标签了,应该是“模板开发”。
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`。
-
非常感谢! – wwlswj 2020-11-17 16:12 回复
0
`\if@twocolumn` 是判断现在是否是双栏排版,毕竟单双栏是有区别的,如果是,就执行第一条命令,如果不是,就第二条。
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。