为 LaTeX 格式化的文档有一些额外的规则,但对于复杂的文档,LaTeX 可以大大简化格式化过程。
本质上,LaTeX 是一种文档标记语言,它试图将输出样式与文档的逻辑内容分离。例如,使用 TeX 格式化节标题需要指定标题上方 36 磅的空白,然后将标题本身设置为粗体、24 磅字体,然后将标题文本和页码复制到目录中,然后在标题下方留出 24 磅的空白。相比之下,LaTeX 具有 \section{}
命令,它可以为您完成所有工作。如果您需要更改文档中所有节标题的格式,您可以更改 \section{}
的定义,而不是文档中的文本。您可以看到,对于超过十几页的文档,这可以节省数小时的重新格式化时间。
所有 LaTeX 文档都有三个部分:导言(preamble)、正文(body) 文本和后言(postamble)。这些术语是标准术语,被 TeX 专家广泛使用。
导言至少指定要生成的文档类型——文档类(document class)——以及一个表示文档正文文本开始的语句。例如
\documentclass{article} \begin{document}文档的后言通常非常简单。除非在特殊情况下,否则它仅包含语句
\end{document}请注意
\begin{document}
和 \end{document}
配对。在 LaTeX 中,这称为环境(environment)。所有文本都必须出现在环境中,并且许多命令仅在调用它们的环境中有效。但是,document
环境是 LaTeX 强制执行此约定的唯一实例。也就是说,它是文档中唯一需要的环境。(letter
类是一个例外,它也要求您声明 \begin{letter}
和 \end{letter}
。请参阅 信件 部分。)但是,许多格式化功能被指定为环境。它们在以下部分中描述。文档类可以使用参数调用。例如,我们可以指定,而不是默认的 10 磅字体作为基本点大小(如前面的示例中所示)
\documentclass[12pt]{article}以使用 12 磅作为基本点大小来生成文档。文档类 article 会进行必要的调整。
有一些常用的文档类。它们在下面描述。report 类类似于 article 类,但会生成标题页,并且每个节都从新页面开始。letter 类包括地址、称呼和结尾的特殊定义,其中一些将在下面描述。
您可以使用 \usepackage{}
命令包含罐装的 LaTeX 代码,通常称为宏包(package)。
\usepackage{fancyhdr}上面的命令将从
TEXINPUTS
目录之一包含 LaTeX 样式文件 fancyhdr.sty
,这些目录是您和 teTeX 在安装和设置过程中指定的。
\documentclass{article} \usepackage{fancyhdr} \begin{document}
请注意,\usepackage{}
声明在 \begin{document}
语句之前给出;也就是说,在文档导言中。
fancyhdr.sty
扩展了 \pagestyle{}
命令,以便您可以创建自定义页眉和页脚。大多数 LaTeX 文档类都提供以下标准页面样式的页眉和页脚
\pagestyle{plain} % default pages style -- page number centered at % the bottom of the page. \pagestyle{empty} % no headers or footers \pagestyle{headings} % print section number and page number at the % top of the page. \pagestyle{myheadings} % print custom information in the page heading.百分号右侧的行上的所有内容都是注释。
\pagestyle{}
命令直到下一页才生效。要更改当前页面的页眉和页脚,请使用命令
\thispagestyle{the_pagestyle}
字符样式部分取决于文档中指定的字体。但是,粗体和斜体字符强调应适用于系统上存在的每种字体。下划线也可以使用,但其格式化会带来特殊问题。请参阅下面的 LaTeX 扩展宏包和其他资源 部分。
您可以通过多种方式指定要强调的文本。最便携的方式是 \em
命令。默认情况下,其范围内的所有文本都将变为斜体。例如
This word will be {\em emphasized.}如果您有斜体文本延续到非斜体文本中,则可以指定要使用的斜体校正因子。此命令是
\/
;即,反斜杠和正斜杠。This example {\em will\/} print correctly. This example will {\em not} print correctly.稍微不太便携,但在单独使用的情况下仍然可以接受的是命令
\it
、\bf
和 \tt
,它们分别指定将其范围内的字符使用斜体、粗体和等宽(电传打字机)字体打印。{\tt This text will be printed monospaced,} {\it this text will be italic,} and {\bf this text will be bold\dots} all in one paragraph.命令
\dots
打印一系列三个句点以表示省略号,这些省略号不会跨行断开。最新版本的 LaTeX(即您拥有的版本)包含一些命令,这些命令考虑了当一个强调命令会取代另一个强调命令的情况。
This is {\it not {\bf bold italic!}}发生的情况是,teTeX 使用斜体字体格式化文本,直到遇到
\bf
命令,此时它切换为粗体字体。为了解决这个问题,NFSS 选择字体形状的方案需要每个字体族三个参数:形状、系列和族。并非所有字体集都包含所有这些样式。但是,如果 LaTeX 需要替换另一种字体,它将打印警告。
您可以指定以下字体形状
\textup{text} % upright shape (the default) \textit{text} % italic \textsl{text} % slanted \textsc{text} % small caps以下是大多数字体都有的两个系列
\textmd{text} % medium series (the default) \textbf{text} % boldface series.通常有三个可用的字体族。
\textrm{text} % Roman (the default) \textsf{text} % sans serif \texttt{text} % typewriter (monospaced, Courier-like)使用这些参数设置字体样式,您可以组合效果。
\texttt{\textit{This example likely will result in a font substitution, because many fonts don't include a typewriter italic typeface.}}字体族默认为 Computer Modern,这是一种位图字体。其他字体族通常是 Postscript 格式的 Type 1 字体。有关如何指定它们的详细信息,请参阅 使用 PostScript 字体 部分。
还有许多可用于排版的重音符号和特殊字符形式。这只是一小部分。(尝试在您自己的打印机上排版这些。)
\'{o} \`{e} \^{o} \"{u} \={o} \c{c} `? `! \copyright \pounds \dag最后,有些字符在 TeX 和 LaTeX 中用作元字符或转义字符。其中之一是美元符号,上面提到了。需要用反斜杠转义以按字面意思使用的完整元字符集是
# $ % & _ { }
还有不同的字母表可用,如希腊字母和西里尔字母。LaTeX 提供了许多用于设置非英语文本的功能,这些功能在本文提到的其他参考资料中有所介绍
在 TeX 或 LaTeX 文档中更改页边距不是一项简单的任务。很大程度上取决于您尝试调整页边距的文本的相对缩进量。页边距更改命令的位置也很重要。
对于 LaTeX 文档的文档范围内的更改,可以使用 \evensidemargin
和 \oddsidemargin
命令。它们分别影响偶数页和奇数页的左侧页边距。例如,
\evensidemargin=1in \oddsidemargin=1in在标准的一英寸左侧页边距之外,为偶数页和奇数页的左侧页边距添加一英寸。这些命令会影响整个文档,并将整个文本主体在页面上左右移动,而与任何局部缩进无关,因此可以安全地与 LaTeX 环境(如
verse
和 list
)一起使用。下面是我编写的一组页边距更改宏。它们的效果与上面提到的命令不同。因为它们使用纯 TeX 命令,所以不能保证它们会遵守可能生效的任何 LaTeX 环境的页边距,但您可以将它们放置在文档中的任何位置,并从那时起更改页边距。
%% margins.sty -- v. 0.1 by Robert Kiesling %% Copies of this code may be freely distributed in verbatim form. %% %% Some elementary plain TeX margin-changing commands. Lengths are %% in inches: %% \leftmargin{1} %% sets the document's left margin in 1 inch. %% \leftindent{1} %% sets the following paragraphs' indent in %% 1 inch. %% \rightindent{1} %% sets the following paragraphs' right margins %% %% in 1 inch. %% \llength{3} %% sets the following lines' lengths to 3 inches. %% \message{Margins macros...} \def\lmargin#1{\hoffset = #1 in} \def\lindent#1{\leftskip = #1 in} \def\rindent#1{\rightskip = #1 in} \def\llength#1{\hsize = #1 in} %% %% (End of margins macros.}将此代码放在本地
$TEXINPUTS
目录中名为 margins.sty
的文件中。这些命令在文件的注释部分中进行了解释。要在文档中包含它们,请使用命令\usepackage{margins}在文档导言中。
在讨论这个主题时,如果您不希望右边距对齐(这是默认设置),您可以告诉 LaTeX 通过给出命令来使用右边距不对齐
\raggedright
设置行距也具有其复杂性。
baselineskip 测量是文本行之间的距离。它以绝对测量值给出。例如,
\baselineskip=24pt甚至更好
\setlength{\baselineskip}{24pt}两种形式之间的区别在于,当您使用该命令时,setlength 将遵守可能生效的任何作用域规则。
使用 baselineskip 的问题在于,它还会影响节标题、脚注等的距离。您需要注意 baselineskip 对于您要格式化的任何文本元素是否正确。但是,有一些 LaTeX 宏包(如 setspace.sty
)可以在这些情况下为您提供帮助。请参阅 LaTeX 扩展宏包和其他资源 部分。
LaTeX 提供了文档类,这些文档类为文档提供标准化格式。它们提供了格式化列表、引文、脚注和其他文本元素的环境。以下各节介绍了常用的文档类。
如上所述,article
类和 report
类是相似的。主要区别在于 report 类默认创建标题页,并且每个节都从新页面开始。但是,在大多数情况下,这两个文档类是相似的。
要在这些文档类中创建标题、摘要和署名,您可以键入,例如,
\title{The Breeding Habits of Cacti} \author{John Q. Public} \abstract{Description of how common desert cacti search for appropriate watering holes to perform their breeding rituals.}在文档导言中。然后,在文本开头给出的命令
\maketitle将在 report 类中生成标题页,或在 article 类中在第一页顶部生成标题和摘要。
可以使用包含以下内容的命令定义节
\section \subsection \subsubsection这些命令将生成技术文档中使用的标准编号节。对于未编号的节,请使用
\section* \subsection* \subsubsection*等等。
LaTeX 提供了许多用于格式化显示材料的环境。您可以使用 quotation
环境包含引用的文本。
\begin{quotation} Start of paragraph to be quoted... ... end of paragraph. \end{quotation}对于较短的引用,您可以使用
quote
环境。要格式化诗歌,请使用 verse
环境。
\begin{verse} Because I could not stop for death\\ He kindly stopped for me \end{verse}请注意,您必须使用双反斜杠在正确的位置断行。否则,LaTeX 会像任何其他环境一样填充 verse 环境中的行。
列表有几种风格。要格式化项目符号列表,请使用 list
环境
\begin{list} \item This is the first item of the list. \item This is the second item of the list... \item ... and so on. \end{list}
编号列表使用 enumerate
环境
\begin{enumerate} \item Item No. 1. \item Item No. 2. \item \dots \end{enumerate}
描述列表使用 description
环境。
\begin{description} \item{Oven} Dirty, needs new burner. \item{Refrigerator} Dirty. Sorry. \item{Sink and drainboard} Stained, drippy, cold water faucet. \end{description}
letter
类使用特殊定义来格式化商务信函。
letter
环境接受一个参数,即信件收件人的地址。address
命令(必须出现在文档导言中)定义回信地址。signature
命令定义发件人的姓名,该姓名出现在结尾之后。
一个简单的商务信函的 LaTeX 源代码可能如下所示。
\documentclass[12pt]{letter} \signature{John Q. Public} \address{123 Main St.\\Los Angeles, CA. 96005\\Tel: 123/456-7890} \begin{document} \begin{letter}{ACME Brick Co.\\100 Ash St.\\San Diego, CA 96403} \opening{Dear Sir/Madam:} With regard to one of your bricks that I found on my living room carpet surrounded by shards of my broken front window... (Remainder of the body of the letter.) \closing{Sincerely,} \end{letter} \end{document}请注意,地址包含双反斜杠,用于指定应在哪里换行。