下一页 上一页 目录

4. LaTeX 命令。

4.1 文档结构。

为 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}

4.2 字符和字体样式。

字符样式部分取决于文档中指定的字体。但是,粗体和斜体字符强调应适用于系统上存在的每种字体。下划线也可以使用,但其格式化会带来特殊问题。请参阅下面的 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 提供了许多用于设置非英语文本的功能,这些功能在本文提到的其他参考资料中有所介绍

4.3 页边距和行距。

在 TeX 或 LaTeX 文档中更改页边距不是一项简单的任务。很大程度上取决于您尝试调整页边距的文本的相对缩进量。页边距更改命令的位置也很重要。

对于 LaTeX 文档的文档范围内的更改,可以使用 \evensidemargin\oddsidemargin 命令。它们分别影响偶数页和奇数页的左侧页边距。例如,

\evensidemargin=1in
\oddsidemargin=1in
在标准的一英寸左侧页边距之外,为偶数页和奇数页的左侧页边距添加一英寸。这些命令会影响整个文档,并将整个文本主体在页面上左右移动,而与任何局部缩进无关,因此可以安全地与 LaTeX 环境(如 verselist)一起使用。

下面是我编写的一组页边距更改宏。它们的效果与上面提到的命令不同。因为它们使用纯 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 扩展宏包和其他资源 部分。

4.4 文档类。

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}
请注意,地址包含双反斜杠,用于指定应在哪里换行。


下一页 上一页 目录