下一页 上一页 目录

3. TeX 命令。

准备用于 TeX 排版的文件非常简单。确保纯文本文件的段落之间有一个空行,并使用以下命令通过 TeX 程序运行文件

tex your_text_file
结果将是一个具有相同基本名称和扩展名 .dvi 的文件。TeX 使用 10 磅 Computer Modern Roman 字体,单倍行距,左右页边距对齐来格式化文本。如果您收到来自美元符号等特殊字符的错误消息,请使用反斜杠字符 \ 对其进行转义,然后再次在文件上运行 TeX。您应该能够使用您选择的 .dvi 文件转换器(见上文)处理生成的文件,以获得打印输出。

TeX 输入的一个特点是您必须使用开始和结束引号,这些引号在输入文件中用重音符和单引号字符表示。Emacs 的 TeX 模式会自动为您执行此操作。

"These are ASCII-type quotes."
``These are `TeX-style' quotes.''

3.1 命令概述。

TeX 中的命令以反斜杠 (``\'') 开头。例如,更改行间距的命令是

\baselineskip=24pt

基线是一行上字符的底部,不包括降部。一行基线与下一行基线之间的距离是 \baselineskip,并被赋值为 24 磅。

TeX 中的测量值或尺寸通常以以下单位给出

pt                % Point        1/72 in.
pc                % Pica:        12 pt.
in                % Inch:        72.27 pt.
cm                % Centimeter:  2.54 cm = 1 in.
mm                % Millimeter:  10 mm = 1 cm.

某些命令不接受赋值。例如

\smallskip        % Approximately 3 pt.
\medskip          % Two \smallskips.
\bigskip          % Two \medskips.

\smallskip 在文档中插入 3 磅的垂直空间。测量值是近似值,因为 TeX 需要调整页面中断、节标题和其他垂直空间单位的尺寸。水平间距也是如此。

\hsize=6.5in
此命令将行长设置为 6.5 英寸的宽度。TeX 尝试通过调整单词和某些字母之间的间距来填充行。如果 TeX 无法在公差范围内填充一行,它会生成警告消息,并尽力调整行内的水平间距。格式公差在公差部分中讨论。

还有许多其他命令可以指定水平和垂直尺寸以及公差,下面描述最常用的命令。

3.2 字体命令。

在 TeX 中,默认字体为 10 磅 Computer Modern Roman。要指定字体,如斜体、粗体或等宽字体,请使用以下命令。

\rm          % Roman (the default).
\it          % Italics.
\bf          % Bold.
\tt          % Monospaced (teletype).
\sl          % Oblique (slanted).
这些命令在文本中出现的位置更改字体,如本例所示。
This text is Roman, \it and this text is italic.  \bf This text is
bold, and \rm this text is in Roman again.

要为您的文档指定字体,请使用 \font 命令。

\font\romantwelve=cmr12
这将创建字体命令 \romantwelve,当在文本中使用时,它会将字体更改为 12 磅 Computer Modern Roman 字体。
\romantwelve
This is the Computer Modern Roman font at 12 points.
有关 teTeX 发行版中字体的信息,请查看文件
/usr/lib/teTeX/texmf/doc/fonts/fontname/fontname.dvi

如果您想打印字体的示例,请 TeX 文件

/usr/lib/teTeX/texmf/tex/plain/base/fontchart.tex
并在提示符处填写您要打印的字体的名称。

您还可以更改字体大小以获得不同的效果。字体放大率是指数级的,并使用 scaled \magstep 命令指定,该命令放置在字体规范之后。

\font\sfmedium=cmss12 scaled \magstep 1
此命令将为您提供一个无衬线字体,其大小是 12 磅 Computer Modern 无衬线字体的 120%。字体可以以 0 到 5 的步长放大。每个步长都额外提供 120% 的放大率。

3.3 段落样式和尺寸。

如上所述,TeX 默认以 10 磅 Computer Modern Roman 字体排版文本。行的长度是 \hsize 的值,默认为 6.5 英寸。例如,如果您想将 \hsize 的值更改为 5.5 英寸,请使用此命令。

\hsize=5.5in

在 TeX 中,尺寸是一个可调整的长度单位,可以是水平或垂直的。尺寸可以增加或减少的量可以在其定义中指定。与尺寸密切相关的是skip,它是一个放置在 TeX 内部寄存器之一中的尺寸。Skip 使用 \newskip 命令定义。\smallskip 尺寸,由 TeX 定义为

\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
\smallskip 命令是以下内容的简写
\vskip\smallskipamount

有许多尺寸控制页面布局。它们在页面布局部分中进行了总结。

TeX 使用左右对齐的页边距格式化段落。如果您希望文本仅左对齐,请使用此命令

\raggedright

要排版右对齐页边距的行,请使用 \rightline 命令

\rightline{This is the line to be typeset.}

\line 命令排版其参数的文本以填充整行。

\line{This text will be spaced to fit the entire line.}

\hfil 命令添加空格以填充其所在行的位置。因此,例如,\rightline 命令等效于

\line{\hfilThis line will be right justified.}

要排版居中的行,请使用 \centerline 命令。

\centerline{This is the line to be centered.}

要更改左边距,请设置 \hoffset 的值,如本例所示

\hoffset=1.5in

\parindent 命令指定每个段落首行缩进的量。

\parindent=.5in

另外两个尺寸 \leftskip\rightskip 将分别缩进其后段落的右边距和左边距。

\leftskip=.5in
\rightskip=.5in
控制字 \narrower 等效于
\leftskip=\parindent
\rightskip=\parindent
也就是说,\narrower 将段落边距缩小 \parindent 的值

如上一节所述,\baselineskip 指定行之间的距离。默认值为 12 磅。要近似双倍行距文本,请使用以下命令。

\baselineskip=\baselineskip*1.6

\parskip 命令指定段落之间除 \baselineskip 之外的距离。默认情况下,不添加额外的空格,但段落之间的距离可以拉伸多达 1 磅,以正确填充页面。要在段落之间放置空行,请使用此命令

\parskip=\baselineskip

公差。(每行后面的黑色矩形是什么?)

TeX 通常以严格的公差格式化文本。如果由于某种原因,文本无法在这些公差范围内格式化,TeX 会生成警告消息并尽力格式化文本。如果文本必须拉伸得太长才能适合该行,TeX 会警告您 \hbox 不足。必须挤压才能适合该行的文本会产生溢出的 \hbox 警告。

对于每个溢出的 \hbox,TeX 会在该行后放置一个slug,即黑色矩形。Slug 表示该行无法在 \hbadness 参数设置的规范范围内格式化。

文本在其指定尺寸内的拟合程度由其badness来衡量,这是一个介于 0 到 10000 之间的数字。Badness 为 0 表示完美拟合,而 badness 为 10000 表示该行可能永远不适合。\hbadness 的默认值为 1000。如果您将 \hbadness 设置为 10000,TeX 将不会报告不足的行。

有时 TeX 允许一行延伸超过右边距。这是 TeX 作者做出的审美决定。数量由 \hfuzz 参数确定,该参数默认为 0.1 磅。如果文本不适合该行,则 \tolerance 参数确定 TeX 将如何处理溢出的 \hbox\tolerance 的默认值为 200。将 \tolerance 设置为 1000 会抑制溢出的 \hbox 警告和 slug 的打印。

3.4 页面布局。

除了上一节中描述的左边距和行长尺寸之外,TeX 还允许您指定顶部和底部边距以及垂直间距。

与上一节中描述的 \hsize\hoffset 尺寸类似,TeX 还提供了 \vsize\voffset 命令。\vsize 的默认值为 8.9 英寸,而 \voffset 默认为 0。

通常,teTeX 将文本第一行的开头放置在纸张顶部下方 1 英寸处,并距左边缘 1 英寸。您可以使用以下命令使文本更靠近页面顶部开始

\voffset=-0.5in

如果您想在文档中添加垂直空间,命令 \smallskip\medskip\bigskip 将添加大约 3、6 和 12 磅的空白垂直空间。这些测量值是近似值;TeX 将最多调整 1 磅,以便正确填充页面。

\vfill 命令在页面上的段落之间添加可调整的垂直空间。它是无限可拉伸的,因此它将添加垂直空间以尽可能多地填充页面的其余部分。如果您想指定尺寸,请使用 \vskip,如

\vskip 10pt

命令 \hss\vss 类似于 \hfil\vfill,但它们提供的尺寸是无限可收缩和无限可拉伸的。

\vskip\vfill 命令产生灵活的长度。它们不会在没有文本的地方添加空格;例如,在页面顶部。如果您想添加绝对空间,请使用 \vglue

TeX 用尽可能多的文本填充 \vsize 尺寸,然后再开始新页。要强制分页,请使用 \vfill \eject 序列。如果未使用 \vfill,则 \break 之前的文本将被间隔以填充页面。

如果您希望 TeX 在垂直页面尺寸调整方面更灵活,请将 \raggedbottom 命令放在您的文档中。然后,TeX 将稍微调整每个页面的底部边距,以使垂直间距更加一致。

3.5 页码、页眉和页脚。

默认情况下,teTeX 将页码放置在页面底部的中心。如果您想更改页码的位置和样式,您可以通过更改 \headline\footline 的定义来指定备用页眉和页脚。\footline 的默认值包含 \folio 命令,该命令打印页码。\headline 的默认值为 \hfil,因此会打印空行。

\pageno 命令是 TeX 内部页码计数器的同义词。您可以通过更改 \pageno 的值来更改页码。如果 \pageno 为负数,则数字将以罗马数字打印。

\pageno=10
\pageno=-1

命令 \nopagenumbers 是以下内容的简写

\headline={\hfil}
\footline={\hfil}

默认页脚还包含字体命令 \tenrm,它将页码的字体设置为 10 磅 Roman 字体。例如,如果您想以 12 磅 Roman 字体打印页码,您首先需要定义一个 12 磅 Roman 字体,并在 \footline 的定义中使用它。字体命令在字体命令部分中讨论。

\font\twelvrm=cmr12
\footline={\hss\twelvrm\folio\hss}

您可以通过将 \headline 重新定义为以下内容,在每页顶部放置一条规则,即水平线

\headline={\hrulefill}

要为偶数页和奇数页指定不同的页眉,请使用 \ifodd 命令,其形式为

\ifodd[condition][true-action]\else[false-action
使用偶数页和奇数页不同页眉的 \headline 示例为
\headline={\ifodd\pageno odd-page-header \else even-page-header}
如果页码为奇数,则 \ifodd 语句使用第一个参数,否则使用第二个参数。

3.6 标题和宏。

TeX 仅提供用于节标题的 \beginsection 宏。它在其参数上方留出空格,以粗体类型打印标题的文本,在标题的文本后添加 \smallskip,并开始下一个段落,不缩进。

下面描述的 LaTeX 章节和节命令添加了节编号,并将节名称和编号打印在页眉中,并自动将节添加到目录中。

在纯 TeX 中,您必须自己编写这些函数。\def 命令允许您定义新命令。假设您要打印章节标题。首先,您需要定义要使用的字体。章节标题的大型无衬线字体可以这样定义

\font\chapterfontsans=cmss12 scaled \magstep 4
您可以在任何想要切换到此字体的地方使用 \chapterfontsans 命令,其高度约为 24 磅。但是,在本例中,它将主要在命令 \chaptertitlesans 中使用。以下是其定义
\def\chaptertitlesans#1{\hbox{}\bigskip\bigskip
  \noindent{\leftline{\chapterfontsans#1}}
  \par\bigskip\bigskip\noindent}
第一行 \hbox{}\bigskip 通过在此处放置一个空的 \hbox{} 来在页面顶部锚定 12 磅的空间。带有章节标题的行未缩进,紧随其后的段落也未缩进。如果您在 \sschaptertitle 宏和下一段之间放置一个空行,则最终的 \noindent 应用于空行,而不是以下段落的文本。要正确格式化,请使用 \sschaptertitle,如本例所示

定义中的 #1 语句被 \chaptertitlesans 的第一个参数替换;即章节的标题。参数 TeX 定义用 #1#2#3 等声明。\chaptertitlesans 的用法示例为

\chaptertitlesans{Chapter 1}
This is the starting text of the first paragraph of the chapter.  
The paragraph will not be indented.  The chapter's title is 
"Chapter 1."


下一页 上一页 目录