将项目放在 \documentclass 之前

将项目放在 \documentclass 之前

在查阅书籍或示例代码时,我总是\documentclass首先看到出现的内容。这绝对有必要吗?

我创建了一些看起来可以编译的测试代码:

\def\SetClass{article}
\documentclass{\SetClass}
\begin{document}
    This is some text.
\end{document}

在 之前放置其他项目(例如\input、或 等详细信息)有问题吗?\usepackage\documentclass

答案1

其实没有问题,事实上有些技术在 之前使用输入\documentclass,例如设置条件。必须小心不要定义稍后可以通过类或包定义的命令\newcommand(例如\large)。

当然,在之前设置文本宽度或文本高度没有什么意义\documentclass,但这并不被禁止:只是它不起作用。

您甚至可以说\input{file},只要中的代码file.tex不违反上面所述的“规则”。

之前唯一正式禁止的命令\documentclass\usepackage,正如 doncherry 指出的那样。其他命令只是不能因为它们是无意义的(\begin{document}就是一个例子)。

当然,在 之前不应有任何文本生成命令\documentclass,也不应该有任何依赖于文档属性(例如默认字体和大小,这些属性稍后设置)的定义或测量。但可以说\AtBeginDocument

答案2

你不能\usepackage在之前使用\documentclass,否则会出错。不过,建议在它之前加载一些包,例如naghyphsubst;你必须\RequirePackage为它们使用。

相关内容