diff options
Diffstat (limited to 'Master/texmf-dist/doc/plain/impatient/usingtex.tex')
-rw-r--r-- | Master/texmf-dist/doc/plain/impatient/usingtex.tex | 822 |
1 files changed, 822 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/plain/impatient/usingtex.tex b/Master/texmf-dist/doc/plain/impatient/usingtex.tex new file mode 100644 index 00000000000..35ec5310d23 --- /dev/null +++ b/Master/texmf-dist/doc/plain/impatient/usingtex.tex @@ -0,0 +1,822 @@ +% 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{Using \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 + +\subsection Programs and files you need + +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. + +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. + +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}). + +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. + +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. + +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\ 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} + + +\subsection Running {\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. + +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. + +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. + +For a more complete explanation of how to run \TeX, +see \knuth{Chapter~6} and your ^{local information}. +\eix^^{running \TeX} + + +\section Preparing an input file + +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} + +\subsection Commands and control sequences + +\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: + +\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}. + +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 +\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 `|{}|'. + +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|. + +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|'. + +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. + +\eix^^{control sequences} +\eix^^{commands} + + +\subsection Arguments + +\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|. + +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}). + +\secondprinting{\vfill\eject} + + +\subsection Parameters + +\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} + +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$. + + +\subsection Spaces + +\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. + +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. + +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}. + +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.) + +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} + +\subsection Comments + +\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' ========= +| + +{\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} + + +\subsection Punctuation + +\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? +| +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} + +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}. + +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: + +\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. + +\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. + + +\subsection Special characters + +Certain characters have special meaning to \TeX, so you shouldn't use them +in ordinary text. They are: + +\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 + \$ \# \& \% \_ +| + +\noindent +For the others, you need something more elaborate: + +\csdisplay + \^{!visiblespace} \~{!visiblespace} $\{$ $\}$ $\backslash$ +| + + +\subsection Groups + +\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.} + +\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). + +\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} + + +\subsection Math formulas + +\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: + +\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} + + +\section How \TeX\ works + +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. + +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} + +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. + +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. + +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} + +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}). + + +\section New \TeX\ versus old {\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. + +\section Resources + +\xrdef{resources} +A number of resources are available to help you in using \TeX. +\texbook\ is the definitive source of information on \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. + +^{\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]}} + +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}. + +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. + +\endchapter\byebye |