diff options
Diffstat (limited to 'Master/texmf-dist/doc/plain/impatient-cn/usingtex.tex')
-rw-r--r-- | Master/texmf-dist/doc/plain/impatient-cn/usingtex.tex | 1393 |
1 files changed, 1393 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/plain/impatient-cn/usingtex.tex b/Master/texmf-dist/doc/plain/impatient-cn/usingtex.tex new file mode 100644 index 00000000000..8be5d5df47c --- /dev/null +++ b/Master/texmf-dist/doc/plain/impatient-cn/usingtex.tex @@ -0,0 +1,1393 @@ +% -*- coding: utf-8 -*- +% This is part of the book TeX for the Impatient. +% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry. +% See file fdl.tex for copying conditions. + +\input macros +\chapter{使用 \TeX} + +\chapterdef{usingtex} + +% Avoid underfull box complaint about the empty paragraph +% that precedes the first section heading. +% +\def\par{{\parfillskip = 0pt plus 1fil\endgraf}\let\par=\endgraf} +\vglue-\abovesectionskip % we've skipped enough already +\vskip0pt % Make \combineskips work. + +%\section Turning input into ink +\section 从键盘输入变到油墨 + +%\subsection Programs and files you need +\subsection 所需的程序和文件 + +%In order to produce a \TeX\ document, you'll need to run the \TeX\ +%program and several related programs as well. You'll also need +%supporting files for \TeX\ and possibly for these other programs. In +%this book we can tell you about \TeX, but we can't tell you about the +%other programs and the supporting files except in very general terms +%because they depend on your local \TeX\ environment. The people who +%provide you with \TeX\ should be able to supply you with what we call +%\emph{local information}. +%\pix^^{local information} +%The local information tells you how to +%start up \TeX, how to use the related programs, and how to gain access +%to the supporting files. +为了制作一个 \TeX\ 文档, 你必需运行 \TeX\ 及其相关软件. +你同时也需要一些 \TeX\ 及其相关软件所用到的辅助文件. +在这本书中, 我们仅仅谈论 \TeX\ 和一些通用的软件及辅助文件, +不过我们不会介绍其它的, 因为它们仅仅和你自己的 \TeX\ 环境相关. +为你提供 \TeX\ 的人可以为你提供我们所说的\emph{本地信息}. +\pix^^{本地信息} +这些本地信息可以告诉你如何去启动 \TeX, 如何去使用相关的程序, +以及如何去访问这些所用到的辅助文件. + +%Input to \TeX\ consists of a file of ordinary text that you can prepare +%with a ^{text editor}. A \TeX\ input file, unlike an input file for a +%typical word processor, doesn't ordinarily contain any invisible +%^{control characters}. +%Everything that \TeX\ sees is visible to you too if you +%look at a listing of the file. +你可以使用一个 ^{文本编辑器} 来编写一个可以输入到 \TeX\ 的普通文本文件. +一个 \TeX\ 输入文件和一个文字处理软件的输入文件不同, 它通常并不存在任何不可见的^{控制字符}. +任何 \TeX\ 读到的字符对你来说, 都是你可以看到的. + +%Your input file may turn out to be little more than a skeleton that +%calls for other input files. \TeX\ users often organize large documents +%such as books this way. You can use the ^|\input| command (\xref\input) +%to embed one input file within another. In particular, you can use +%|\input| to incorporate files containing \emph{macro definitions}---% +%^^{macros//in auxiliary files} +%auxiliary definitions that enhance \TeX's capabilities. +%If any macro files are available at your \TeX\ installation, the local +%information about \TeX\ should tell you how to get at the macro files +%and what they can do for you. The standard form of \TeX, +%the one described in this book, incorporates a +%collection of macros and other definitions known as ^{\plainTeX} +%(\xref{\plainTeX}). +你的输入文件, 可以仅仅是一个引用其它输入文件的框架. +\TeX\ 用户往往把大的文档, 比如说这本书, 组织成这种形式. +你可以使用 ^|\input| 命令 (\xref\input) 来把一个输入文件篏入到另一个中. +特别地, 你可以使用 |\input|来调入包含\emph{宏定义}的文件, +^^{宏//在辅助文件中} +宏定义是一些辅助的定义, 它可以来增强 \TeX\ 的功能. +如果你的 \TeX\ 系统中包含任何的宏文件, +和 \TeX\ 相关的本地信息会告诉你如何得到这些宏文件, +以及它们的功能. +\TeX\ 的标准安装形式, 也就是在这本书中所描述的, +包括了一个被称为 ^{\plainTeX} (\xref{\plainTeX}) 的宏集. + +%When \TeX\ processes your document, it produces a file called the +%^{\dvifile}. The abbreviation ``|dvi|'' stands for ``device +%independent''. The abbreviation was chosen because the information in +%the \dvifile\ is independent of the device that you use to print or +%display your document. +当 \TeX\ 处理你的文档时, 它会产生一种叫做 ^{\dvifile} 的文件. +其中, ``|dvi|'' 的全称为 ``device independent (设备无关)''. +之所以选用这个缩写, 是因为 \dvifile\ 中所包含的信息和你的打印或显示设备无关. + +%To print your document or view it with a \emph{previewer}, +%^^{previewer} +%you need to process the ^{\dvifile} with +%a \emph{device driver\/} program. +%^^{device drivers} +%(A previewer is a program that +%enables you to see on a screen some approximation of what the typeset +%output will look like.) +%Different output devices usually +%require different device drivers. +%After running the device driver, +%you may also need to transfer the output of the device driver to the +%printer or other output device. +%^^{printers} ^^{output devices} +%The local information about \TeX\ should tell +%you how to get the correct device driver and use it. +当你需要打印或使用\emph{阅览器}查看你的文档时, ^^{阅览器} +你需要使用相应的\emph{设备驱动}来处理之. ^^{设备驱动} +(阅览器是一个程序, 它能把和打印出来的结果差不多的排版内容显示在屏幕上.) +不同的输出设备往往需要不同的设备驱动. 在运行设备驱动以后, +你还需要把设备驱动输出的内容传输到打印机或者其它输出设备上. +^^{打印机} ^^{输出设备} +和 \TeX\ 相关的本地信息会告诉你如何得到正确的设备驱动和如何使用它. + +%Since \TeX\ has no built-in knowledge of particular fonts, it uses +%\emph{font files} +%^^{font files} +%to obtain information about the fonts used in your +%document. The font files should also be part of your local \TeX\ +%environment. Each font normally requires two files: one containing the +%dimensions of the characters in the font (the \emph{metrics file}) +%^^{metrics file} +%and one containing the shapes of the characters (the \emph{shape file}). +%^^{shape file} +%Magnified versions of a font share the metrics file but have +%different shape files. ^^{magnification} Metrics files are sometimes +%referred to as ^{\tfmfile}s, and the different varieties of shape files +%are sometimes referred to as ^{\pkfile}s, ^{\pxlfile}s, and ^{\gffile}s. +%These names correspond to the names of the files that \TeX\ and its +%companion programs use. For example, |cmr10.tfm| is the metrics file +%for the |cmr10| font (10-point Computer Modern Roman). +因为 \TeX\ 内部并没有任何关于一个特定字体的任何信息, +它使用\emph{字体文件} +^^{字体文件} +来得到你文档中所使用的字体的信息. +字体文件也是你本地 \TeX\ 环境的一个组成部分. +一个字体一般对应两个文件: +一个文件 (\emph{字体度量文件}) ^^{度量文件} 包括了字体中每个字符的大小信息, +另一个文件 (\emph{字体轮廓文件}) ^^{轮廓文件} 则描述了字体中字符的形状. +一个字体的缩放版本使用同样的字体度量文件, 不过并不使用相同的字体轮廓文件. +^^{放大率} +字体度量文件往往用来指称 ^{\tfmfile}, +而字体轮廓文件则往往用来指称 ^{\pkfile}, ^{\pxlfile} 和 ^{\gffile} 等不同的种类. +这些名称和 \TeX\ 以及相关软件所使用的文件的文件名所对应. +比如, |cmr10.tfm| 为 |cmr10| 字体的字体度量文件 (10-点的计算机现代字体). + +%\TeX\ itself uses only the metrics file, since it doesn't care what the +%characters look like but only how much space they occupy. The device +%driver ordinarily uses the shape file, since it's responsible for +%creating the printed image of each typeset character. Some device +%drivers need to use the metrics file as well. Some device drivers can +%utilize fonts that are resident in a printer and don't need shape files +%for those fonts. +%\secondprinting{\vfill\eject} +\TeX\ 本身仅使用字体度量文件, 因为它只关心这个字体的字符占用了多大的空间, +而并不关心这个字体的外形是什么样子的. +设备驱动则往往需要使用字体轮廓文件, +因为它需要负责把每个排出的字符变成印出的图形. +某些设备驱动也需要使用字体度量文件. +一些设备驱动可以使用打印机中包含的字体, +所以可以不需要这些字体的字体轮廓文件. +%\secondprinting{\vfill\eject} + + +%\subsection Running {\TeX} +\subsection{运行 \TeX} + +%\bix^^{running \TeX} +%You can run \TeX\ on an input file |screed.tex| by typing +%^^{input files} +%something like `|run tex|' or just `|tex|' (check your local information). +%\TeX\ will respond with something like: +%% 4/23/90 is Shakespeare's 426th birthday, and Karl's 26th. +%\csdisplay +%This is TeX, Version 3.0 (preloaded format=plain 90.4.23) +%** +%| +%The ``preloaded format'' here refers to a predigested form of the +%^{\plainTeX} macros that come with \TeX. +%You can now type `|screed|' to get \TeX\ to process your file. +%When it's done, you'll see something like: +%\csdisplay +%(screed.tex [1] [2] [3] ) +%Output written on screed.dvi (3 pages, 400 bytes). +%Transcript written on screed.log. +%| +%displayed on your terminal, or printed in the record of your +%run if you're not working at a terminal. Most of this output is +%self-explanatory. +%The numbers in brackets are page numbers that \TeX\ displays when it +%ships out each page of your document to the \dvifile. +%\TeX\ will usually assume an +%extension `|.tex|' to an input file name +%if the input file name you gave doesn't +%have an extension. For some forms of \TeX\ you may be able to +%invoke \TeX\ directly for an input file by typing: +%\csdisplay +%tex screed +%| +%or something like this. +\bix^^{运行 \TeX} +你可以通过输入类似 `|run tex|' 或 `|tex|' (查看你的本地信息) 来运行 \TeX\ 来处理一个输入文件 |screed.tex|. +^^{输入文件} +\TeX\ 会作出如下显示 +% 4/23/90 is Shakespeare's 426th birthday, and Karl's 26th. +\csdisplay +This is TeX, Version 3.0 (preloaded format=plain 90.4.23) +** +| +在这里, ``preloaded format'' (已预先载入的格式) 指的是 \TeX\ 提供的 ^{\plainTeX} 宏集的一个己预先产生的形式. +现在你可以输入 `|screed|' 来让 \TeX\ 来处理你的文件. +当处理结束时, 你可以在终端或者打印机印出的记录上 (如果你不使用终端) 得到类似下面的输出: +\csdisplay +(screed.tex [1] [2] [3] ) +Output written on screed.dvi (3 pages, 400 bytes). +Transcript written on screed.log. +| +这个输出大部分是不言自明的. +在括号中的数字是 \TeX\ 在把每页内容输入 \dvifile\ 时所显示的当前页码. +当你提供的名件名不含扩展名时, \TeX\ 往往会把你的文件扩展名当作 `|.tex|'. +在某些 \TeX\ 环境中, 你可能可以直接执行类似下面的语句: +\csdisplay +tex screed +| +来直接处理文档. + +%Instead of providing your \TeX\ input from a file, you can type it directly at +%your terminal. To do so, type `^|\relax|' instead of `|screed|' at the +%`|**|' prompt. +%\TeX\ will now prompt you with a `|*|' for each line of input and interpret +%each line of input as it sees it. +%To terminate the input, type a command such as `|\bye|' that tells \TeX\ +%you're done. +%Direct input is sometimes a handy way of experimenting with \TeX. +\TeX\ 不仅可以读取文件输入,也可以直接读取你在终端中的输入: +只需将 `|**|' 提示后的输入从 `|screed|' 改为 `^|\relax|'。 +\TeX\ 将在你输入的各行前面给出 `|*|' 提示, +并且逐行解释你的输入。 +输入类似 `|\bye|' 这样的命令可以结束输入。 +在试验 \TeX\ 时直接输入有时更方便。 + +%When your input file contains other embedded input files, the displayed +%information indicates when \TeX\ begins and ends processing each +%embedded file. +%^^{input files//embedded} +%\xrdef{infiles} +%\TeX\ displays a left parenthesis and the file name +%when it starts working on a file and displays the corresponding right +%parenthesis when it's done with the file. +%If you get any ^{error messages} in the displayed output, you can match +%them with a file by looking for the most recent unclosed left parenthesis. +当你的输入文件包含其他嵌入的输入文件时, +显示的信息中表明了 \TeX\ 何时开始和结束处理每个嵌入文件。 +^^{输入文件//嵌入输入文件} +\xrdef{infiles} +当 \TeX\ 开始处理一个文件时它显示一个左圆括号和该文件名, +而结束时显示一个对应的右圆括号。 +如果在所显示的输出中有任何^{错误信息}, +你就能从最接近的未配对左圆括号中确定是哪个文件引起的。 + +%For a more complete explanation of how to run \TeX, +%see \knuth{Chapter~6} and your ^{local information}. +%\eix^^{running \TeX} +要得到如何运行\TeX\ 的更完整解释, +可以见\knuth{第~6~章}以及你的^{本地信息}. +\eix^^{运行 \TeX} + + +%\section Preparing an input file +\section 准备输入文件 + +%In this section we explain some of the conventions that you must follow in +%preparing input for \TeX\null. Some of the information given here also +%appears in the examples in \chapterref{examples} of this book. +%^^{input, preparing} +在这一节中,我们解释准备 \TeX\ 输入文件时必须遵循的一些约定。 +其中的有些信息同样出现在本书\chapterref{examples}的例子中。 +^^{输入文件//准备输入文件} + +%\subsection Commands and control sequences +\subsection 命令和控制序列 + +%\bix^^{commands} +%\bix^^{control sequences} +%Input to \TeX\ consists of a sequence of commands that tell \TeX\ how to +%typeset your document. Most characters act as commands of a particularly +%simple kind: ``typeset me''. The letter `|a|', for instance, is a +%command to typeset an `a'. But there's another kind of command---a +%\emph{control sequence}---that gives \TeX\ a more elaborate +%instruction. A control sequence ordinarily starts with a backslash +%(|\|), though you can change that convention if you need to. +%\xrdef{@backslash} +%For instance, the input: +\bix^^{命令} +\bix^^{控制序列} +\TeX\ 的输入由一系列指引 \TeX\ 如何排版文档的命令组成。 +大部分字符如同一种特别简单的命令:``排版我''。 +比如,字母 `|a|' 是作为命令将排版出 `a'。 +但有另一种命令——\emph{控制序列}(control sequence)——将给 \TeX\ 提供更细致的指令。 +控制序列通常以反斜杠(|\|)开头,但必要时你也可以更改此约定。 +\xrdef{@backslash} +例如,下列输入: + +%\csdisplay +%She plunged a dagger (\dag) into the villain's heart. +%| +%contains the control sequence |\dag|; it produces the typeset output: +%\display{% +%She plunged a dagger (\dag) into the villain's heart. +%} +%\noindent Everything in this example except for the |\dag| and the spaces +%acts like a ``typeset me'' command. We'll explain more about spaces +%on \xrefpg{spaces}. +\csdisplay +She plunged a dagger (\dag) into the villain's heart. +| +包含一个控制序列|\dag|;它排版出下列的输出: +\display{% +She plunged a dagger (\dag) into the villain's heart. +} +\noindent 在这个例子中, +除 |\dag| 和空格之外的每个字符都如同一个``排版我''命令。 +在\xrefpg{spaces}中我们将更详细地解释空格的作用。 + +%There are two kinds of control sequences: \emph{control words} +%^^{control words} +%and \emph{control symbols}: +%^^{control symbols} +%\ulist\compact +%\li A control word consists of a +%backslash followed by one or more letters, e.g., `|\dag|'. +%The first character that isn't a letter marks the end +%of the control word. +%\li A control symbol consists of a backslash followed by a single character +%that isn't a letter, e.g., `|\$|'. +%The character can be a space or even the end of a line (which is a perfectly +%legitimate character). +%\endulist +控制序列可分为\emph{控制词}(control word)^^{控制词}% +和\emph{控制符}(control symbol)^^{控制符}这两种类型: +\ulist\compact +\li 控制词由反斜杠后跟一个或多个字母组成,例如`|\dag|'。 +其后用一个非字母字符结束该控制词。 +\li 控制符由反斜杠后跟一个单个的非字母字符组成,例如`|\$|'。 +该非字母字符可以是空格符,甚或是行结束符(这也是合乎规则的字符)。 +\endulist +%\noindent +%A control word (but not a control symbol) +%absorbs any spaces or ends of line that follow it. +%^^{control sequences//absorbing spaces} +%If you don't want to lose a space after a control word, +%follow the control sequence with a ^{control space} +%(|\!visiblespace|) or with `|{}|'. Thus either: +%\csdisplay +%The wonders of \TeX\!visiblespace!.shall never cease!! +%| +%or:\hfil\ +%\csdisplay +%The wonders of \TeX{} shall never cease!! +%| +%produces: +%\display{% +%The wonders of \TeX{} shall never cease! +%} +%\noindent rather than: +%\display{% +%The wonders of \TeX shall never cease! +%} +%\noindent +%which is what you'd get if you left out the `|\|\visiblespace' +%or the `|{}|'. +\noindent +控制词后的任何空格或行结束符将被忽略(但控制符后不会这样)。 +^^{控制序列//忽略空格} +如果你真要在控制词后得到一个空格, +可以在该控制词后键入一个^{控制空格}(|\!visiblespace|)或者`|{}|'。 +因而这样输入: +\csdisplay +The wonders of \TeX\!visiblespace!.shall never cease!! +| +或者这样输入:\hfil\ +\csdisplay +The wonders of \TeX{} shall never cease!! +| +将得到同样的结果: +\display{% +The wonders of \TeX{} shall never cease! +} +\noindent 作为对比,下面的结果: +\display{% +The wonders of \TeX shall never cease! +} +\noindent +是你去掉上面输入中的`|\|\visiblespace'或者`|{}|'后得到的。 + +%Don't run a control word together with the text that follows it---\TeX\ +%won't know where the control word ends. For instance, the |\c| control +%sequence places a cedilla accent on the character that follows it. The +%French word {\it gar\c con\/} must be typed as +%`|gar\c!visiblespace!.con|', not `|gar\ccon|'; if you write the latter, +%\TeX\ will complain about an undefined control sequence |\ccon|. +不要将控制词和其后的文本连在一起---这样\TeX\ 无法知道控制词在哪里结束。 +比如,控制词|\c|给其后的字符加上软音符。 +要得到法文单词{\it gar\c con\/},你必须输入`|gar\c!visiblespace!.con|', +而不是`|gar\ccon|';若你输入后者,\TeX\ 将抱怨有未定义的控制序列|\ccon|。 + +%A control symbol, on the other hand, doesn't absorb anything that +%follows it. Thus you must type `\$13.56' as `|\$13.56|', not +%`|\$!vs13.56|'; the latter form would produce `\hbox{\$ 13.56}'. +%However, those accenting commands that are named by control symbols are +%defined in such a way that they produce the effect of absorbing a +%following space. Thus, for example, you can type the French word {\it +%d\'eshabiller\/} either as `|d\'eshabiller|' or as +%`|d\'!visiblespace!.eshabiller|'. +另一方面,控制符后面的任何字符都不会被忽略。 +因此,要得到`\$13.56'你必须键入`|\$13.56|', +而不是`|\$!vs13.56|';后者将生成`\hbox{\$ 13.56}'。 +然而,那些作为控制符的重音命令,是以忽略其后空格的方式定义的。 +例如,要得到法文单词{\it d\'eshabiller\/},键入`|d\'eshabiller|', +或者`|d\'!visiblespace!.eshabiller|'都可以。 + +%Every control sequence is also a command, +%but not the other way around. +%^^{commands//versus control sequences} +%^^{control sequences//versus commands} +%For instance, the letter `|N|' +%is a command, but it isn't a control sequence. +%In this book we ordinarily use ``command'' rather than +%``control sequence'' when either term would do. +%We use ``control sequence'' when we want to emphasize aspects of \TeX\ +%syntax that don't apply to commands in general. +每个控制序列同时也是一个命令,但反之未必。 +^^{命令//与控制序列对比} +^^{控制序列//与命令对比} +例如字母`|N|'是一个命令,但它不是一个控制序列。 +在本书里面,当两者都适用时我们用``命令''而不用``控制序列''。 +在强调 \TeX\ 的语法层面时,我们用``控制序列'', +因为此时用``命令''一般并不合适。 + +%\eix^^{control sequences} +%\eix^^{commands} +\eix^^{控制序列} +\eix^^{命令} + +%\subsection Arguments +\subsection 参量 + +%\xrdef{arg1} +%Some commands need to be followed by one or more +%\emph{arguments} ^^{arguments} +%that help to determine what the command does. +%For instance, the |\vskip| command, which +%tells \TeX\ to skip down (or up) the page, +%expects an argument specifying how much space to skip. To skip +%down two inches, you would type `|\vskip 2in|', where |2in| +%is the argument of |\vskip|. +\xrdef{arg1} +有些命令的运行依赖于其后的一个或多个\emph{参量}(argument)^^{参量}。 +例如,|\vskip|命令告诉 \TeX\ 在页面中往上(或往下)跳过一定间距, +它需要一个参量来指定所跳过间距的大小。 +要往下跳过两英寸,你需要键入`|\vskip 2in|', +其中的|2in|就是|\vskip|的参量。 + +%Different commands expect different kinds of arguments. Many commands +%expect dimensions, such as the |2in| in the example above. +%Some commands, particularly those defined by macros, +%expect arguments that are either a single character or some +%text enclosed in braces. +%Yet others require that their arguments be enclosed in braces, i.e., +%they don't accept single-character arguments. +%The description of each command in this book tells you what kinds of arguments, +%if any, the command expects. +%In some cases, required braces define a group (see \xref{bracegroup}). +不同的命令要求不同类型的参量。 +很多命令的参量要求是长度值,比如上面例子中的|2in|。 +有些命令,特别是用宏定义的命令, +其参量可以是单个字符或者放在花括号中的文本。 +而对其他有些命令,其参量只能放在花括号中,而不能是单个字符。 +在本书对各个命令的描述中,若一个命令需要参量, +我们都说明了该命令所需参量的类型。 +在有些情形中,命令的参量所需的花括号定义了一个编组(见\xref{bracegroup})。 + +%\secondprinting{\vfill\eject} + + +%\subsection Parameters +\subsection 参数 + +%\xrdef{introparms} +%Some commands are parameters (\xref{parameter}). +%^^{parameters//as commands} +%You can use a parameter in either of two ways: +%\olist +%\li You can use the value of a parameter +%as an argument to another command. For example, the command +%\hbox{|\vskip\parskip|} +%causes a vertical skip by the value of the |\parskip| (paragraph skip) +%glue parameter. +%\li You can change the value of the parameter by assigning +%something to it. For example, the assignment \hbox{|\hbadness=200|} +%causes the value of the |\hbadness| number parameter to be $200$. +%\endolist +%\noindent +%We also use the term ``parameter'' to refer to entities such as |\pageno| +%that are actually registers but behave just like parameters. +%^^{registers//parameters as} +\xrdef{introparms} +有些命令实际上是参数(parameter,见\xref{参数})。 +^^{参数//作为命令} +你可以按下面两种方式使用这种参数: +\olist +\li 将该参数的值用作其他命令的参量。 +例如 \hbox{|\vskip\parskip|} 这个命令生成大小% +等于粘连参数|\parskip|(段落间距)的竖直间距。 +\li 通过赋值修改该参数的值。 +例如 \hbox{|\hbadness=200|} 这个赋值使得|\hbadness|参数的值变为$200$. +\endolist +\noindent +有些命令,例如|\pageno|,虽然是寄存器但和参数的用法一样。 +因此我们同样使用``参数''这个术语来指代这些命令。 +^^{寄存器//作为参数} + +%Some commands are names of tables. These commands are used like +%parameters, except that they require an additional argument that +%specifies a particular entry in the table. For example, |\catcode| names +%a table of category codes (\xref{category code}). Thus +%the command +%\hbox{|\catcode`~=13|} sets the category code of the `|~|' +%character to $13$. +有些命令是表名。这些命令的用法和参数类似, +只是它们需要额外的参量指定表格项。 +例如,|\catcode| 是类别码表格的名称(\xref{类别码})。 +因此,\hbox{|\catcode`~=13|} 这个命令设置字符`|~|'的类别码为$13$。 + + +%\subsection Spaces +\subsection 空格 + +%\xrdef{spaces} +%\bix^^{spaces} +%You can freely use extra spaces in your input. Under nearly all circumstances +%\TeX\ treats several spaces in a row as being equivalent to a +%single space. For instance, it doesn't matter whether you put one space +%or two spaces after a ^{period} in your input. Whichever you do, \TeX\ +%performs its end-of-sentence maneuvers and leaves the appropriate +%(in most cases) amount of space after the period. +%\TeX\ also treats the end of an input line as equivalent to a space. +%Thus you can end your input lines wherever it's convenient---% +%\TeX\ makes input +%lines into +%paragraphs in the same way no matter where the line breaks are in your +%input. +\xrdef{spaces} +\bix^^{空格} +在输入文件中你可以任意加上额外的空格。 +在几乎所有情形中 \TeX\ 都将同一行的连续多个空格看成一个空格。 +例如,在^{句号}后加上一个或两个空格是没有差别的。 +不论按照哪种写法,\TeX\ 都会执行其句子结束操作, +并在句号后加上适当(在多数情形下)大小的间隔。 +\TeX\ 同样将输入中的行结束符视为一个空格。 +因此在输入时你可以在方便的地方换行——% +\TeX\ 按照此方式将各输入行转换为段落,而不在乎输入中的换行位置。 + +%A blank line in your input marks the end of a paragraph. +%^^{paragraphs//ending} +%Several blank lines are equivalent to a single one. +输入中的一个空行结束当前段落。 +^^{段落//结束段落} +多个空行也等同于一个空行。 + +%\TeX\ ignores input spaces within math formulas (see below). Thus you can +%include or omit spaces anywhere within a math formula---\TeX\ doesn't care. +%Even within a math formula, however, +%you must not run a control word together with a following letter. +\TeX\ 忽略数学公式中的空格(见后面)。 +因此,你可以加上或者省去公式中的空格——\TeX\ 不在乎这个。 +但即使在数学公式中,你也不要将控制词和其后的字母连在一起。 + +%If you are defining your own macros, you need to be particularly careful about +%where you put ends of line in their definitions. +%It's all too easy to define a macro that produces an +%^{unwanted space} in addition to whatever else it's supposed to produce. +%We discuss this problem elsewhere since it's somewhat +%technical; see \xrefpg{unwantedspace}. +在定义自己的宏时,你必须小心定义中的行结束符位置。 +因为一不小心该宏就在你希望的空格之外生成了^{不需要的空格}。 +因为这是个有些技术性的问题,我们在其他地方也讨论到此问题;见\xrefpg{unwantedspace}。 + +%A space or its equivalent between two words in your input doesn't simply turn +%into a space character in your output. +%A few of these input spaces turn into ends of lines +%in the output, +%since input lines generally don't correspond to output lines. +%The others turn into spaces of variable width called ``glue'' (\xref{glue}), +%which has a natural size (the size it ``wants to be'') +%but can stretch or shrink. +%When \TeX\ is typesetting a paragraph +%that is supposed to have an even right margin (the usual +%case), it adjusts the widths of the glue in each line +%to get the lines to end at the margin. +%(The last line of a paragraph is an exception, since it isn't ordinarily +%required to end at the right margin.) +输入文件中两单词间的一个空格或其等价字符, +并不简单地变成输出中的一个空格。 +由于输入行和输出行通常不会正好对应, +输入中的这些空格有的变成输出中的行结束符, +另外有些空格则变成宽度可变的间隔即``粘连'' (\xref{粘连}); +粘连有其自然宽度(它希望的宽度),但也可以伸展或者收缩。 +\TeX\ 排版要求右页边对齐(通常如此)的段落时, +将调整各行的粘连的宽度以让各行正好在页边结束。% +(段落的最后一行是个例外,因为一般不要求它在右页边结束。) + +%You can prevent an input space from turning into an end of line by using a +%^{tie} (^|~|). +%For example, you wouldn't want \TeX\ to put a line break between the +%`Fig.' and `8' of `Fig.~8'. +%By typing `|Fig.~8|' you can prevent such a line break. +%\eix^^{spaces} +%\needspace{2in} +要阻止输入中的空格在输出中变成行结束符,你可以用^{带子} (^|~|)。 +比如,你不会希望 \TeX\ 在`Fig.~8'的 `Fig.' 和 `8' 之间断行。 +输入 `|Fig.~8|' 就可以禁止这样断行。 +\eix^^{空格} +%\needspace{2in} + +%\subsection Comments +\subsection 注释 + +%\xrdef{comments} +%\pix\bix^^{comments} +%You can include comments in your \TeX\ input. +%When \TeX\ sees a comment it just passes over it, so +%what's in a comment doesn't affect your typeset document in any way. +%Comments are useful for +%providing extra information about what's in your input file. +%For example: +%\csdisplay +%% ========= Start of Section `Hedgehog' ========= +%| +\xrdef{comments} +\pix\bix^^{注释} +在\TeX\ 输入中可以包含注释。\TeX\ 跳过它所碰到的注释, +因此注释中的内容不会以任何方式影响到排版的文档。 +注释用于在输入文件中提供更多的信息。 +例如: +\csdisplay +% ========= Start of Section `Hedgehog' ========= +| + +%{\indexchar % }% +%A comment starts with a percent sign (|%|) and extends to the end of the +%input line. +%\TeX\ ignores not just the comment but the end of the line as well, so +%comments have another very +%important use: connecting two lines so that the end of line +%^^{line breaks//deleting} +%between them is invisible to \TeX\ and doesn't generate +%an output space or an end of line. +%For instance, if you type: +%\csdisplay +%A fool with a spread% +%sheet is still a fool. +%| +%you'll get: +%\display{ +%A fool with a spread% +%sheet is still a fool. +%} +%\eix^^{comments} +{\indexchar % }% +注释以百分号(|%|)开始,一直延续到该输入行结束。 +\TeX\ 既忽略注释也忽略该行的结束符, +因此注释有另外的重要用法:将两个输入行连接起来, +^^{断行//删除断行} +使得 \TeX\ 看不到两行间的行结束符, +从而不会在输出中生成空格或换行。 +例如,对如下的输入: +\csdisplay +A fool with a spread% +sheet is still a fool. +| +你得到的输出为: +\display{ +A fool with a spread% +sheet is still a fool. +} +\eix^^{注释} + +%\subsection Punctuation +\subsection 标点 + +%\null +%\xrdef{periodspacing} +%\TeX\ normally adds some extra space after what it thinks is a +%^{punctuation} mark at the end of a sentence, +%namely, `^|.|', `^|?|', or `|!!|' \indexchar ! +%^^{period} ^^{question mark} ^^{exclamation point} +%followed by an input space. +%\TeX\ doesn't add +%the extra space if the punctuation mark follows +%a capital letter, though, because it assumes the capital +%letter to be an initial in someone's name. +%You can force the extra space where it wouldn't otherwise occur by +%typing something like: +%\csdisplay +%A computer from IBM\null? +%| +\null +\xrdef{periodspacing} +若 `^|.|',`^|?|' 或 `|!!|' 之后有个输入空格,\indexchar ! +^^{句号} ^^{问号} ^^{感叹号} +\TeX\ 认为它是句末^{标点}符号,并在其后添加额外间隔。 +但若该标点符号之前为大写字母,\TeX\ 就不会添加额外间隔, +因为它认为大写字母是人名的首字母。 +如若不然你可以强制生成额外间隔,例如: +\csdisplay +A computer from IBM\null? +| +%The |\null| doesn't produce any output, but it does prevent \TeX\ +%from associating the capital `M' with the question mark. +%On the other hand, you can cancel the +%extra space where it doesn't belong by typing a control space +%after the punctuation mark, e.g.: +%\csdisplay +%Proc.\!visiblespace!.Royal Acad.\!visiblespace!.of Twits +%| +%so that you'll get: +%\display{Proc.\ Royal Acad.\ of Twits} +%\noindent rather than: +%\display{Proc. Royal Acad. of Twits} +命令 |\null| 不生成任何输出, +但它阻止 \TeX\ 将大写字母`M'和问号结合在一起。 +反过来,如果某标点符号不为句末标点, +你也能够取消该标点之后的额外间隔; +这可以通过在其后键入控制空格达到,例如: +\csdisplay +Proc.\!visiblespace!.Royal Acad.\!visiblespace!.of Twits +| +得到的正确结果为: +\display{Proc.\ Royal Acad.\ of Twits} +\noindent 而去掉控制空格后的结果是: +\display{Proc. Royal Acad. of Twits} + +%Some people prefer not to leave more space after punctuation at the +%end of a sentence. You can get this effect with the +%^|\frenchspacing| command (\xref\frenchspacing). +%|\frenchspacing| is often recommended for ^{bibliographies}. +有些人更喜欢不在句末标点后留下更多间隔。 +利用 ^|\frenchspacing| 命令(\xref\frenchspacing )你就可达成此效果。 +在^{参考文献}中通常建议使用这个 |\frenchspacing| 命令。 + +%For single ^{quotation marks}, you should use the left and right +%single quotes +%(|`| and |'|) on your keyboard. For left and right +%double quotation marks, use two left single +%quotes or two right single quotes (|``| or |''|) rather +%than the double quote (|"|) on your keyboard. +%The keyboard double quote +%will in fact give you a right double quotation mark in +%many fonts, but the two right single quotes +%are the preferred \TeX\ style. +%For example: +对于单^{引号}, 用键盘上的左右单引号(|`| 和 |'|)就可以得到。 +对于左双引号或右双引号, +需要用两个左单引号(|``|)或右单引号(|''|)得到, +不能直接用键盘上的双引号(|"|)。 +键盘上的双引号在多数字体中将得到一个右双引号, +但两个右单引号是 \TeX\ 中首选的写法。例如: + +%\vbox{% +%\csdisplay +%There is no `q' in this sentence. +%``Talk, child,'' said the Unicorn. +%She said, ``\thinspace`Enough!!', he said.'' +%| +%}% +%These three lines yield: +%\display{\par\restoreplainTeX +%There is no `q' in this sentence. +%\par ``Talk, child,'' said the Unicorn. +%\par She said, ``\thinspace`Enough!', he said.'' +%} +%\noindent +%The |\thinspace| in the third input line prevents +%the single quotation mark from coming +%too close to the double quotation marks. +%Without it, you'd just see three +%nearly equally spaced quotation marks in a row. +\vbox{% +\csdisplay +There is no `q' in this sentence. +``Talk, child,'' said the Unicorn. +She said, ``\thinspace`Enough!!', he said.'' +| +}% +这三行输入得到的结果为: +\display{\par\restoreplainTeX +There is no `q' in this sentence. +\par ``Talk, child,'' said the Unicorn. +\par She said, ``\thinspace`Enough!', he said.'' +} +\noindent +第三个输入行中的 |\thinspace| 避免单引号和双引号太过靠近。 +否则,你将看到三个并排的间隔相近的引号。 + +%\TeX\ has three kinds of ^{dashes}: +%\ulist\compact +%\li Short ones (hyphens) like this ( - ). You get them by typing~`^|-|'. +%\li Medium ones (en-dashes) like this ( -- ). You get them by typing~`^|--|'. +%\li Long ones (em-dashes) like this ( --- ). You get them by typing~`^|---|'. +%\endulist +%\noindent +%Typically you'd use hyphens to indicate compound words like +%``will-o'-the-wisp'', +%en-dashes to indicate +%page ranges such as ``pages~81--87'', and em-dashes to indicate +%a break in continuity---like this. +在 \TeX\ 中有三种^{横线号}(dash): +\ulist\compact +\li 短横线即连字号(hyphen)如这样( - )。键入~`^|-|'~可以得到。 +\li 中横线即连接号(en-dash)如这样( -- )。键入~`^|--|'~可以得到。 +\li 长横线即破折号(em-dash)如这样( --- )。键入~`^|---|'~可以得到。 +\endulist +\noindent +一般地,你将用连字号表示像“will-o'-the-wisp”(鬼火)这样的复合词, +用连接号表示像“第~81--87~页”这样的页码起止, +而用破折号表示语气转折\null{---}像这样。 +% 用 \null 和 {} 绕开 xecjk 的问题 + + +%\subsection Special characters +\subsection 特殊字符 + +%Certain characters have special meaning to \TeX, so you shouldn't use them +%in ordinary text. They are: +在 \TeX\ 中某些字符有特殊的含义, +因而不能在普通文本中使用。这些特殊字符为: + +%\csdisplay +% $ # & % _ ^ ~ { } \ +%| +%^^|$//in ordinary text| +%^^|#//in ordinary text| +%^^|&//in ordinary text| +%^^|_//in ordinary text| +%^^|^//in ordinary text| +%^^|~//in ordinary text| +%^^|%//in ordinary text| +%^^|{//in ordinary text| +%^^|}//in ordinary text| +%{\recat!ttidxref[\//in ordinary text]] +%\noindent +%In order to produce them in your typeset document, +%you need to use circumlocutions. For the first five, +%you should instead type: +%^^|\$| +%^^|\#| +%^^|\&| +%^^|\%| +%^^|\_| +%\csdisplay +% \$ \# \& \% \_ +%| +\csdisplay + $ # & % _ ^ ~ { } \ +| +\ifoldeplain +^^|$//在普通文本中| +^^|#//在普通文本中| +^^|&//在普通文本中| +^^|_//在普通文本中| +^^|^//在普通文本中| +^^|~//在普通文本中| +^^|%//在普通文本中| +^^|{//在普通文本中| +^^|}//在普通文本中| +{\recat!ttidxref[\//在普通文本中]] +\fi +\noindent +要在排版的文档中生成它们,你需要使用间接的方法。 +对前面五个字符,你需要键入: +\ifoldeplain +^^|\$| +^^|\#| +^^|\&| +^^|\%| +^^|\_| +\fi +\csdisplay + \$ \# \& \% \_ +| + +%\noindent +%For the others, you need something more elaborate: +\noindent +而对另外五个字符,你需要键入更多: + +\csdisplay + \^{!visiblespace} \~{!visiblespace} $\{$ $\}$ $\backslash$ +| + + +%\subsection Groups +\subsection 编组 + +%\bix^^{groups} +%A \emph{group} +%consists of material enclosed in matching left and right braces (|{| and +%|}|). +%^^|{//starting a group| +%^^|}//ending a group| +%By placing a command within a group, you can limit its effects to +%the material within the group. +%For instance, the |\bf| command tells \TeX\ to set +%something in {\bf boldface} type. If you were to put |\bf| into your input +%and do nothing else to counteract it, everything in your document following the +%|\bf| would be set in boldface. +%By enclosing |\bf| in a group, +%you limit its effect to the group. For example, if you type: +%\csdisplay +%We have {\bf a few boldface words} in this sentence. +%| +%\noindent you'll get: +%\display{We have {\bf a few boldface words} in this sentence.} +\bix^^{编组} +包含在配对的左右花括号(|{| 和 |}|)中的内容组成一个\emph{编组}。 +^^|{//开始编组| +^^|}//结束编组| +编组内部的命令,其作用范围被限制在该编组内部。 +例如,|\bf| 命令让 \TeX\ 将某些内容用粗体显示。 +如果你将 |\bf| 放在你的输入中,而没有用任何方式取消它, +|\bf| 之后的所有内容都将以粗体显示。 +如果将 |\bf| 包含在一个编组中, +就可以将它的作用限制在此编组中。 +比如,如果你键入: +\csdisplay +We have {\bf a few boldface words} in this sentence. +| +\noindent 你将会得到如下的结果: +\display{We have {\bf a few boldface words} in this sentence.} + +%\noindent You can also use a group to limit the effect of +%an assignment to one of \TeX's parameters. +%These parameters contain values that affect how \TeX\ typesets your document. +%For example, the value of the |\parindent| +%parameter specifies the indentation at the beginning of a paragraph. +%The assignment |\parindent = 15pt| +%sets the indentation to $15$ printer's points. +%By placing this assignment at the beginning +%of a group containing a few paragraphs, you can change +%the indentation of just those paragraphs. If you don't enclose +%the assignment in a group, +%the changed indentation will apply to the rest of the document (or up to the +%next assignment to |\parindent|, if there's a later one). +\noindent 利用编组,你可以限制 \TeX\ 某个参数的取值的作用范围。 +这些参数的取值影响 \TeX\ 对文档的排版。 +例如,|\parindent| 参数的值指定了段首缩进量, +赋值 |\parindent = 15pt| 将设定该缩进量为 $15$ 点。 +若将该赋值放在包含几个段落的编组开始处, +你就可以仅仅改变这几个段落的段首缩进。 +若不将该赋值包含在编组中, +对缩进量的修改将作用到文档的剩余部分% +(或者作用到下个对|\parindent|的赋值为止,若还有下个赋值的话)。 + +%\xrdef{bracegroup} +%Not all pairs of braces indicate a group. +%In particular, the braces associated with an argument for which the +%braces are \emph{not} required don't indicate a group---they just +%serve to delimit the argument. +%Of those commands that do require braces for their arguments, +%some treat the braces as defining a group +%and the others interpret the argument in some special way that depends on +%the command.\footnote +%{More precisely, for primitive commands either +%the braces define a group or they enclose tokens that aren't processed in +%\TeX's stomach. +%For |\halign| and |\valign| the group has a trivial +%effect because everything within the braces either doesn't reach the stomach +%(because it's in the template) or is enclosed in a further inner group. +%^^|\halign//grouping for| +%^^|\valign//grouping for| +%} +%\eix^^{groups} +\xrdef{bracegroup} +并非所有配对花括号都表示一个编组。 +特别地,若参量\emph{不要求}有花括号, +则与该参量一起的花括号并不表示一个编组% +——它们仅用于确定该参量的界限。 +对于那些参量中确实需要花括号的命令, +有些命令将花括号作为编组的定义, +而其他命令用各自的特殊方式解释该参量。\footnote +{更准确地说,对于原始命令, +花括号要么定义了一个编组,要么不会在 \TeX\ 的胃中被处理。 +对于 |\halign| 和 |\valign| 命令,编组只有平凡的效果; +这是由于编组中的一切东西要么不会到达胃里(因为它在模板中), +要么包含在更深一层的编组中。 +^^|\halign//阵列中的编组| +^^|\valign//阵列中的编组| +} +\eix^^{编组} + + +%\subsection Math formulas +\subsection 数学公式 + +%\bix^^{math} +%\xrdef{mathform} +%A math formula can appear in text (\emph{text math}) +%^^{text math} +%or set off on a line by itself +%with extra vertical space around it (\emph{display math}). +%^^{display math} +%You enclose a text formula in single dollar signs (|$|) +%and a displayed formula in double dollar signs (|$$|). +%\ttidxref{$}\ttidxref{$$} +%For example: +\bix^^{数学} +\xrdef{mathform} +数学公式可以出现在正文中(\emph{文内公式}), +^^{文内公式} +或者出现在留出额外上下间距的单独一行中(\emph{陈列公式})。 +^^{陈列公式} +文内公式两边用单个美元符(|$|)括起来, +而陈列公式两边用双个美元符(|$$|)括起来。 +\ifoldeplain\ttidxref{$}\ttidxref{$$}\fi +例如: + +%\csdisplay +%If $a<b$, then the relation $$e^a < e^b$$ holds. +%| +%\noindent This input produces: +%\display{\centereddisplays +%If $a<b$, then the relation $$e^a < e^b$$ holds.} +%\smallskip +%\noindent \chapterref{math} describes the commands that are useful +%in math formulas. +%\eix^^{math} +\csdisplay +If $a<b$, then the relation $$e^a < e^b$$ holds. +| +\noindent 此输入得到的结果是: +\display{\centereddisplays +If $a<b$, then the relation $$e^a < e^b$$ holds.} +\smallskip +\noindent \chapterref{math}描述了数学公式中常用的命令。 +\eix^^{数学} + + +%\section How \TeX\ works +\section \TeX\ 如何工作 + +%In order to use \TeX\ effectively, it helps to +%have some idea of how \TeX\ goes about +%its activity of transmuting input into output. +%You can imagine \TeX\ as a kind of organism with ``eyes'', +%``mouth'', ``gullet'', +%``stomach'', and ``intestines''. +%Each part of the organism transforms its input in some way and passes +%the transformed input to the next stage. +为了更有效地使用 \TeX , +对 \TeX\ 着手将输入转换为输出的活动有所了解是有益的。 +你可以将 \TeX\ 想象为一种有“眼睛”、“嘴巴”、“食道”、“胃”以及“肠道”的生物体。 +该生物体的每个器官都以某种方式转换它的输入,并将转换的结果送到下个器官中。 + +%The ^{eyes} transform an input file into a sequence of characters. +%The ^{mouth} transforms the sequence of characters into a sequence of +%\emph{tokens}, +%^^{tokens} +%where each token is either a single character or a control sequence. +%^^{control sequences//as tokens} +%The gullet expands the tokens into a sequence of +%\emph{primitive commands}, which are also tokens. +%^^{expanding tokens} +%The ^{stomach} carries out the operations specified by the primitive commands, +%producing a sequence of pages. +%Finally, the ^{intestines} transform each page into the form required +%for the \dvifile\ and send it there. +%^^{\dvifile//created by \TeX's intestines} +%These actions are described in more detail +%in \chapterref{concepts} under \conceptcit{\anatomy}. +%^^{\anatomy} +^{眼睛}将输入文件转换为一系列字符。 +^{嘴巴}将这串字符转换为一系列\emph{记号}, +^^{记号} +其中每个记号是单个字符或者一个控制序列。 +^^{控制序列//作为记号} +食道将该串记号展开为一系列\emph{原始命令}记号。 +^^{展开记号} +^{胃}执行原始命令指定的操作,生成一些页面。 +最后,^{肠道}将每个页面转换为 \dvifile 所需的形式并发送给它。 +^^{\dvifile//由 \TeX\ 的肠道生成} +这些活动在\chapterref{concepts}的\conceptcit{\anatomy}中有更详细的描述。 +^^{\anatomy} + +%The real typesetting goes on in the stomach. +%The commands instruct \TeX\ to typeset such-and-such a character in +%such-and-such a font, to insert an interword space, to end a paragraph, and +%so on. +%Starting with individual typeset characters and other simple typographic +%elements, \TeX\ builds up a page ^^{pages} as a nest of +%^{boxes} within boxes within boxes \seeconcept{box}. +%Each typeset character occupies a box, and so does an entire page. +%A box can contain not just smaller boxes but also \emph{glue} ^^{glue} +%(\xref{glue}) and a few other things. +%The glue produces +%space between the smaller boxes. +%An important property of glue is that it can stretch and shrink; +%thus \TeX\ can make a box +%larger or smaller by stretching or shrinking +%the glue within~it. +实际的排版活动出现在胃中。 +这些命令指导 \TeX\ 用这样或那样的字体排版这个或那个字符, +插入单词间空隔,结束一个段落,等等。 +从单个排版字符及其他简单排印元素开始, +\TeX\ 将^{盒子}一层层放入其他盒子中\seeconcept{盒子}, +这一整套盒子构造了一个页面^^{页面}。 +每个排版字符占用一个盒子,整个页面也一样。 +盒子中不仅包含更小的盒子,也包含\emph{粘连}^^{粘连} +(\xref{粘连})和一些其他东西。 +粘连生成小盒子之间的间距。 +粘连的一个重要属性在于它可以伸展和收缩; +因此通过伸缩盒子中的粘连,\TeX\ 可以让盒子变大或变小。 + +%Roughly speaking, a line is a box containing a sequence of character boxes, +%and a page is a box containing a sequence of line boxes. +%There's glue between the words of a line and between the lines of a page. +%\TeX\ stretches or shrinks +%the glue on each line so as to make the right margin +%of the page come out even and the glue on each page +%so as to make the bottom margins of different pages be equal. +%Other kinds of typographical elements can also appear in a line or in a page, +%but we won't go into them here. +粗略说来,文本行是一个包含一系列字符盒子的盒子, +而页面是一个包含一系列行盒子的盒子。 +一行的各单词之间以及页面的各行之间都有粘连。 +\TeX\ 伸缩各行中的粘连以让右页边对齐, +伸缩各页中的粘连以让各页的下边距相等。 +其他类型的排印元素也可以出现在行内或页内,但我们不在这里讨论。 + +%As part of the process of assembling pages, \TeX\ needs to break paragraphs +%into lines and lines into pages. The stomach first sees a paragraph as one +%long line, in effect. It inserts \emph{line breaks} +%^^{line breaking} +%in order to transform +%the paragraph into a sequence of lines of the right length, performing a +%rather elaborate analysis in order to choose the set of breaks +%that makes the paragraph look best +%\seeconcept{line break}. +%The stomach carries out a similar +%but simpler process in order to transform a sequence of lines into a page. +%Essentially the stomach accumulates lines until no more lines can fit on the +%page. It then chooses a single place to break the page, putting the lines +%before the break on the current page +%and saving the lines after the break for the +%next page \seeconcept{page break}. ^^{page breaks//inserted by \TeX's stomach} +作为组装页面过程的一部分, +\TeX\ 需要将段落分为多行,将多行组成页面。 +事实上,\TeX\ 的胃刚开始将段落看成一个很长的行。 +它插入\emph{断行点}以将段落分为长度合适的一些行, +^^{断行} +通过复杂的分析以找到最佳的断行点的集合\seeconcept{断行点}。 +\TeX\ 的胃也执行类似但简单些的分析以将一些行组成页面。 +基本上,胃累加各行直到页面上放不下更多的行。 +然后它选择一个分页位置,将该分页位置之前的各行放在当前页面, +将之后的各行留给下个页面\seeconcept{分页点}。% +^^{分页//由 \TeX\ 的胃插入} + +%When \TeX\ is assembling an entity from a list of items (boxes, glue, etc.), +%it is in one of six +%\emph{modes} ^^{modes} (\xref{mode}). +%The kind of entity it is assembling defines the mode that it is in. +%There are two ordinary modes: ordinary horizontal mode for assembling +%paragraphs (before they are broken into lines) +%and ordinary vertical mode for assembling pages. +%There are two restricted modes: +%restricted horizontal mode for appending items horizontally to form +%a horizontal box +%and internal vertical mode for appending items vertically to form +%a vertical box (other than a page). +%Finally, there are two math modes: text math mode for assembling math formulas +%within a paragraph and display math mode for assembling math formulas that are +%displayed on lines by themselves (see ``Math formulas'', \xref{mathform}). +在 \TeX\ 组装一个列表项(盒子,粘连等)中的某个东西时, +它总处于六种\emph{模式}^^{模式}(\xref{模式})的其中一种模式中。 +它所组装的东西的类型定义了它所在的模式。 +首先有两种普通模式:普通水平模式用于组装段落(在它们分为多行之前), +普通竖直模式用于组装页面。 +其次有两种限制模式:受限水平模式用于水平地添加元素形成水平盒子, +内部竖直模式用于竖直地添加元素以形成竖直盒子(非页面盒子)。 +最后还有两种数学模式:文内数学模式用于组装段落内部的数学公式, +陈列数学模式用于组装单独一行显示的数学公式(见“数学公式”,\xref{mathform})。 + + +%\section New \TeX\ versus old {\TeX} +\section{新 \TeX\ 和老 \TeX} + +%\xrdef{newtex} +%In 1989 Knuth made a major revision to \TeX\ in order to +%adapt it to the +%character sets needed to support typesetting for languages other than +%English.\space ^^{foreign languages} +%The revision included a few minor extra features that could be added +%without disturbing anything else. +%This book describes ``^{\newTeX}''. +%If you're still using an older version +%of \TeX\ (version $2.991$ or earlier), +%you'll want to know what features of {\newTeX} you can't use. +%The following features aren't available in the older versions: +%\ulist\compact +%\li ^|\badness| (\xref\badness) +%\li ^|\emergencystretch| (\xref\emergencystretch) +%\li ^|\errorcontextlines| (\xref\errorcontextlines) +%\li ^|\holdinginserts| (\xref\holdinginserts) +%\li ^|\language|, ^|\setlanguage|, and |\new!-lan!-guage| +%(\pp\xrefn\language, \xrefn{\@newlanguage}) ^^|\newlanguage| +%\li ^|\lefthyphenmin| and ^|\righthyphenmin| (\xref\lefthyphenmin) +%\li ^|\noboundary| (\xref\noboundary) +%\li ^|\topglue| (\xref\topglue) +%\li The |^^|$xy$ notation for hexadecimal digits (\xref{hexchars}) +%\endulist +%\noindent +%We recommend that you obtain new \TeX\ if you can. +\xrdef{newtex} +在 1989 年,Knuth 对 \TeX\ 做了一次大幅修改, +使得它能够处理非英语排版所需的字符集。^^{外语} +这次修改还包括了一些额外的不干扰其它东西的小功能, +这本书介绍 ``^{\newTeX}''。 +如果你仍使用旧版本的 \TeX ($2.991$ 版或以前的版本), +你可能会想知道哪些 {\newTeX} 的功能你是没法使用的。 +以下这些功能无法在旧版中使用: +\ulist\compact +\li ^|\badness|(\xref\badness ) +\li ^|\emergencystretch|(\xref\emergencystretch ) +\li ^|\errorcontextlines|(\xref\errorcontextlines ) +\li ^|\holdinginserts|(\xref\holdinginserts ) +\li ^|\language|、^|\setlanguage| 和 |\new!-lan!-guage|% +(第 \xrefn\language 和 \xrefn{\@newlanguage}页)^^|\newlanguage| +\li ^|\lefthyphenmin| 和 ^|\righthyphenmin|(\xref\lefthyphenmin ) +\li ^|\noboundary|(\xref\noboundary ) +\li ^|\topglue|( \xref\topglue ) +\li 十六进制的数字表达方式 |^^|$xy$(\xref{hexchars}) +\endulist +\noindent +我们建议你尽可能地使用新版本的 \TeX 。 + +%\section Resources +\section 资源 + +%\xrdef{resources} +%A number of resources are available to help you in using \TeX. +%\texbook\ is the definitive source of information on \TeX: +\xrdef{resources} +有很多资源可以帮助你使用 \TeX ,其中 \texbook\ 是最可靠的 \TeX\ 信息来源。 + +%\smallskip +%{\narrower\noindent +%^{Knuth, Donald E.}, \texbook. Reading, Mass.: Addison-Wesley, 1984.\par} +%\smallskip +%\noindent +%Be sure to get the seventeenth printing (January 1990) or later; +%the earlier printings don't cover the features of new \TeX. +\smallskip +{\narrower\noindent +^{Knuth, Donald E.}, \texbook. Reading, Mass.: Addison-Wesley, 1984.\par} +\smallskip +\noindent +请务必使用第十七次(1990 年 1 月)及以后的印刷版本。 +早先的印刷版本不包括新 \TeX\ 的许多功能。 + +%^{\LaTeX} is a very popular collection of commands designed to simplify the use +%of \TeX. It is described in: +%\smallskip +%{\narrower\noindent\frenchspacing\spaceskip = 3.33pt plus 2pt minus 1.2pt +%^{Lamport, Leslie}, {\sl The \LaTeX\ Document Preparation System}. +%Reading, Mass.: Addison-Wesley, 1986.\par} +%\smallskip +%\noindent +%^{\AMSTeX} is the collection of commands adopted by the American Mathematical +%Society as a standard for submitting mathematical man\-u\-scripts +%electronically. +%It is described in: +%\smallskip +%{\narrower\noindent +%^{Spivak, Michael~D.}, {\sl The Joy of \TeX}. Providence, R.I.: +%American Mathematical Society, 1986. +%\par} +%\smallskip +%\noindent +%You can join the ^{\TUG} (TUG), which publishes a newsletter +%called {\it ^{TUGBoat}}. +%TUG is an excellent source not only for information about \TeX\ but also +%for collections of macros, including \AMSTeX. +%Its address is: +%\smallskip +%{\obeylines +%^{\TUG} +%c/o American Mathematical Society +%P.O. Box 9506 +%Providence, RI 02940 +%U.S.A. +%} +%\smallskip +%\noindent +%Finally, you can obtain copies of the ^|eplain.tex| macros +%described in \chapterref{eplain} as well as the macros used in typesetting +%this book. +%They are available through the Internet network by anonymous \ftp\ from the +%following hosts: +%{\obeylines\display{\tt +%labrea.stanford.edu [36.8.0.47] +%ics.uci.edu [128.195.1.1] +%june.cs.washington.edu [128.95.1.4]}} +^{\LaTeX} 是一套为了简化 \TeX\ 的使用而设计的命令集, +它在这本书里面有介绍\footnote{译注: 这本书中介绍的 \LaTeX\ 己经过时。}: +\smallskip +{\narrower\noindent\frenchspacing\spaceskip = 3.33pt plus 2pt minus 1.2pt +^{Lamport, Leslie}, {\sl The \LaTeX\ Document Preparation System}. +Reading, Mass.: Addison-Wesley, 1986.\par} +\smallskip +\noindent +^{\AMSTeX} 是一套美国数学学会定义的提交电子数学手稿的命令标准, +它在这里有介绍: +\smallskip +{\narrower\noindent +^{Spivak, Michael D.}, {\sl The Joy of \TeX}. Providence, R.I.: +American Mathematical Society, 1986. +\par} +\smallskip +\noindent +你可以加入 ^{\TUG}(TUG),这个组织出版一本名为 {\it ^{TUGBoad}} 的通讯。 +TUG 是一个很好的信息来源渠道,它同时也提供包括 \AMSTeX\ 在内的很多 \TeX\ 宏包资源。 +它的地址是: +\smallskip +{\obeylines +^{\TUG} +c/o American Mathematical Society +P.O. Box 9506 +Providence, RI 02940 +U.S.A. +} +\smallskip +\noindent +最后,你可以获取在\chapterref{eplain}介绍的用来排版本书的宏包 ^|eplain.tex|。 +它可以通过使用 \ftp 匿名登录获取: +{\obeylines\display{\tt +labrea.stanford.edu [36.8.0.47] +ics.uci.edu [128.195.1.1] +june.cs.washington.edu [128.95.1.4]}} + +%The electronic version includes additional macros +%that format input for the +%^{\BibTeX}\ computer program, written by Oren Patashnik at Stanford +%University, ^^{Patashnik, Oren} +%and print the output from that program. +%If you find bugs in the macros, or think of improvements, you can send +%electronic mail to Karl at {\tt karl@cs.umb.edu}. +电子版本还包括了为 ^{\BibTeX} 程序处理输入并排印其输出的宏—— +\thinspace\BibTeX 程序是斯坦弗大学的 Oren Patashnik ^^{Patashnik, Oren} 编写的。 +如果你在这个宏包中发现了错误,或者想改进它, +你可以给 Karl 发电子邮件。Karl 的电子邮箱地址是 {\tt karl@cs.umb.edu}。 + +%The macros are also available for US \$10.00 on $5\frac1/4$\inches\ +%or $3\frac1/2$\inches\ PC-format diskettes from: +%\smallskip +%{\obeylines +%Paul Abrahams +%214 River Road +%Deerfield, MA 01342 +%\vskip\tinyskipamount +%Email: {\tt Abrahams\%Wayne-MTS@um.cc.umich.edu} +%} +%\smallskip +%\noindent +%These addresses are correct as of June 1990; please be aware that they may +%change after that, particularly the electronic addresses. +这个宏包还提供了 $5\frac1/4$\inches\ 或 $3\frac1/2$\inches\ 软盘, +你可以向以下地址邮寄 10.00 美元购买: +\smallskip +{\obeylines +Paul Abrahams +214 River Road +Deerfield, MA 01342 +\vskip\tinyskipamount +Email: {\tt Abrahams\%Wayne-MTS@um.cc.umich.edu} +} +\smallskip +\noindent +这个地址在 1990 年 6 月是正确的;请注意在这之后它可能发生改变,尤其是电子邮件地址。 + +\ifoldeplain\else\ifcompletebook\else +\vskip4em{\sectionfonts\leftline{本章索引}} +\readindexfile{i} +\fi\fi + +\endchapter\byebye |