跳至内容
Topos Uranos

摘要

本课讲如何选择文档的总体形式及其页面形式。它按照三种标准文档类 article、report 和 book 各自提供的功能(章、标题页、奇偶页、摘要)加以比较,并由此推出哪一种适合哪一类学术文体;介绍 KOMA-Script 的文档类,作为本课程针对欧洲排版传统推荐的替代方案;逐一说明设定纸张、字号、单面或双面印刷、标题页和草稿模式的文档类选项;解释文档类为什么留出宽大的页边距,以及如何用 geometry 宏包修改页边距而不破坏行长;最后讲页面样式、页眉和页脚。

学习目标

  1. 根据文档的文体和印刷方式,在 article、report 和 book 或其 KOMA-Script 对应类之间作出选择,并以各文档类提供的功能说明理由。
  2. 声明设定纸张、字号、单面或双面印刷、标题页、各章起始页和草稿模式的文档类选项,并预测其效果。
  3. 解释页边距、行长与易读性之间的关系,并用 geometry 设定既符合规范又不使行长过度的页边距。
  4. 预测文档每一页的页面样式,包括文档类自行决定的那些页,并用 \pagestyle 和 \thispagestyle 加以改变。
  5. 用 fancyhdr 或 scrlayer-scrpage 编排自定义的页眉和页脚。

文档类决定总体形式

每个源文件的第一行都声明文档的文档类,这在文档的结构剖析一课中已经见过。文档类不是装饰:它决定有哪些层级的划分、\maketitle 做什么、有没有摘要环境、页边距如何分配,以及偶数页是否与奇数页相区别。既然如此,选择文档类就是关于形式的第一个决定,最好在了解各文档类带来什么之后再作决定。

LaTeX 为学术文本提供三种标准文档类。按各自的当前版本核对,它们的区别如下。

  • article 没有章:它最大的划分是 \section。标题与正文排在同一页,摘要有自己的 abstract 环境,并且单面印刷。
  • report 增加了 \chapter。标题单独占一页,摘要也是,并且单面印刷;每章从新的一页开始,无论奇偶。
  • book 有章和标题页,但双面印刷:奇偶页的页边距交替变化,每章从奇数页开始,即书本打开时右边的一页,必要时宁可留下一张空白页。它没有 abstract 环境,因为书不带摘要。
例题带摘要的论文

在 article 中,标题、摘要和正文共用第一页。这里的中文设置没有使用 babel,abstract 环境的标题默认是英文的 “Abstract”,所以第四行用 \renewcommand 把 \abstractname 改为“摘要”。第二、三行是中文设置:luatexja-fontspec 宏包在 fontspec 的基础上加入汉字排版,\setmainjfont 选择含有汉字的字体。

LaTeX 代码
\documentclass{article}\usepackage{luatexja-fontspec}\setmainjfont{Noto Serif CJK SC}\renewcommand{\abstractname}{摘要}\title{三个纬度上的白昼长度}\author{李明}\date{}\begin{document}\maketitle\begin{abstract}比较三座城市一年中的日照时数,并用纬度解释其差异。\end{abstract}\section{问题的提出}白昼的长度随季节和纬度而变化。\end{document}
结果
结果

如果把同一份源文件改用 report,标题会单独占第一页,摘要单独占第二页,正文从第三页开始。

文档类不提供的东西会引发错误,而错误会准确地说明这一点。如果在 article 文档的第五行写 \chapter{问题的提出},这个命令在该文档类中并不存在。

编译日志
! Undefined control sequence.l.5 \chapter            {问题的提出}

同样,在 book 中写摘要,编译会停在 \begin{abstract}。

编译日志
! LaTeX Error: Environment abstract undefined.

按文体选择文档类

由上可得一条标准,它不取决于页数,而取决于结构和印刷方式。期刊论文、课程作业或简短报告没有章:它们的文档类是 article。篇幅较长的报告或学位论文有章;如果单面印刷,如许多大学所要求的那样,它们的文档类是 report。书籍,或将双面印刷并像书一样装订的学位论文,需要 book。不过,这条标准允许调整:下面马上要讲的文档类选项可以让 report 双面印刷,这样需要摘要的装订论文就不必放弃摘要。如果期刊提供自己的文档类,那么决定已经作出:使用它的文档类。