在查阅书籍或示例代码时,我总是\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
。