将序言分离到专用文件的最佳做法是什么?
我见过两种变体:
- 包:preamble.sty 和
\usepackage{preamble}
- .tex 文件:preamble.tex 和
\input{preamble}
哪一个是优选的?
答案1
我的观点主要是:
添加前导命令功能文档(例如,定义宏)属于包(.sty
文件)。
定义前导命令看文档(纸张几何形状、页眉、字体选择)属于自定义文档类(.cls
文件)。您可以使用高级 LaTeX 命令从标准发行类派生自定义类,并将选项传递给它。
看风格/课程教程举出两者的例子。
更新2022-03-27 用户 @tush 要求提供参考。我能找到的最接近的参考是适用于课程和包编写者的 LaTex2eLaTeX 项目团队写道:
2.3 它是一个类还是一个包?
当你想在文件中放入一些新的 LaTeX 命令时,要做的第一件事是决定它应该是文档类还是包。经验法则是:
如果命令可以与任何文档类一起使用,则将它们作为一个包;如果不能,则将它们作为一个类。
类有两种主要类型:一种是像
article
、report
或 这样letter
的独立类;另一种是其他类的扩展或变体——例如,proc
文档类,它建立在article
文档类之上。因此,一家公司可能有一个本地ownlet
类,用于使用自己的带头便笺纸打印信件。这样的类将建立在现有类之上letter
,但不能与任何其他文档类一起使用,所以我们有ownlet.cls
而不是ownlet.sty
。相比之下,该
graphics
包提供了将图像包含到 LaTeX 文档中的命令。由于这些命令可以用于任何文档类,因此我们有graphics.sty
而不是graphics.cls
。
设置文档外观的命令(如纸张几何形状、页眉、字体选择)似乎更接近案例ownlet
而不是graphics
案例本身。这就是为什么我认为它们属于类而不是包。