我应该在文档类之前加载一些包吗?

我应该在文档类之前加载一些包吗?

所以我在读修复 LaTeX2e其中有几个形式的例子

\RequirePackage{fixltx2e}
\documentclass...

什么?我以为documentclass总是在最顶部。还有其他情况下我应该先 require 包吗documentclass

答案1

通常,包加载的用途是使用 with\usepackage之后,\documentclassfixltx2e本质上是一份不相关的修复列表,这些修复实际上应该包含在格式中,因此可能包含文档类文件想要使用的命令,因此应该在使用之前进行修复。实际上,考虑到当前的修复集fixltx2e和类文件中使用的典型命令,在前言的开头使用它\usepackage通常足够安全。

正如注释中所述fix-cm(实际上是从同一个源文件生成的),它类似地改变了标准 OT1 cm 字体的字体设置,因此如果该类进行任何排版(包括在盒子寄存器中进行试排版以测量事物),则应该在文档类之前加载,而不仅仅是可见的排版输出。

答案2

仅关于以下内容的太长评论:

我以为\documentclass总是在最顶端。

不一定,除了\RequirePackage{}可能需要在 .cls 文件中包含的宏之前加载包之外,许多(并非全部)命令都可以在上面运行\documentclass。例如(这是一个概念证明,而不是建议!)这是一个功能代码:

\def\mymacro{Some macro make this text. }
\newcommand\thistoo{This too. }
\title{My title}
\author{Me}
\date{\today}

\documentclass{article}
\begin{document}
\maketitle
Hello, Word. \mymacro 
\thistoo    
\end{document}

事实上,您可以拥有一个main.tex没有 的工作文件\documentclass,因为它可以从子文档中加载:

\input{pre-preamble}
\begin{document}
\TEST
\lipsum[1-10]
\end{document}

哪里pre-preamble.tex可能有一些像:

% pre-preamble.tex
 \def\TEST{A test. }
\documentclass[twocolumn]{article}
\usepackage{lipsum}

相关内容