课程 五

文档类

本课解释了什么是文档类以及它如何影响文档布局和设计。它列出了在 TeX 发行版中可以找到的主要文档类。

你可能已经注意到,到目前为止我们创建的所有 LaTeX 文档都以\documentclass行开始,而且 \documentclass{article}是最常见的选择。(我们在上一课中需要 \documentclass{report}来尝试\chapter命令。)这行是所有 LaTeX 文档都必需的,而且几乎总是应该是文档中的第一个命令。

注意:在本课程中,我们将使用ctexart类来创建包含中文的文档,这是一个中文文档类,可以自动处理中文的排版问题。

文档类的作用

文档类设置文档的整体布局,例如:

文档类也可以更普遍地添加新命令;这在特殊情况下尤其如此,比如创建演示幻灯片。

文档类行也可以设置_全局选项_:应用于整个文档的内容。这些选项在方括号中给出: \documentclass[<选项>]{<名称>}。这种语法,即在方括号中首先给出可选信息,在许多 LaTeX 命令中都使用。

基础文档类

LaTeX 自带一组标准文档类,它们的外观相似但有一些变化:

这些类都有自己的选项,可以用来调整布局和功能。articlereportbook类有非常相似的可用命令,正如我们已经看到的。

与之相对,CTex包提供了一些中文文档类:

如果某种标准文档类未发现对应的ctex版本,可以在文档类定义后添加ctex包来调用中文文档类。引用格式为:

\documentclass{<标准文档类名>}
\usepackage{ctex}

选择不同的文档类,可能会有一些可用命令与环境的细微差别。例如,当写信时,可用的命令有点不同:

% !TEX program=lualatex

\documentclass{letter}
\usepackage{ctex}
\begin{document}

\begin{letter}{某某地址\\某某街道\\某某城市}

\opening{亲爱的先生或女士,}

信件正文在这里

\closing{此致,}

\end{letter}

\end{document}

看看如何使用\\来分隔地址的行;我们将在稍后讨论换行。另外请注意letter类如何为每封信创建一个新的环境并有专门的命令。

标准的articlereportbook类接受10pt11pt12pt选项来改变字体大小,以及twocolumn选项来使文档成为双栏。

功能丰富的类

核心类非常稳定,但这也意味着它们在设计和可用命令范围方面都相当保守。随着时间的推移,一些更强大的类被编写出来,让你无需手动操作就可以改变设计(我们将在稍后提到)。

美国数学学会提供标准类的变体(amsartamsbook),设计风格更传统,更接近数学期刊出版物中使用的风格。

两个最大和最流行的”扩展”类是KOMA-Script包和memoir类。KOMA-Script提供了一组与标准类”平行”的类:scrartclscrreprtscrbookscrlttr2,而memoir类则是一个单一的类,最像是book的扩展。

这些扩展类有很多定制钩子,我们将在练习中探索一些。你可能想知道我们如何了解它们提供的钩子;我们将在后面的课程中介绍这一点,但你总是可以提前了解!

演示文稿

slides类是为制作20世纪80年代中期的物理幻灯片而开发的,因此没有任何功能来创建基于PDF的交互式演示文稿。有现代的类可以做到这一点:它们相对于一般的 LaTeX 文档来说比较特殊,所以我们在补充信息中介绍了它们。

练习

探索如何在标准类、KOMA包和memoir之间更改文档类如何影响文档的外观。

% !TEX program=lualatex

\documentclass{ctexart}
\begin{document}

\section{简介}

这是一个示例文档,带有一些虚拟文本\footnote{和一个脚注}。这段文字相当长,
因为我们可能想看看让文档成为双栏的效果。

\end{document}

添加类选项twocolumn,看看布局如何变化。

\section改为\chapter,找出使用scrreprt类时以下类选项有什么效果: