标准类

LaTeX 默认就带有四个标准 class:article、report、book、letter。如何用 \documentclass 选择其中一个,另有专页说明;本页逐一比较这四者具体会改变什么,例如是否有章、单面还是双面、标题是否独立成页。它们是不依赖环境的“最具可移植性的基础”,但我们也会看到这种朴素性带来的限制。

四个 class

先看整体。article 是最常用的通用 class,适合学术论文、短报告和文章。它最重要的特征是 没有 \chapter,最上层标题是 \sectionreport\chapter,适合跨多个章的较长文档,例如技术报告和学位论文。默认采用 单面(oneside 版式,并把标题放在独立的 标题页 上。book 也有 \chapter,但面向书籍,默认 双面(twoside,并可用 \frontmatter / \mainmatter / \backmatter 切换前言部分、正文和后附部分。letter 只用于信函,拥有 \address\signature 等与其他 class 完全不同的命令体系。

如何选择 class、如何书写 \documentclass[options]{class} 这一基础机制,在“Document class & preamble”中介绍。本页再深入一层,专注于把四个标准 class 并排比较

一览比较

把四者放进表格,就能看出它们的设计意图。关键问题有四个:是否有章,单面还是双面,标题是否独立成页,以及预期用途是什么。

Class章 \chapter默认单双面标题页主要用途
article无(最上层是 \section)单面无(与正文同页)论文、短报告、文章
report单面有(独立页面)较长报告、学位论文
book双面有(独立页面)书籍
letter无(信函专用结构)单面信函、通信文

同样有章的 reportbook 主要差在版式。book 以双面印刷为前提,跨页时左右边距会互换,章默认从右页(奇数页)开始(openright)。report 以单面为前提,章可以从任意页面开始(openany)。文章的逻辑可以相同,区别在于印刷和装订的前提。

四者共同接受的选项

slides 之外,标准 class 都通过 \documentclass[...]{...} 的方括号接受一组共通选项。多数是作用于整个文档的开关;需要注意的是,有些选项的 默认值会因 class 而异

  • 10pt / 11pt / 12pt — 正文基准字号。默认是 10pt
  • 纸张大小letterpaper(默认)、a4papera5paperb5paperlegalpaperexecutivepaper。在日本几乎总会指定 a4paper
  • twocolumn — 将正文设为双栏(默认是单栏 onecolumn)。
  • twoside / oneside — 双面 / 单面版式。默认是 oneside,但只有 book 默认为 twoside
  • titlepage / notitlepage — 标题是否单独成页。reportbook 默认为 titlepagearticle 默认为 notitlepage
  • openright / openany — 章从右页开始还是任意页面开始。book 默认为 openrightreport 默认为 openany(对没有章的 article 无关)。
  • fleqn — 行间公式左对齐(默认居中)。leqno — 公式编号放在左侧(默认右侧)。
  • landscape — 横向纸张。draft — 用黑条标出 overfull box(默认 final)。openbib — 以“开放”格式排参考文献。

例如 \documentclass[11pt,a4paper,twoside]{report} 表示 11pt、A4、双面的 report。因为 report 默认是单面,所以这里补上了 twoside。历史上还有用于演示的 slides class,但现在实际上已经被 beamer 取代,新文档几乎不会再选它。

report 的最小示例

下面是一个最小 report\maketitle 会把标题信息排在 独立标题页 上(这是 reportbook 的默认行为),正文从后面的第一个 \chapter 开始。在 article 中,标题与正文同页,并且不能使用 \chapter;这是二者最直观的差异。

latex
\documentclass[11pt,a4paper]{report}
\title{An Experimental Report}
\author{Ada Lovelace}
\date{\today}

\begin{document}
\maketitle          % separate title page (report/book default)
\tableofcontents

\chapter{Introduction}
This report has chapters, unlike \texttt{article}.

\chapter{Method}
\section{Apparatus}
Sections live inside chapters here.
\end{document}

把它换成 book 后,就会变成双面版式;加入 \frontmatter 后,到目录为止会用罗马数字(i, ii, …)编号,而从 \mainmatter 开始会在第 1 章重置为阿拉伯数字。book 特有的 front/main/back matter 机制,在“Document class & preamble”中有详细说明。

letter 的结构

letter 的结构与另外三个完全不同。发件人信息,即 \address{...}(自己的地址)和 \signature{...}(签名),放在 导言区,供所有信件共用。信件本身是一个 letter 环境,其 参数就是收件人地址。正文以 \opening{...}(开头问候)开始,以 \closing{...}(结束语)收尾。没有标题页,也没有 \maketitle

latex
\documentclass{letter}
\address{1 Computing Way \\ London}   % sender, in the preamble
\signature{Ada Lovelace}

\begin{document}
\begin{letter}{Charles Babbage \\ 2 Engine Road}  % recipient = argument
\opening{Dear Mr.\ Babbage,}
Thank you for the notes on the Analytical Engine.
\closing{Yours sincerely,}
\cc{The Royal Society}
\encl{Two diagrams}
\end{letter}
\end{document}

在一个文件中并排放置多个 letter 环境,就能共享同一个发件人,同时生成任意多封不同收件人的信。\closing 之后可以接 \cc{...} 表示抄送对象,\encl{...} 列出附件,\ps 写追言。地址内换行用 \\ 分隔。

标准 class 的边界与下一步

标准 class 是 可移植性很高的基础:任何安装中都有,无需额外安装,也适合长期保存。先从这里开始是稳妥的默认做法。不过,一旦想细致设计页面,例如标题样式、页眉页脚、精确边距,它们较旧的设计就会让调整变得别扭。

这时就转向替代 class。KOMA-Scriptscrartcl / scrreprt / scrbook)和 memoir 提供更整洁的默认排版与丰富的设置接口,常被当作标准 class 的上位替代来使用(参见“Alternative classes”)。若是演示幻灯片,标准选择是 beamer,不是 slides

日文则另当别论。article 等标准 class 并非为日文排版设计,字距、行距以及日欧文间距都不会妥善处理。因此 pLaTeX / upLaTeX 使用 jsclassesjsarticle / jsbook),LuaLaTeX 使用 ltjsclasses,也可以使用更新的 jlreq(参见“js-based classes”)。如果写日文,请从这些 class 开始,而不是标准 class。

实务中从要求倒推选择

选择 class 不是凭喜好,而是从提交要求倒推。无需章的课程报告用 article,分章技术报告用 report,需要装订和跨页设计的原稿用 book,通信文用 letter。如果提供了指定模板,其中的 class 已经决定了正文结构、边距和标题处理方式,不要把它改回标准 class。

  • 仅提交 PDFarticle 或带 onesidereport 往往足够。
  • 打印并装订 — 考虑 twoside 和装订修正;如果标准 class 太僵硬,可考虑 KOMA-Script 或 memoir。
  • 以日文正文为主 — 不要从标准 class 开始,而从 jsclasses、ltjsclasses 或 jlreq 开始。
  • 幻灯片 — 选择另页介绍的 beamer,不要使用旧的 slides class。

中途更换 class 后要检查什么

在原稿中途从 article 改成 report,或从 report 改成 book,即使正文命令看起来相同,PDF 的性质也会改变。\maketitle 的位置、是否有 \chapter、目录深度、页码重置、单面 / 双面边距都会变化。更换 class 应视为改变文档结构,而不是“稍微改改外观”。

检查项为什么重要常见修正
title标题页行为会改变显式设置 titlepagenotitlepage
sectionsarticle 没有 \chapter需要章就用 report / book;不需要就降回 \section
sidesbook 默认双面仅提交 PDF 用 oneside,装订用 twoside,要有意选择
frontmatterbook 可分隔前言、正文、后附部分有意安排 \frontmatter / \mainmatter / \backmatter 的位置