diff options
Diffstat (limited to 'systems/knuth/dist/tex/texbook.tex')
-rw-r--r-- | systems/knuth/dist/tex/texbook.tex | 393 |
1 files changed, 216 insertions, 177 deletions
diff --git a/systems/knuth/dist/tex/texbook.tex b/systems/knuth/dist/tex/texbook.tex index 23d626ed6d..a1e50786ea 100644 --- a/systems/knuth/dist/tex/texbook.tex +++ b/systems/knuth/dist/tex/texbook.tex @@ -102,7 +102,8 @@ ISBN 0-201-13448-9 (soft)\cr}} \noindent %{\sl \kern-1pt First hardcover edition, January 1986} %{\sl \kern-1pt Incorporates the final corrections made in 1996, and a few dozen more.} -{\sl \kern-1pt Incorporates all corrections known in 2013.} +%{\sl \kern-1pt Incorporates all corrections known in 2013.} +{\sl \kern-1pt Incorporates all corrections known in 2020.} \smallskip \noindent Internet page {\tt http://www-cs-faculty.stanford.edu/\char`\~ @@ -115,11 +116,19 @@ Copyright $\copyright$ 1984, 1986 by the American Mathematical Society \noindent This book is published jointly by the American Mathematical Society and Addison\kern.1em--Wesley Publishing Company. -All rights reserved. No part of this publication may be reproduced, stored in -a retrieval system, or transmitted, in any form or by any means, -electronic, mechanical, photocopying, recording, or otherwise, without -the prior written permission of the publishers. Printed in the United -States of America. % Published simultaneously in Canada. +All rights reserved. +%No part of this publication may be reproduced, stored in +%a retrieval system, or transmitted, in any form or by any means, +%electronic, mechanical, photocopying, recording, or otherwise, without +%the prior written permission of the publishers. +This publication is protected by copyright, and permission must be +obtained from the publisher prior to any prohibited reproduction, storage in +a~retrieval system, or transmission in any form or by any means, electronic, +mechanical, photocopying, recording, or likewise. For information regarding +permissions, request forms, and the appropriate contacts with the +Pearson Education Global Rights \& Permissions Department, please visit + {\tt www.pearson.com/permissions/}. +Printed in the United States of America. % Published simultaneously in Canada. \medskip \noindent %ISBN 0-201-13448-9\par % paperback @@ -129,9 +138,19 @@ ISBN-10 \enspace\phantom{978-}0-201-13447-0\par %33 34 35 36 37 38 39 DOC 09 08 07 06 % paperback %18 19 20 21 22 23 24 DOC 10 09 08 07 06 % hardcover \smallskip\noindent -Text printed in the United States - at Courier Westford in Westford, Massachusetts.\par\noindent -Nineteenth Printing, February 2012 +%Text printed in the United States +%% at Courier Westford in Westford, Massachusetts.\par\noindent +%at LSC Communications in Crawfordsville, Indiana.\par\noindent +%%Nineteenth Printing, February 2012 +%% [The printer deleted "Text printed ... Crawfordsville..." in 2017!] +%Thirty-fifth Softcover Printing, April 2017\par\noindent +%35\quad17 +%Twenty-second Printing, January 2021\par\noindent +Twenty-third Printing, February 2021\par\noindent +%20\quad17 +\smallskip +\font\pearsonkluj=arial at 9pt +\leftline{\pearsonkluj ScoutAutomatedPrintCode} ^^{Knuth, Donald Ervin} ^^|\copyright| \eject @@ -720,7 +739,7 @@ There's a special control word \TeX \endtt that produces the half-dozen or so instructions necessary to typeset `\TeX'. -When a phrase like `\TeX\ ignores spaces after control words.' is +When a phrase like `\TeX\ ignores spaces after control words.'\ is desired, the manuscript renders it as follows: \begintt \TeX\ ignores spaces after control words. @@ -1025,7 +1044,7 @@ you should say |a| |bold| \hbox{|`{\bf f\/}'|}, lest you get a bold `{\bf f}'. \ddangerexercise Define a control sequence |\ic| such that `|\ic c|' puts the italic correction of character $c$ into \TeX's register |\dimen0|. \answer |\def\ic#1{\setbox0=\hbox{#1\/}\dimen0=\wd0|\parbreak -|\setbox0=\hbox{#1}\advance\dimen0 by -\wd0}|. +|\setbox0=\hbox{#1}\advance\dimen0 by -\wd0 }|. \ddanger The primitive control sequence ^|\nullfont| stands for a font that has no characters. This font is always present, in case you haven't @@ -1336,7 +1355,7 @@ change fonts or to control spacing or anything. \TeX\ doesn't mind if you want to waste your time making groups for no particular reason. But in the second case, the necessary braces were forgotten. You get the letter `S' centered on a line by itself, followed by a paragraph that -begins with `o should this.' on the next line. +begins with `o should this.'\ on the next line. \exercise And how about this one? \begintt @@ -2162,7 +2181,7 @@ together with up to |\errorcontextlines| additional two-line items. \ (If anything has thereby been omitted, you'll also see `|...|'.) \ Chances are good that you can spot the source of an error even when most of a large context has been suppressed; if not, you can say -`|I\errorcontextlines=100\oops|' and try again. \ (That will usually +`|I\errorcontextlines=100| |\oops|' and try again. \ (That will usually give you an undefined control sequence error and plenty of context.) \ Plain \TeX\ sets |\errorcontextlines=5|. @@ -2566,7 +2585,7 @@ characters that you {\sl can\/} type on your ^{keyboard} are reserved for special purposes like escaping and grouping. Yet when we studied fonts it was pointed out that there are 256 characters per font. So how can you refer to the characters that aren't on your keyboard, or that have been -pre-empted for formatting? +pre\"empted for formatting? One answer is to use control sequences. For example, the plain format of Appendix B\null, which defines |%| to be a special kind of symbol so that you @@ -2722,9 +2741,10 @@ way, from |^^00| to |^^ff|. Character 127 is |^^7f|. \danger Most of the |^^| codes are unimportant except in unusual applications. But |^^M| is particularly noteworthy because it is code 13, the ASCII -^\<return> that \TeX\ normally places at the right end of every line of +^\<return> that \TeX\ normally assumes to be present +at the right end of every line of ^^{hat hat M} your input file. By changing the category of~|^^M| you can obtain useful -special effects, as we shall see later. ^^{hat hat M} +special effects, as we shall see later.\looseness=-1 \danger The control code |^^I| is also of potential interest, since it's the ASCII ^\<tab>. Plain \TeX\ makes \<tab> act like a blank space. @@ -2903,6 +2923,7 @@ you would have seen the space. Incidentally, when \TeX\ prints the ^{context of an error message}, the bottom pair of lines comes from a text file, but the other pairs of lines are portions of token lists that \TeX\ is reading (unless they begin with `|<*>|', when they +represent text entered from the user's terminal, or with `|<insert>|', when they represent text inserted during ^{error recovery}). \ddangerexercise Given the category codes of plain \TeX\ format, @@ -2985,7 +3006,7 @@ it a character token!) ^^|\let| ^^{implicit character} for life's not a paragraph \quad % he left a blank line here, really -And death i think is no parenthesis. +And death i think is no parenthesis \author e.~e.~^{cummings}, {\sl since feeling is first\/} (1926) \bigskip @@ -3000,7 +3021,7 @@ but the need for more than 128 codes in general applications was not yet evident. \author ASA SUBCOMMITTEE X3.2, {\sl American Standard\break % Code for Information Interchange\/^^{ASCII}} (1963) -% in {\sl Communications of the ACM\/} +% in Communications of the ACM \eject \beginchapter Chapter 9. \TeX's\\Roman Fonts @@ -3030,7 +3051,7 @@ $$\openup1pt\halign{\indent#\hfil\cr |ff| yields ff\thinspace;$\!$\quad |fi| yields fi\thinspace;$\!$\quad |fl| yields fl\thinspace;$\!$\quad |ffi| yields ffi\thinspace;$\!$\quad |ffl| yields ffl\thinspace;\cr -|``| yields``\thinspace;\qquad |''| yields ''\thinspace;\qquad +|``| yields ``\thinspace;\qquad |''| yields ''\thinspace;\qquad |!||`| yields !`\thinspace;\qquad |?||`| yields ?`\thinspace;\cr |--| yields --\thinspace;\qquad |---| yields ---\thinspace.\cr}$$ ^^{Spanish ligatures} @@ -3888,7 +3909,7 @@ the depth of the larger box). \answer This |E| is inside a box that's inside a box. \danger Such displays of box contents will be discussed further in -Chapters 12 and~17. +Chapters 12 and~27. They are used primarily for diagnostic purposes, when you are trying to figure out exactly what \TeX\ thinks it's doing. The main reason for bringing them up in the present chapter is simply to provide a glimpse of how \TeX\ represents @@ -4195,8 +4216,8 @@ plain \TeX, which creates an hbox whose width is the current |\hsize|: \line{\hfil\hfil What happens now?\hfil} \line{\hfill\hfil and now?\hfil} \endtt -\answer `What happens now?' is placed in a line of width |\hsize|, with -twice as much space at the left as at the right; `and now?' is put flush right +\answer `What happens now?'\ is placed in a line of width |\hsize|, with +twice as much space at the left as at the right; `and now?'\ is put flush right on the following line. \ddangerexercise How do the following three macros behave differently? @@ -4267,7 +4288,7 @@ this line to its minimum width, the result would be \hbox to 0pt{``Oh, oh!'' cried Baby Sally. Dick and Jane laughed.} \enddisplay The glue after a ^{comma} shrinks only 80 percent as much as ordinary -inter-word glue, and after a ^{period} or ^{exclamation point} or +interword glue, and after a ^{period} or ^{exclamation point} or ^{question mark} it shrinks by only one third as much. This all makes for nice-looking output, but it unfortunately adds a bit @@ -4290,7 +4311,7 @@ Chapter 18 has more to say about |\ldots| and related topics. ^{Abbreviations} present problems too. For example, the short story in Chapter~6 referred to `Mr.~^{Drofnats}'; \TeX\ must be told somehow that the -period after `Mr.'\ or `Mrs.'\ or `Ms.' or `Prof.'\ or `Dr.' or `Rt.~Hon.', +period after `Mr.'\ or `Mrs.'\ or `Ms.'\ or `Prof.'\ or `Dr.'\ or `Rt.~Hon.', etc., doesn't count as a sentence-ending ^{full stop}. We avoided that embarrassment in Chapter~6 by typing `|Mr.~Drofnats|'; @@ -4359,7 +4380,7 @@ the~`|I.|' in `|Dr.~Livingstone~I.\ Presume|'; that particular period is not assumed to be a full stop. ^^{Presume} \dangerexercise What can you do to make \TeX\ recognize the ends of sentences -that do end with uppercase letters (e.g., `$\ldots$ launched by NASA.\null' or +that do end with uppercase letters (e.g., `$\ldots$ launched by NASA.' or `Did I?' or `$\ldots$ see Appendix~A.')? \answer There are several ways; perhaps the easiest are to type `|\hbox{NASA}.|'\ or `|NASA\null.|' \ (The ^|\null| macro is an abbreviation @@ -4948,8 +4969,8 @@ but mainly he told the truth. Every shape exists only because of the space around it. % Jeder Formwert lebt nur dank seiner Umgebung. $\ldots$ Hence there is a `right' position for every shape in every situation. -% ... Daraus geht hervor, ein bestimmter Formvert in einer bestimmten Situation -% einen bestimmten Platz verlangt, der ihm gem\"a\ss\ ist. +% ... Daraus geht hervor, da\ss\ ein bestimmter Formwert in einer bestimmten +% Situation einen bestimmten Platz verlangt, der ihm gem\"a\ss\ ist. If we succeed in finding that position, we have done our job. % Gelingt es uns, diese Pl\"atze zu finden, % so nennen wir die Arbeit vollendet. @@ -6354,14 +6375,15 @@ lines end with hyphens. What penalties does plain \TeX\ put between the lines? \answer |\interlinepenalty| plus |\clubpenalty| plus |\widowpenalty| (and also plus |\brokenpenalty|, if the first line ends with a discretionary break). -\ddanger If you say ^|\vadjust||{|\<vertical list>|}| within a paragraph, -\TeX\ will insert the specified internal vertical list into the vertical +\ddanger If you say ^|\vadjust||{|\<vertical mode material>|}| within a +paragraph, \TeX\ will use internal vertical mode to insert the specified +material into the vertical list that encloses the paragraph, immediately after whatever line contained the position of the |\vadjust|. For example, you can say `|\vadjust{\kern1pt}|' to increase the amount of space between lines of a paragraph if those lines would otherwise come out too close together. \ (The -\vadjust{\vskip1pt}author -did it in the previous line, just to illustrate what happens.) \ Also, +\vadjust{\kern1pt}author +did that in the current line, just to illustrate what happens.) \ Also, if you want to make sure that a page break will occur immediately after a certain line, you can say `|\vadjust{\eject}|' ^^|\eject| anywhere in that line. @@ -6392,6 +6414,7 @@ depth of a ^|\strut|. \def\strutdepth{\dp\strutbox} \def\marginalstar{\strut\vadjust{\kern-\strutdepth\specialstar}} \endtt +(The next line must also not be too tall.) Here |\specialstar| is a box of height zero and depth |\strutdepth|, and it puts an asterisk in the left margin: \begintt @@ -7442,7 +7465,8 @@ the footnotes here\note{Second note.} if ... \danger Sometimes, however, you want to use a register just for temporary storage, and you know that it won't conflict with anybody else's macros. -Registers |\count255|, |\dimen255|, |\skip255|, and |\muskip255| are +Registers |\count255|, |\dimen255|, |\skip255|, |\muskip255|, and +|\toks255| are traditionally kept available for such purposes. Furthermore, plain \TeX\ reserves |\dimen0| to |\dimen9|, |\skip0| to |\skip9|, |\muskip0| to |\muskip9|, and |\box0| to |\box9| for ``scratchwork''; these registers @@ -7967,7 +7991,8 @@ boxes, as explained in Chapter~11. If you have a formula in which there is only one |\sqrt|, or only one |\overline| or |\underline|, the normal positioning rules work fine; but sometimes you want to have uniformity between different members of a complex formula. For example, you might want to -typeset `$\sqrt{\mathstrut a}+\sqrt{\mathstrut d}+\sqrt{\mathstrut y}$', +typeset `$\mskip-1mu\sqrt{\mathstrut a}+ + \sqrt{\mathstrut d}+\sqrt{\mathstrut y}\mskip+2mu$', putting all square roots in the same vertical position. There's an easy way to do this, using the control sequence ^|\mathstrut| as follows: \begintt @@ -9416,11 +9441,11 @@ because |\mathopen| forces class~4 (opening). In the formula `|$G\mathbin:H$|', the ^{colon} is~treated as a binary operation. And Appendix~B constructs large opening symbols by defining ^|\bigl||#1| to be an abbreviation for -\begintt -\mathopen{\hbox{$\left#1 ...\right.$}} +\begintt|let|0|rm +\mathopen{\hbox{$\left#1|<|0strut>\right.$}} \endtt There's also an eighth classification, ^|\mathinner|, which is not -normally used for individual symbols; fractions and ^|\left||...|^|\right| +normally used for individual symbols; ^|\left|$\,\ldots\,$^|\right| constructions are treated as ``inner'' subformulas, which means that they will be surrounded by additional space in certain circumstances. All other subformulas are generally treated as ordinary symbols, @@ -9479,11 +9504,11 @@ are~$-1$ until they are changed by a |\delcode| command. \ddangerexercise Appendix~B defines |\delcode`<| so that there is a shorthand notation for ^{angle brackets}. Why do you think Appendix~B doesn't go further and define |\delcode`{|? -\answer If\/ |\delcode`{| were set to some nonnegative delimiter code, you -would get no error message when you wrote something like `|\left{|'. -This would be bad because strange effects would happen when certain -subformulas were given as arguments to macros, or when they appeared -in alignments. But it has an even worse defect, because a user who +\answer Assigning |\delcode`{| would not work to allow `|\left{|', because +the brace has category~1 and isn't a legal \<delim>. +Allowing brace delimiters would be a bad idea because it would +mess up other constructions, such as arguments to macros, and +components of alignments. Moreover, a user who gets away with `|\left{|' is likely to try also `|\bigl{|', which fails miserably. @@ -9602,7 +9627,7 @@ Rel&is a relation atom like `$=$'\thinspace;\cr Open&is an opening atom like `$($'\thinspace;\cr Close&is a closing atom like `$)$'\thinspace;\cr Punct&is a punctuation atom like `$,$'\thinspace;\cr -Inner&is an inner atom like `$1\over2$'\thinspace;\cr +Inner&is an inner atom produced by `|\left|$\,\ldots\,$|\right|';\cr Over&is an overline atom like `$\overline x$'\thinspace;\cr Under&is an underline atom like `$\underline x$'\thinspace;\cr Acc&is an accented atom like `$\hat x$'\thinspace;\cr @@ -9697,7 +9722,7 @@ The learning time is short. A few minutes gives the general flavor, and typing a page or two of a paper generally uncovers most of the misconceptions. \author ^{KERNIGHAN} and ^{CHERRY}, {\sl A System for % Typesetting Mathematics\/} (1975) - % in {\sl Communications of the ACM\/} p152 + % in Communications of the ACM p152 \bigskip @@ -9706,7 +9731,7 @@ a typist with no math or typesetting experience can be taught to input even the most complex equations. \author PETER J. ^{BOEHM}, {\sl Software and Hardware Considerations % for a\break Technical Typesetting System\/} (1976) -% in {\sl IEEE Transactions on Professional Communication\/} PC-19, pp15--19 +% in IEEE Transactions on Professional Communication PC-19, pp15--19 \eject \beginchapter Chapter 18. Fine Points of\\Mathematics\\Typing @@ -9950,7 +9975,7 @@ was current outside the formula. \ddanger The bold fonts available in plain \TeX\ are ``bold roman,'' rather than ``bold italic,'' because the latter are rarely needed. However, \TeX\ could readily be set up to make use of bold math italics, if desired -(see Exercise 17.\bmiexno). A more extensive set of math fonts would also +(see exercise 17.\bmiexno). A more extensive set of math fonts would also include ^{script}, ^{Fraktur}, and ``^{blackboard bold}'' styles; plain \TeX\ doesn't have these, but other formats like \AmSTeX\ do. ^^{AMS-TeX} ^^{German black letters} @@ -10157,7 +10182,7 @@ almost true. But occasionally you must give \TeX\ some help. The number of possible math formulas is vast, and \TeX's spacing rules are rather simple, so it is natural that exceptions should arise. Of course, it is desirable to have fine units of spacing for this purpose, instead of the -big chunks that arise from |\|\], |\quad| and |\qquad|. +big chunks that arise from |\|\], |\quad|, and |\qquad|. The basic elements of space that \TeX\ puts into formulas are called {\sl ^{thin spaces}}, {\sl ^{medium @@ -10315,7 +10340,8 @@ and the math list consists chiefly of ``^{atoms}'' of eight basic types: ^{Punct}~(punctuation), ^^{punctuation} and ^{Inner}~(a delimited subformula). Other kinds of atoms, which arise from commands like ^|\overline| or ^|\mathaccent| or ^|\vcenter|, etc., are all treated as -type~Ord; ^{fractions} are treated as type~Inner. The following table is +type~Ord; subformulas delimited by ^|\left| and ^|\right| +are treated as type~Inner. The following table is used to determine the spacing between pairs of adjacent atoms: $$\baselineskip0pt\lineskip0pt \halign to\hsize @@ -10331,7 +10357,6 @@ $$\baselineskip0pt\lineskip0pt \hbox to 25pt{\tt\hss#\hss}& % for column 7 \hbox to 25pt{\tt\hss#\hss}& % for column 8 #\hfil\tabskip0pt\cr % for the rule at the right -\noalign{\vskip-6pt} % it just happens that there's extra white space &&&&\multispan7\hss\it Right atom\hss\cr \noalign{\vskip3pt} &&&\rm Ord&\rm Op&\rm Bin&\rm Rel&\rm Open&\rm Close&\rm Punct&\rm Inner\cr @@ -10360,7 +10385,7 @@ never arise, because Bin atoms must be preceded and followed by atoms compatible with the nature of binary operations. Appendix~G contains precise details about how math lists are converted to horizontal lists; this conversion is done whenever \TeX\ is about to leave math mode, and the -inter-atomic spacing is inserted at that time. +interatomic spacing is inserted at that time. \ddanger For example, the displayed formula specification \begintt @@ -10417,7 +10442,7 @@ if that subformula were enclosed by |\bigl| and~|\bigr|. For example, Ord followed by Inner (from |\left|) gets a thin space, but Ord followed by Open (from |\bigl|) does not. The rules in Chapter~17 imply that the construction `^|\mathinner||{\bigl({|\<subformula>|}\bigr)}|' within any -formula produces a result exactly equivalent to +formula produces a result essentially equivalent to `|\left(|\<subformula>|\right)|', when the \<subformula> doesn't end with Punct, except that the ^{delimiters} are forced to be of the |\big| size regardless of the height and depth of the subformula. @@ -11192,7 +11217,7 @@ shown here haven't been explained yet, but Chapter~22 will reveal all. enormous and still growing, so you will probably continue to find new challenges as you continue to type mathematical papers. It's a good idea to keep a personal notebook in which you record all of -the non-obvious formulas that you have handled successfully, +the nonobvious formulas that you have handled successfully, showing both the final output and what you typed to get it. Then you'll be able to refer back to those solutions when you discover that you need to do something similar, a few months later. @@ -11359,7 +11384,8 @@ And even if you do type `|$$\hbox{$\displaystyle{|\<formula>|}$}$$|', the results are not quite the same, as we will see later: \TeX\ will compress the glue in `|$$|\<formula>|$$|' if the formula is too wide to fit on a line at its natural width, but the glue inside |\hbox{...}| is frozen -at its natural width. The |\hbox| version also invokes |\everymath|. +at its natural width. The |\hbox| version also invokes +|\everyhbox| and |\everymath|. \dangerexercise You may have noticed that most of the displays in this manual are not centered; displayed material is usually aligned at the @@ -11821,7 +11847,7 @@ $$\eqalignno{...&\raise6pt\hbox{(5)}\cr}$$ What was his oversight, and what could he have done instead? \answer By raising the equation number, he increased the line height, so \TeX\ put extra space between that line and the previous line -when it calculated the inter-line glue. If he had said +when it calculated the interline glue. If he had said `^|\smash||{\raise...}|', he wouldn't have had that problem. \danger For other types of displays, plain \TeX\ provides ^|\displaylines|, @@ -12548,12 +12574,12 @@ what the following definition means: What token list will result when `|\! x{[y]][z}|' is expanded? \answer Let's go slowly on this one, so that the answer will give enough background to answer all similar questions. The \<parameter text> of the -definition consists of the three tokens |#1|, |#2|, |[|$_1$; the +definition consists of the three tokens |!1|, |#2|, |[|$_1$; the \<replacement text> consists of the six tokens |{|$_1$, |#|$_6$, |]|$_2$, |!|$_6$, |#2|, |[|$_1$. \ (When two tokens of category~6 occur in the replacement text, the character code of the second one survives; the character code of a category-6 character is otherwise irrelevant. Thus, -`|\def\!#1!2#[{##]!!#2]|' would produce an essentially identical +`|\def\!!1#2#[{##]!!#2]|' would produce an essentially identical definition.) \ When expanding the given token list, argument~|#1| is |x|$_{11}$, since it is undelimited. Argument~|#2| is delimited by~|[|$_1$, which is different from~|{|$_1$, so it is set provisionally to |{[y]]|; @@ -12567,13 +12593,14 @@ is therefore Incidentally, if you display this with ^|\tracingmacros||=1|, \TeX\ says \begintt \!!1#2[->{##]!!#2[ -#1<-x +!1<-x #2<-[y] \endtt Category codes are not shown, but a character of category~6 always appears twice in succession. A parameter token in the replacement text -uses the character code of the final parameter in the parameter text. +uses the character code of the final parameter in the parameter text; ^^{token lists, as displayed by TeX} +`|!1|' would have been rendered `|#1|'. \ddanger In practice, we all make mistakes. And one of the most common typographic errors is to forget a~`|}|', or to insert an extra~`|{|', @@ -12856,7 +12883,7 @@ True if \TeX\ is in math mode or display math mode (see Chapter~13). \item\bull^|\ifinner|\quad(test for an internal mode) \nobreak\smallskip\noindent True if \TeX\ is in internal vertical mode, or restricted -horizontal mode, or (nondisplay) math mode (see Chapter~13). +horizontal mode, or (non-display) math mode (see Chapter~13). \medbreak \item\bull^|\if|\<token$_1$>\<token$_2$>\quad(test if character codes agree) @@ -13176,7 +13203,7 @@ The expansion is the token list in the corresponding ``^{mark}'' register (see Chapter~23). \smallbreak -\textindent\bull ^|\input|\<file name>. The expansion is null; but \TeX\ +\textindent\bull ^|\input|\<filename>. The expansion is null; but \TeX\ prepares to read from the specified file before looking at any more tokens from its current source. @@ -13316,8 +13343,8 @@ a token for the primitive command |\span| or when reading the \<glue> after ^|\tabskip|. \smallskip -\item\bull Just after a |$|$_3$ token that begins math mode, to see if -another~|$|$_3$ follows. +\item\bull Just after a token such as |$|$_3$ that begins math mode, to see if +another token of category 3 follows. \smallskip \item\bull Just after a |`|$_{12}$ token that begins an ^{alphabetic constant}. @@ -13430,7 +13457,7 @@ other ^{brace tricks}. to~16 files at once, in addition to the files that are being |\input|. To initiate reading such an auxiliary file, you should say \begindisplay -^|\openin|\<number>|=|\<file name> +^|\openin|\<number>|=|\<filename> \enddisplay where the \<number> is between 0 and 15. \ (Plain \TeX\ allocates input stream numbers 0~through~15 with the ^|\newread| command, which @@ -13715,7 +13742,7 @@ But he found that this produced more space above and below the rule than when he had simply said `|\hrule width 4in|' with no |\vbox|. Why did \TeX\ insert more space, and what should he have done to avoid it? -\answer The interline skip is added for vboxes, but not for rules; he +\answer The interline glue is added for vboxes, but not for rules; he forgot to say ^|\nointerlineskip|, before and after the |\moveright| construction. @@ -13749,9 +13776,9 @@ horizontal mode; this character is taken from the current font. \ \ (3)~Otherwise you can make hboxes and vboxes, which fall under the generic term ^\<box>. A \<box> has one of the following seven forms: $$\halign{\indent#\hfil&\quad(see Chapter #)\hfil\cr -^|\hbox|\<box specification>|{|\<horizontal material>|}|&12\cr -^|\vbox|\<box specification>|{|\<vertical material>|}|&12\cr -^|\vtop|\<box specification>|{|\<vertical material>|}|&12\cr +^|\hbox|\<box specification>|{|\<horizontal mode material>|}|&12\cr +^|\vbox|\<box specification>|{|\<vertical mode material>|}|&12\cr +^|\vtop|\<box specification>|{|\<vertical mode material>|}|&12\cr ^|\box|\<register number>&15\cr ^|\copy|\<register number>&15\cr ^|\vsplit|\<register number>|to|\<dimen>&15\cr @@ -13764,7 +13791,7 @@ Chapter~12. A \<register number> is between 0 and 255; after you say is unchanged, as explained in Chapter~15. The |\vsplit| operation is also explained in Chapter~15. In math modes an additional type of box is available: -^|\vcenter|\<box specification>|{|\<vertical material>|}| (see Chapter~17). +^|\vcenter|\<box specification>|{|\<vertical mode material>|}| (see Chapter~17). \ddanger The bottom line of the table above refers to ^|\lastbox|, a primitive operation that hasn't been mentioned before. If the last item @@ -13937,7 +13964,7 @@ case vertical glue (e.g., |\vskip|\<glue> or |\vfill|) is used instead of horizontal glue, and |\leaders| produces boxes that are aligned so that the top of each repeated box has the same vertical position as the top of the smallest enclosing box, plus a multiple of the height-plus-depth -of the repeated box. No interlineskip glue is placed between boxes in +of the repeated box. No interline glue is placed between boxes in vertical leaders; the boxes are just stacked right on top of each other. \ddanger If you specify horizontal leaders with a box whose width isn't @@ -13949,7 +13976,7 @@ and produces ordinary glue instead. is at least $10\pt$ long and extends all the way to the right margin, like this: \null\nobreak\leaders\hrule\hskip10pt plus1filll\ \par -\answer For example, say +\answer For example, say this: \begintt \null\nobreak\leaders\hrule\hskip10pt plus1filll\ \par \endtt @@ -14043,9 +14070,9 @@ printing devices, via \TeX's ^|\special| command. \ddanger The ability to write text files that can later be input by other programs (including \TeX) makes it possible to take care of tables of contents, indexes, and many other things. You can say -`|\openout|\<number>|=|\<file name>' and `|\closeout|\<number>' by analogy +`|\openout|\<number>|=|\<filename>' and `|\closeout|\<number>' by analogy with the |\openin| and |\closein| commands of Chapter~20; the -\<number> must be between 0 and~15. The filename is usually extended with +\<number> must be between 0 and~15. The file name is usually extended with `^|.tex|' if it has no extension. There is a |\write| command that writes one line to a file, analogous to the |\read| command that reads one line; you say @@ -14154,9 +14181,9 @@ involves a macro |\chapno|, containing the current chapter number, as well as be expanded immediately, because it might change before the token list is written; but you want |\the\count0| to be expanded at the time of |\shipout|. How can you manage this? -\answer |{\let|\stretch|\the=0\edef|\stretch|\next|\stretch -|{\write|\stretch|\cont|\stretch|{|\<token list>|}}\next|\stretch|}| will -expand everything but |\the| when the |\write| command is given. +\answer If you say `|{\let|\stretch|\the=0\edef|\stretch|\next|\stretch +|{\write|\stretch|\cont|\stretch|{|\<token list>|}}\next|\stretch|}|', +the |\write| will be exercuted after |\edef| expands everything except |\the|. \ddanger Now let's wrap up our study of boxes by considering one more feature. The command `^|\special||{|\<token list>|}|' can be given in any @@ -14297,7 +14324,8 @@ implicitly inserts braces around each individual entry of an alignment. \danger Once you have issued a |\settabs| command, the tabs remain set until you reset them, even though you go ahead and type ordinary paragraphs as usual. But if you enclose |\settabs| in |{...}|, the tabs defined inside a group -don't affect the tabs outside; `^|\global||\settabs|' is not permitted. +don't affect the tabs outside; `^|\global||\settabs|' will not do what +you might think it should. \danger Tabbed lines usually are used between paragraphs, in the same places where you would type ^|\line| or ^|\centerline| to get lines with @@ -14344,8 +14372,9 @@ The |\settabs| command in this example makes column~1 as wide as a paragraph ^^{indention, see indentation} indentation; and column~2 is as wide as `Horizontal lists' plus one quad of space. ^^|\quad| Only two tabs are set in this case, because only two |&|'s -appear in the sample line. \ (A sample line might as well end with~|&|, -because the text following the last tab isn't used for anything.) +appear in the sample line. \ (A sample line usually ends with~|&\cr|, as it +does here, because text material between the last tab and |\cr| +isn't used for anything.) The first line of a table can't always be used as a sample line, because it won't necessarily give the correct tab positions. In a large table you have @@ -14481,7 +14510,7 @@ Thus, the following is recommended: \+\bf while $p>0$ do\cr \+\quad\cleartabs&{\bf begin} $q:={\it link}(p)$; ${\it free\_node}(p)$; $p:=q$;\cr - \+&{\bf end};\cr + \+&{\bf end};\cr % note that the semicolon isn't bold \endtt \danger Although |\+| lines can be used in vertical boxes, you must never @@ -15474,7 +15503,8 @@ put |\bigstrut| into some column of the title line, for some appropriate invisible box |\bigstrut| of width zero. Either way makes the table look better. -\ddangerexercise Typeset the following chart, making it exactly 36em wide: +\ddangerexercise Typeset the following chart, making it exactly +36\thinspace em wide: ^^{family tree} ^^{Bohning [Knuth], Louise Marie} ^^{Ehlert [Bohning], Pauline Anna Marie} @@ -15731,7 +15761,7 @@ output routine puts out a special line of text called the {\sl^{headline}\/} at the top of each page, and another special line of text called the {\sl^{footline}\/} at the bottom. The headline is normally blank, and the footline is normally a centered page number, but you can specify any -headline and footline that you want by redefining the control sequences +headline and footline that you want by changing the token lists ^|\headline| and ^|\footline|. For example, ^^|\hrulefill| \begintt \headline={\hrulefill} @@ -15839,8 +15869,8 @@ on the broken-off page can be removed and carried forward to the next page. \ddanger The current ^|\output| routine is defined as a token list parameter, just like ^|\everypar| or ^|\errhelp|, except that \TeX\ -automatically inserts a begin-group symbol~`|{|' at the beginning -and an end-group symbol~`|}|' at the end. These ^{grouping characters} +retains the begin-group symbol~`|{|' at the beginning +and the end-group symbol~`|}|' at the end. These ^{grouping characters} help to keep the output routine from interfering with what \TeX\ was doing when the page break was chosen; for example, an output routine often changes the ^|\baselineskip| when it puts a headline @@ -15881,7 +15911,7 @@ even though \TeX\ might no longer be making ^{spaces active} at that time. certain internal registers and parameters, in addition to |\box255|, just before the output routine begins. Insertions are put into their own vboxes, and ^|\insertpenalties| is set equal to the total number of -heldover insertions; furthermore the ^|\outputpenalty| parameter is +held-over insertions; furthermore the ^|\outputpenalty| parameter is set to the value of the penalty at the current breakpoint. An output routine can be made to do special things when these quantities have special values. For example, the output routine of plain \TeX\ recognizes @@ -15999,7 +16029,7 @@ the vertical list. ^{Ragged-bottom setting} is achieved by inserting ^^|\vfil| \textindent{4)} The ^|\makefootline| macro puts ^|\footline| into its proper position: \begintt -\baselineskip=24pt +\baselineskip=24pt \lineskiplimit=0pt \line{\the\footline} \endtt @@ -17132,7 +17162,7 @@ comparatively few patterns, as indicated by the following syntax rules: \alt<fontdef token>\alt<family assignment>\alt<shape assignment> \alt^|\read|<number>[to]<optional spaces><control sequence> \alt^|\setbox|<8-bit number><equals><filler><box> - \alt^|\font|<control sequence><equals><file name><at clause> + \alt^|\font|<control sequence><equals><filename><at clause> \alt<global assignment> <variable assignment>\is<integer variable><equals><number> \alt<dimen variable><equals><dimen> @@ -17206,8 +17236,8 @@ effect. <font assignment>\is^|\fontdimen|<number><font><equals><dimen> \alt^|\hyphenchar|<font><equals><number> \alt^|\skewchar|<font><equals><number> -<hyphenation assignment>\is^|\hyphenation|<general text> - \alt^|\patterns|<general text> +<hyphenation assignment>\is^|\hyphenation|<filler>|{|<hyphenations>|}| + \alt^|\patterns|<filler>|{|<patterns>|}| <box size assignment>\is<box dimension><8-bit number><equals><dimen> <interaction mode assignment>\is^|\errorstopmode|\alt^|\scrollmode| \alt^|\nonstopmode|\alt^|\batchmode| @@ -17223,11 +17253,11 @@ dimen> quantities were listed above when we discussed internal integers and dimensions. When |\prevgraf| is set to a \<number>, the number must not be negative. -The syntax for ^\<file name> is not standard in \TeX, because different +The syntax for ^\<filename> is not standard in \TeX, because different operating systems have different conventions. You should ask your local system wizards for details on just how they have decided to implement file names. However, the following principles should hold universally: -A~\<file name> should consist of \<optional spaces> followed by explicit +A~\<filename> should consist of \<optional spaces> followed by explicit character tokens (after expansion). A sequence of six or fewer ordinary letters and/or digits followed by a space should be a file name that works in essentially the same way on all installations of\/ \TeX\null. Uppercase @@ -17790,7 +17820,7 @@ that ends with such a character. ^^|\discretionary| \\^|\accent|\<8-bit number>\<optional assignments>. Here ^\<optional assignments> stands for zero or more \<assignment> -commands other than ^|\setbox|. +commands other than ^|\setbox|, possibly with \<filler>. If the assignments are not followed by a \<character>, where \<character> stands for any of the commands just discussed in the previous paragraph, \TeX\ treats |\accent| as if it were |\char|, except that @@ -17808,11 +17838,12 @@ Finally, \TeX\ sets |\spacefactor=1000|. If the last item on the current list is a character or ligature, an explicit kern for its ^{italic correction} is appended. -\\^|\discretionary|\<general text>\<general text>\<general text>.\enskip -The three general texts are processed in restricted horizontal mode. They -should contain only fixed-width things; hence they aren't really very -general in this case. More precisely, the horizontal list formed by each -discretionary general text must consist only of characters, ligatures, +\\^|\discretionary|\<disc text>\<disc text>\<disc text>.\enskip +A \<disc text> has the form `\<filler>|{|\<horizontal mode material>|}|', +where the material is processed in restricted horizontal mode and +should contain only fixed-width things. +More precisely, the horizontal list formed by each +^{\<disc text>} must consist only of characters, ligatures, kerns, boxes, and rules; there should be no glue or penalty items, etc. This command appends a discretionary item to the current list; see Chapter~14 for the meaning of a discretionary item. The space factor is @@ -18100,9 +18131,9 @@ A kern of width zero is appended to the current list. \ (This will have the effect of adding the italic correction to the previous character, if the italic correction wouldn't normally have been added.) -\\^|\discretionary|\<general text>\<general text>\<general text>. -This command is treated just as in horizontal mode (see Chapter~25), but the -third \<general text> must produce an empty list. +\\^|\discretionary|\<disc text>\<disc text>\<disc text>. +This command has the same effect as in horizontal mode (see Chapter~25), but the +third ^{\<disc text>} must produce an empty list. \\^|\-|.\enskip This command is usually equivalent to `|\discretionary{-}{}{}|'; @@ -18569,7 +18600,7 @@ document. Here are some of the messages you might get just before Fatal format file error; I'm stymied. ^^|Fatal format file error| This means that the preloaded format you have specified cannot be used, -because it was prepared for a different version of \TeX. +because it is corrupted or was prepared for a different version of \TeX. \fatal That makes 100 errors; please try again. \TeX\ has scrolled past 100 errors since the last paragraph ended, so @@ -19059,8 +19090,8 @@ The main purpose of the example is to serve as a reminder of the repertoire of possibilities. Most of the control sequences used in the example are defined by -macros of plain \TeX\ format, but three of them are ^{primitive}, i.e., -built~in: `|\par|' (end of paragraph), `|\noindent|' (beginning of +macros of plain \TeX\ format; but some of them are ^{primitive} (built in), +such as `|\par|' (end of paragraph), `|\noindent|' (beginning of non-indented paragraph), and `|\/|' (italic correction). The example also assigns values to two of \TeX's primitive parameters, namely |\hsize| and |\vsize|. \TeX\ has scores of parameters, all of which @@ -19277,12 +19308,13 @@ based on the delimiters available in Computer Modern: |\delcode`\<="26830A \delcode`\\="26E30F \delcode`\>="26930B| \endlines It's important to note that |\delcode`\{| and |\delcode`\}| have been left -equal to~$-1$. If those codes were set to certain values, a user would -^^{left brace} ^^{right brace} be able to type, e.g., -`|\big{|' to get a big left brace; but it would be a big mistake. -The reason is that ^{braces} are used for grouping, when supplying -arguments to macros; all sorts of strange things can happen if you try -to use them both as math delimiters and group delimiters. +equal to~$-1$. +^^{left brace} ^^{right brace} +^{Braces} are used for grouping, when supplying +arguments to macros; so they cannot also be used as math delimiters, or as +arguments to macros such as |\big|. (One could change their catcodes +to~12, and use some other pair of characters for grouping; but that +would not be plain \TeX.) At this point the |plain.tex| file contains several definitions \beginlines @@ -19310,8 +19342,8 @@ temporary ``^{scratch}'' use, but their values are always assumed to be clobbered whenever any other macro might get into control. \ (This applies to registers like |\dimen0|, |\toks0|, |\skip1|, |\box3|, etc.; but \TeX\ has already reserved |\count0| through |\count9| for page number -identification.) \ (2)~The registers |\count255|, |\dimen255|, and -|\skip255| are freely available in the same way. +identification.) \ (2)~The registers |\count255|, |\dimen255|, |\skip255|, +|\muskip255|, and |\toks255| are freely available in the same way. \ (3)~All assignments to the scratch registers whose numbers are 1,~3, 5, 7, and~9 should be ^|\global|; all assignments to the other scratch registers (0,~2, 4, 6, 8,~255) should be non-|\global|. @@ -19328,7 +19360,7 @@ apply to ^{input/output streams} used by ^|\read| and ^|\write|, to math ^{families} used by ^|\fam|, to sets of hyphenation rules used by ^|\language|, and to insertions (which require ^|\box|, ^|\count|, ^|\dimen|, and ^|\skip| registers all having the -same number). +same number).\looseness=-1 Some handy abbreviations are introduced at this point so that the macros below will have easy access to scratch registers: @@ -19366,16 +19398,16 @@ particular way. |\countdef\insc@unt=20 % nickname for the insertion counter| |\countdef\allocationnumber=21 % the most recent allocation| |\countdef|^|\m@ne||=22 \m@ne=-1 % a handy constant| -|\def|^|\wlog||{\immediate\write-1} % this will write on log file (only)| +|\def|^|\wlog||{\immediate\write-1 } % this will write on log file (only)| \smallbreak |\outer\def|^|\newcount||{\alloc@0\count\countdef\insc@unt}| |\outer\def|^|\newdimen||{\alloc@1\dimen\dimendef\insc@unt}| |\outer\def|^|\newskip||{\alloc@2\skip\skipdef\insc@unt}| -|\outer\def|^|\newmuskip||{\alloc@3\muskip\muskipdef\@cclvi}| +|\outer\def|^|\newmuskip||{\alloc@3\muskip\muskipdef\@cclv}| |\outer\def|^|\newbox||{\alloc@4\box\chardef\insc@unt}| |\let\newtoks=\relax % this allows plain.tex to be read in twice| |\outer\def\newhelp#1#2{\newtoks#1#1=\expandafter{\csname#2\endcsname}}| -|\outer\def|^|\newtoks||{\alloc@5\toks\toksdef\@cclvi}| +|\outer\def|^|\newtoks||{\alloc@5\toks\toksdef\@cclv}| |\outer\def|^|\newread||{\alloc@6\read\chardef\sixt@@n}| |\outer\def|^|\newwrite||{\alloc@7\write\chardef\sixt@@n}| |\outer\def|^|\newfam||{\alloc@8\fam\chardef\sixt@@n}| @@ -19594,8 +19626,8 @@ control sequence |\preloaded| is made undefined at the very end, so those fonts cannot be used directly. There are two reasons for this strange approach: First, it is desirable to keep the total number of fonts of plain \TeX\ relatively small, because plain \TeX\ is a sort of -standard format; it shouldn't cost much for someone to acquire all the -fonts of plain \TeX\ in addition to those he really wants. Second, it +standard format; it shouldn't cost much for people to acquire all the +fonts of plain \TeX\ in addition to the ones that they really want. Second, it is desirable on many computer systems to preload the information for most of the fonts that people will actually be using, since this saves a lot of machine time. The |\preloaded| font @@ -20469,7 +20501,7 @@ up ^|\rm| type, and that's all! |\catcode`@=12 % at signs are no longer letters| \nobreak\smallskip |\def|^|\fmtname||{plain}| -|\def\fmtversion{3.141592653} % identifies the current format| +|\def\fmtversion{3.1415926535} % identifies the current format| \endlines The format name and version number are recorded in control sequences, in order to help the people who might have to explain why something @@ -20666,7 +20698,7 @@ A person who implements \TeX\ on computer systems that do not have 95~externally representable symbols should adhere to the following guidelines: \ (a)~Stay as close as possible to the ASCII conventions. \ (b)~Make sure that codes \oct{041}--\oct{046}, \oct{060}--\oct{071}, -\oct{141}--\oct{146}, and \oct{160}--\oct{171} are present and that +\oct{136}, \oct{141}--\oct{146}, and \oct{160}--\oct{171} are present and that each unrepresentable internal code $<\null$\oct{200} leads to a representable code when \oct{100} is added or subtracted; then all 256 codes can be input and output. @@ -20761,14 +20793,14 @@ need to be familiar with the fine points in Chapter~20. \TeX's control sequences are divided into two main categories, ``expandable'' and ``unexpandable''; the former category includes all macros and |\if...\fi| tests, as well as special operations like |\the| and |\input|, while the -latter category includes the primitive commands listed in Chapter~24. +latter category includes the primitive commands listed in Chapters~24--26. The expansion of expandable tokens takes place in \TeX's ``^{mouth},'' but primitive commands (including assignments) are done in \TeX's ``^{stomach}.'' One important consequence of this structure is that it is impossible to redefine a control sequence or to advance a register while \TeX\ is expanding the token list of, say, a |\message| or |\write| command; assignment operations are done only when \TeX\ is building a -vertical or horizontal or math list. +vertical or horizontal or math list.\looseness=-1 For example, it's possible to put |\n| asterisks into a paragraph, by saying simply `|{|^|\loop||\ifnum\n>0 *\advance\n-1 \repeat}|'. @@ -20867,7 +20899,7 @@ where the characters `|pt|' are of category~12. After the macro definitions \begintt {\catcode`p=12 \catcode`t=12 \gdef\\#1pt{#1}} \let\getfactor=\\ -\def\kslant#1{\kern\expandafter\getfactor\the\fontdimen1#1\ht0} +\def\kslant#1{\kern\expandafter\getfactor\the\fontdimen1#1\ht0 } \endtt one can write, e.g., `|\kslant\tenit|' and this will expand to `|\kern0.25\ht0|'. If the boundary of\/ |\box0| is considered to be @@ -20921,11 +20953,11 @@ The goal is to set \TeX\ up so that the respective constructions `\thinspace|$$|$\,\alpha\,$|$$|\thinspace', ^^{dollar dollar} `\thinspace|$$|$\,\alpha\,$^|\eqno|$\,\beta\,$|$$|\thinspace', and `\thinspace|$$|$\,\alpha\,$^|\leqno|$\,\beta\,$|$$|\thinspace' will cause -a macro |$$\generaldisplay$$| to be invoked, with |\eq| defined to be $\alpha$; +a macro |$$\generaldisplay$$| to be invoked, with |\eq| defined to be $\alpha$. ^^{communication between macros} -furthermore, the test |\ifeqno| should be true when an equation -number~$\beta$ is present, and |\ifleqno| should be true in the case -of\/ |\leqno|. When $\beta$ is present, it should be stored in~|\eqn|. +Furthermore, when an equation number~$\beta$ is present, it should be stored +in |\eqn|, and the test |\ifeqno| should be true. +In such cases |\ifleqno| should distinguish |\leqno| from |\eqno|. Here $\alpha$~and~$\beta$ are arbitrary balanced token lists that don't contain either |\eqno| or |\leqno| at nesting level zero. The following macros do the required maneuvers: @@ -21328,7 +21360,8 @@ to an almost-verbatim transcript: \endtt Tokens are stripped off in this construction since, for example, ^|\meaning||\next| might be `\def\next{$this$ is {\it!}}% -\expandafter|\meaning\next|'. Notice that a space will be inserted after +\hbox{\kern1pt\expandafter|\meaning\next|}'. +Notice that a space will be inserted after the control word |\it|, but no space might actually have occurred there in the argument to |\verbatim|; such information has been irretrievably lost. @@ -22469,7 +22502,7 @@ How should the output routine break such a box up into three roughly equal pieces? Notice that the contents of the box are completely rigid; i.e., there is no glue that can stretch or shrink. Furthermore, we can assume that the contents of the box are regular, i.e., that the -inter-baseline distances are all the same. In such circumstances +interbaseline distances are all the same. In such circumstances a fairly simple ^{balancing} routine can be used to trisect the box. Let's consider a more general problem: Suppose that a rigid vbox is given, @@ -22538,9 +22571,9 @@ In our application to footnotes, the |\output| routine can reformat the contents of\/ |\box\footins| by saying, for example, \begintt \rigidbalance\footins 3 7pt -\setbox\footins=\lastbox +\setbox2=\lastbox \setbox\footins=\vbox{\box2} \endtt -since ^|\lastbox| will be the result of\/ |\rigidbalance|. +since ^|\lastbox| will be the result of\/ |\rigidbalance|, which is an hbox. This solution to the problem of short footnotes might result in ^{club lines} or ^{widow lines}, since the balancing routine we have @@ -22994,7 +23027,7 @@ end of the ^|\body| and the beginning of a ^|\ps|. | {|^|\endgraf||\nobreak}}}| |\def\annotations{\beginlinemode\def\par{\endgraf\nobreak}\obeylines\par}| |\def\ps{\beginparmode\nobreak| -| \interlinepenalty5000\def\par{\endgraf\penalty5000}}| +| \interlinepenalty5000\def\par{\endgraf\penalty5000 }}| \endlines The remaining portion of |letterformat.tex| deals with ^{letterheads} and @@ -23371,7 +23404,7 @@ should be ascribed to Herb Caswell; if it has any blemishes, they should be ascribed to Don Knuth, who wrote the formatting macros that we are now about to discuss. -The computer file |manual.tex| that generated {\sl The \TeX book\/} begins +The computer file |texbook.tex| that generated {\sl The \TeX book\/} begins with a copyright notice, and then it says `|\input| |manmac|'. The auxiliary file ^|manmac.tex| contains the formatting macros, and it begins by loading 9-point, 8-point, and 6-point~fonts: @@ -23620,7 +23653,7 @@ The next macros are concerned with chapter formatting. Each chapter in the manuscript file starts out with the macro ^|\beginchapter|; it ends with ^|\endchapter| and two ^{quotations}, ^^{epigraphs} followed by ^|\eject|. For example, Chapter~15 was generated by \TeX\ commands -that look like this in the file |manual.tex|: +that look like this in the file |texbook.tex|: \beginlines |\beginchapter Chapter 15. How \TeX\ Makes\\Lines into Pages| \medskip @@ -23755,7 +23788,7 @@ using the macros |\pt|, |\<|, |\oct|, |\hex|, and |\cstok|. |\def\MF{{\manual META}\-{\manual FONT}}| |\def\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.075em| | S$-\TeX}| -|\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet| +|\def\bull{\vrule height.9ex width.8ex depth-.1ex \relax} % square bullet| |\def\SS{{\it SS}} % scriptscript style| |\def\dn{\leavevmode\hbox{\tt\char'14}} % downward arrow| |\def\up{|^|\leavevmode||\hbox{\tt\char'13}} % upward arrow| @@ -23931,7 +23964,7 @@ in the text as well as in the index. ^^{strut} ^|\newwrite||\inx| ^|\immediate|^|\openout||\inx=index % file for index reminders| |\def\marginstyle{\sevenrm % marginal notes are in 7-point type| -| \vrule height6pt depth2pt width0pt } % a strut for \insert\margin| +| \vrule height6pt depth2pt width0pt \relax} % a strut for \insert\margin| \endlines Sometimes it is desirable to index words that don't actually appear on the @@ -24127,7 +24160,7 @@ showing |cmr10| (^|\rm|, |\textfont0|). \noindent Plain \TeX\ makes use of sixteen basic fonts: $$\halign{\indent$\nulldelimiterspace=0pt \left.\ninepoint\vcenter{#}\,\hfil\right\}$ &#\hfil\cr -\halign{\strut\tt cm# \ \hfil&(Computer Modern #)\hfil&\hidebrace{#}\hfil\cr +\halign{\strut\tt cm# \ \hfil&(Computer Modern #)\hfil\cr r10&Roman 10 point\cr r7&Roman 7 point\cr r5&Roman 5 point\cr @@ -24136,7 +24169,7 @@ bx7&Bold Extended 7 point\cr bx5&Bold Extended 5 point\cr sl10&Slanted Roman 10 point\cr ti10&Text Italic 10 point\cr}&text\cr -\halign{\strut\tt cm# \ \hfil&(Computer Modern #)\hfil&\hidebrace{#}\hfil\cr +\halign{\strut\tt cm# \ \hfil&(Computer Modern #)\hfil\cr tt10&Typewriter Type 10 point\cr mi10&Math Italic 10 point\cr mi7&Math Italic 7 point\cr @@ -24659,7 +24692,7 @@ relation, as in `$x:=y$' and `$a:b::c:d$', which you type by saying \hbox to 115pt{$L(a,b;c\colon x,y;z)$\hfil}\enspace |$L(a,b;c\colon x,y;z)$|\cr \enddisplay -Plain \TeX\ also defines ^|\ldotp| and ^|\cdotp| to be `.' and `$\cdot$' +Plain \TeX\ also defines ^|\ldotp| and ^|\cdotp| to be `.'\ and `$\cdot$' with the spacing of commas and semicolons. These symbols don't occur directly in formulas, but they are useful in the definition of\/ ^|\ldots| and ^|\cdots|. @@ -25026,11 +25059,12 @@ so that the bottom of the hrule occurs at $a-{1\over2}\theta$ above the baseline. \rule 15e. Enclose the vbox that was constructed in Rule 15c or 15d by -delimiters whose height plus depth is at least $\sigma_{20}$, if $C>T$, and at +delimiters $(\lambda,\rho)$ +whose height plus depth is at least $\sigma_{20}$, if $C>T$, and at least $\sigma_{21}$ otherwise. Shift the delimiters up or down so that they are vertically centered with respect to the axis. Replace the generalized -fraction by an Inner atom whose nucleus is the resulting sequence of three boxes -(left delimiter, vbox, right delimiter). +fraction by an Ord atom whose nucleus is the resulting sequence of three boxes +($\lambda$, vbox, $\rho$). Go to rule~19. \bigbreak\noindent Rules 1--15 account for the preliminary processing of math list items; @@ -25122,7 +25156,8 @@ f,2\delta-l)$, where $f$ is the ^|\delimiterfactor| and $l$ is the ^|\delimitershortfall|. Shift the delimiters up or down so that they are vertically centered with respect to the axis. Change the left boundary item to an Open atom and the right boundary item to -a Close atom. \ (All of the calculations in this step are done with +a Close atom. The entire resulting list now becomes the nucleus of an +Inner atom. \ (All of the calculations in this step are done with $C$ equal to the starting style of the math list; style items in the middle of the list do not affect the style of the right boundary item.) @@ -25590,7 +25625,7 @@ until coming to something that's not one of the following three is nonzero; (2)~a ligature formed entirely from characters of type~(1); (3)~an implicit kern. The first inadmissible item terminates this part of the process; the trial word consists of all the letters found in admissible -items. Notice that all of these letters are in font~$f$. +items, up to a maximum of~63. Notice that all of these letters are in font~$f$. \ddanger If a trial word $l_1\ldots l_n$ has been found by this process, hyphenation will still be abandoned unless $n\ge\lambda+\rho$, where @@ -25675,7 +25710,7 @@ when according to legend, an RCA Marketing Manager received a phone call from a disturbed customer. His 301 had just hyphenated ``God.'' \author PAUL E. ^{JUSTUS}, {\sl There's More to Typesetting Than % Setting Type\/} (1972) -% in {\sl IEEE Transactions on Professional Commun. vol PC-15, pp. 13-15 +% in IEEE Transactions on Professional Commun. vol PC-15, pp. 13-15 \bigskip @@ -25777,7 +25812,7 @@ redefine them. |\'| (acute accent), @7--9, 52--53, @305, @335, +356, @420. |''| ( '' ), @3--5, @24, 394--395. |`| (reverse apostrophe or left quote), 3--5, 51, 132, 134, @305, 391, 394--395; - \also alphabetic constant. + \also alphabetic constants. |\`| (grave accent), 8, 52--53, @305, +356. |``| ( `` ), @3--5, @24, 394--395. |"| (double quote or ditto mark), 52, 53, 134; \also hexadecimal. @@ -25787,7 +25822,7 @@ redefine them. |)| (right parenthesis), 51, 134, @140, @145--150, 345. |[| (left bracket), 51, 134, @146--148, 171, @408, @437. |[]|, +28, @+79, @302. -|[1]|, 23, +119. +|[1]| (progress report), 23, +119. |]| (right bracket), 51, 134, @146--147, 171, 345, @408, @437. |{| (left brace), @13--14, @19--21, 38, 51, @200--202, +203--+204, @205--206, 216, +269, 275--276, +283, +286, +291, @330. @@ -25840,7 +25875,7 @@ $:=$, 133. |?`|\hbox{ }(open question), 51. |!|\hbox{ }(exclamation point), 51, @72, 73, 75, @169. |!`|\hbox{ }(open exclamation), 51. -|\!|\ (negative thin space), +167, @169, +357. +|\!|\ (negative thin space), 167, @169, +357. |_| (underscore), 38, 51, @128--130, 134. |\_| ( \_ ), 38, @165, +356. |^| (hat), 38, 51, @128--130, 134, 369, @423. @@ -25856,8 +25891,8 @@ $:=$, 133. |@@|, 98--99. |\@ne|, +345. \newletter -|\aa| ( \aa\ ), +356. -|\AA| ( \AA\ ), +356. +|\aa| ( \aa\ ), @52, +356. +|\AA| ( \AA\ ), @52, +356. abbreviations, @73--74, @340; \also macros. *|\above| (general fraction), @143, 152, +292, 444--445. *|\abovedisplayshortskip|, +189, 274, @348, @415. @@ -25890,7 +25925,7 @@ al-Khw\^arizm\^\i, abu `Abd All\^ah Mu\d{h}ammad ibn M\^us\^a, 53. |\aleph| ( $\aleph$ ), 9, +358, 435. Alice, 4, 387, 394. alignment displays, 190, 193, +291. -\<alignment material>, 282, 285. +\<alignment material>, 282, 285, 291. alignments, 231--249, +282, 302--303, 385--386, 392; \also tabbing. Alka-Seltzer, 404--405. all caps, \see |\uppercase|. @@ -26067,7 +26102,7 @@ Bourbaki, Nicolas, 106. |\bowtie| ( $\bowtie$ ), +358, 436. \<box>, 120, 222, +278, 282, 285, 290. *|\box| (use box register), 120--122, 151, 222, +278, 346, @354, @386, @387. -|\box255|, 125, 253--258. +\sub |\box255|, 125, 253--258. \<box dimension>, +271, 277. box displays, 66, 75, 79, 158--159, 302, 455. box memory, 300, 394. @@ -26135,7 +26170,7 @@ Caswell, Herbert Ernest, 413. @421, @424. category codes, 37--40, +47, 48, 203--205, 209--210, 214, 381. \sub table, 37. -|cc| (cicero), 57, 270. +|cc| (cicero), +57, 270. |\cdot| ( $\cdot$ ), @133, @172, 319, 436. |\cdotp|, 358, +359, 438. |\cdots| ( $\cdots$ ), @172, @176, @180--181, +359, 438. @@ -26178,12 +26213,12 @@ classes of math characters, table, 154. *|\cleaders|, +224, 225--226, @357, @374. |\cleartabs|, @234, +354. Close atom, 158, 170--171, 289, 443--444, 446. -*|\closein|, 217, 280. +*|\closein|, +217, 280. *|\closeout|, 226--228, 254, +280, @422. |\closing|, @403--404, +407. closings, 134, 147, 154--155, 359, +437; \also Close atom. club lines, 104, 272, 398. -*|\clubpenalty|, 104, 113, 272, 317, @348, @419. +*|\clubpenalty|, +104, 113, 272, 317, @348, @419. |\clubsuit| ( $\clubsuit$ ), 435. |cm| (centimeter), @24, +57, 270. |cmbx| fonts, 60, 350, 413, 428, 433. @@ -26356,6 +26391,7 @@ dimensions, 57--61. Dionysius I of Syracuse, 239. diphthongs, \see |\ae|, |\oe|. direct sum, \see |\oplus|. +\<disc text>, +287, 292. discardable items, 95, 110--112, 124, @393. *|\discretionary|, 95--96, 283, 286, +287, +292. discretionary hyphens, 28, 95--96, 453, +455. @@ -26370,7 +26406,7 @@ displays, 87, 103, @139--145, @166--167, 185--197, @232, @241, 315. \sub non-centered, 186, 326, 375--376, 420--421. \sub positioning of, +188--+190. *|\displaystyle|, 141--142, +292, @362. -*|\displaywidowpenalty|, 104, 272, @348. +*|\displaywidowpenalty|, +104, 105, 272, @348. *|\displaywidth|, 188, 190, 274, 349. Disraeli [Beaconsfield], Benjamin, earl, 219. ditto mark, 53, 441. @@ -26541,10 +26577,10 @@ fields of atoms, 158--159, 289--291. \<fil dimen>, +271. \<fil unit>, +271. |\filbreak|, 111, +353. -\<file name>, 214, 216, 226, 277, +278. file names, 25, 214, 216--217, 226, 278. file pages, 343. file types, \see |.dvi|, |.fmt|, |.tfm|, |.tex|, log file, terminal. +\<filename>, 214, 216, 226, 277, +278. |fill|, 72, 118--119, +271, @347. fill page with blank space, \see |\vfill|. \<filler>, +276, 278, 280--282, 289. @@ -26613,7 +26649,7 @@ Gamble, James, 38. |\gcd| ( $\gcd$ ), 162, @192, 361. *|\gdef|, +206, 215, 275, @352, @407. |\ge| ( $\ge$ ), 9, 45, @175, 318, +361, 438. -\<general text>, +276, 277, 279, 280, 287, 292. +\<general text>, +276, 279, 280. generalized fraction, 152, 157, +292, +444--+445. generic coding, 194, 203. generic matrix, 177, 245. @@ -26715,7 +26751,7 @@ horizontal braces, @176, 225--226, @339. \<horizontal command>, +283. horizontal lists, 64, +94--+95. horizontal mode, 85--89, 105, +285--+287. -\<horizontal mode material>, 278. +\<horizontal mode material>, 278, 285, 287. \<horizontal rule>, 281. horizontal rules, 24, 64, 221--226, 246, +282. \<horizontal skip>, 285, 290. @@ -26793,7 +26829,7 @@ infinite penalty, 97, 111, 254--256, 264, 286, 400. |\infty| ( $\infty$ ), 9, 318, 435. inhibiting expansion, 216, 262--263, 377. |INITEX|, 39, 41, 76, 157, 283, 336, 343--345, 453. -Inner atom, 158, 170, 289, 443, 445--446. +Inner atom, 158, 170, 289, 292, 443, 446. *|\input|, 7, 9, @25--27, 47, 199, +214, 217, @380, 382--383, @403, @422. input/output commands, \see |\input|, |\read|, |\write|, |\message|, |\dump|. input/output streams, 346, \see |\openin|, |\openout|. @@ -26803,11 +26839,11 @@ input stack, 300, 374. inserting text online, 31. insertions, 110, 115--117, 122--125, 256, 335. *|\insertpenalties|, 111, 114, +123--+125, 214, 254, @256, 271. -|\int| (large $\smallint$), 144, @168--169, @192, 358, 435. +|\int| (large $\smallint$), 144, @168--169, @192, +358, 435. \<integer constant>, +269--+270. \<integer parameter>, 271, +272--+273, 276. \<integer variable>, +276. -integral signs, \see |\int|, |\smallint|. +integral signs, \see |\int|, |\oint|, |\smallint|. \sub multiple, @169, @180. inter-column spacing, 237--239, 247, 392. interacting with \TeX, 31--34, 217--218, 228, 295--299. @@ -26815,7 +26851,7 @@ interacting with \TeX, 31--34, 217--218, 228, 295--299. |\interdisplaylinepenalty|, @193, 349, 362. |\interfootnotelinepenalty|, 349, 363. interline glue, 78--79, +80, 104, 105, 125, 221, 245, 263, 281--282, 335, 352, 399, 409. -*|\interlinepenalty|, +104, 272, @363, @406, @419. +*|\interlinepenalty|, +104, 105, 272, @363, @406, @419. internal box-and-glue representation, 66, 75, 79, 158--159, 302, 455. internal character codes, 43--46, 367--370. \<internal dimen>, +271. @@ -26901,7 +26937,7 @@ leaders, 222, 223--226, 228, 280--282, 285, 290, @357, @392--394. leading, \see |\baselineskip|, |\vskip|. |\leavevmode|, 313, @333, @+356, @408, @420. Lee, Marshall, 17. -*|\left|, @148--150, 155--157, @171, 196, +292, 437. +*|\left|, @148--150, 155--157, 170, @171, 196, +292, 437. left brace, @13--14, @19--21, 38, 51, @200--202, +203--+204, @205--206, 216, +269, 275--276, +283, +286, +291, @330. \<left brace>, +275. @@ -26909,7 +26945,7 @@ left bracket, 51, 134, @146--148, 171, @408, @437. left delimiters, \see openings. left-hand pages, 252--253, @416. left parenthesis, 51, 134, @140, @145--150, 345. -left quote, 3--5, 132, 134, @305, 394--395; \also alphabetic constant. +left quote, 3--5, 132, 134, @305, 394--395; \also alphabetic constants. |\leftarrow| ( $\leftarrow$ ), 226, 437. |\Leftarrow| ( $\Leftarrow$ ), 226, 437. |\leftarrowfill| (\hbox to4em{\leftarrowfill}), +357. @@ -26921,7 +26957,7 @@ left quote, 3--5, 132, 134, @305, 394--395; \also alphabetic constant. |\Leftrightarrow| ( $\Leftrightarrow$ ), 437. *|\leftskip|, 100, 274, @317, @407, @419. Legendre symbol, 152. -Leontief, Wassily Wassily, 265. +Leontief, Wassily Wassily, 265. % acc to his postcard to me, 25 Feb 1983 |\leq| ( $\leq$ ), 318, +358, 436. |\leqalignno|, 192, 194, +362. *|\leqno|, @187, 189, +293, 375--376. @@ -27037,6 +27073,7 @@ math formulas, how to type, 127--197. math italic, 164--165, 409, 430, 433. math lists, 157--159, 441--446. math mode, 85--89, 127, 157, +289--+293. +\<math mode material>, 287, 289--293. math spacing table, 170--171. \<math symbol>, +289. math symbols, 127--128. @@ -27198,8 +27235,8 @@ Norwegian characters, 45--46, 52--53, 370. $n$th, 323. |\nu| ( $\nu$ ), @128, @163, 434. nucleus, 158--159, 289--292, 441--446. -|\null|, 311, @332, +351. \<null> (ASCII code 0), 37, 39, 48, 343, 369. +|\null|, 311, @312, @316, @332, @335, +351, @354, @360--@362, @419. null control sequence, 46, 308. null delimiter, 149--150, 152, 156, 345, @360, @362. null set, \see |\emptyset|. @@ -27216,8 +27253,8 @@ numerical tables, 240--241. |\nwarrow| ( $\nwarrow$ ), 437. \newletter |O| versus |0|, 132. -|\o| ( \o\ ), +356. -|\O| ( \O\ ), +356. +|\o| ( \o\ ), @52, +356. +|\O| ( \O\ ), @52, +356. |\oalign|, +356. obelisk {\sl or\/} obelus, 53. |\obeylines|, @94, @249, @262, 342, +352, @380--382, @407, @419. @@ -27278,7 +27315,7 @@ other character, 37. output routines, 21, 112, 251--264, 417. \sub when invoked, 122, 125, 281. *|\outputpenalty|, +125, @254--255, 273, 349, 400, @417. -*|\over|, @139--141, @148, 152, 292, 437, 444--445. +*|\over|, @139--141, @148, 152, +292, 437, 444--445. Over atom, 158, 289, 443. |\overbrace|, @176, 225, +359. overfull boxes, 27--30, 94, 229, 238, 302--303, 307, 400. @@ -27289,7 +27326,7 @@ overlaps, 82--83, 386. *|\overline|, @130--131, @136, 141, 170, 291, 443. overloading, 54, 243. |\overrightarrow|, 226, +359. -*|\overwithdelims|, @152, 292, 444--445. +*|\overwithdelims|, @152, +292, 444--445. |\owns| ( $\owns$ ), +361, 438. \newletter |\P| ( \P\ ), 53, 117, +356, 438--439. @@ -27332,7 +27369,7 @@ parentheses, 51, 129, 134, @140, @145--150, 345, 437. *|\parfillskip|, 100, 188, 274, +286, 307, @315, 332, @348, @394, @419. *|\parindent|, 86, 100, 101--102, 105, @262, 274, 282, 286, 291, @342, @348, @355, @394, @406, @415. -*|\parshape|, 101--102, 214, 271, 272, 277, 283, @315, 349, 374. +*|\parshape|, 101--103, 214, 271, 272, 277, 283, @315, 349, 374. *|\parskip|, 79, 104--105, 262, 274, 282, @342, @348, @355, @406, @417. |\partial| ( $\partial$ ), @147, 435. Pascal, Blaise, 101--102. @@ -27416,7 +27453,7 @@ private control sequences, 344, 364, 414. Procter, William Alexander, 38. |\prod| (large $\Pi$), @180--181, 435. programming with \TeX, 217--219, 387--388. -programs, for computers, 38, 165, 234. +programs, for computers, 38, 165, @234. \sub for music, 408--412. proofreading, 59, 303. proper names, 73, 92. @@ -27483,6 +27520,8 @@ relations, @133--134, 147, 154--155, 358, +436, +437; \also Rel atom. |\removelastskip|, +353. |\repeat|, @217--219, +352. repeating commands, \see |\loop|. +repeating templates, \see periodic preambles. +replacement text, @200--@204, 212, 280, 300, 329. reserved characters, 37--38, 51--52, 134. reserved words, +61, 71, +268, 337, 370. restricted horizontal mode, 85, 87--89, +285--+287. @@ -27490,19 +27529,19 @@ r\'esum\'e, 253. \<return> (ASCII code 13), 23, 39, 43, 45, 46, 48, 249, 331, 343, 345, 369, 380. |\|\<return>, 8, @305, +351. reverse apostrophe, 3--5, 51, 132, 134, 391, 394--395; - \also alphabetic constant. + \also alphabetic constants. reverse slash, \see backslash. Reviewer, Ann Arbor, 106. |\rfloor| ( $\rfloor$ ), @146--147, +359, 437. |\rgroup|, 150, @176, +359, 437. |\rho| ( $\rho$ ), 128, @325, 434. |\rhook|, +358. -*|\right|, @148--150, 155--157, @171, 196, +292, 437. +*|\right|, @148--150, 155--157, @170--@171, 196, +292, 437. right brace, @13--14, @19--21, 38, 51, @200--202, +203--+204, @205--206, +269, 275--276, +279, 301, @330. \<right brace>, +275. right bracket, 51, 134, @146--147, 171, 345, @408, @437. -right delimiters, \see openings. +right delimiters, \see closings. right-hand pages, 252--253, @416. right justification, 71. right parenthesis, 51, 134, @140, @145--150, 345. @@ -27713,7 +27752,7 @@ stretchability, 69--71, @75, 409. |\strut|, 82, @142, 178, 240, @246--247, @316, @329, @333, +353, @396, @400, @421. |\strutbox|, @316, +353, @396, @414--415. -struts, +82, 125, 131, 142, 178, 245--247, 255, 329, 416, 422, 423. +struts, +82, 125, 131, 142, 155, 178, 245--247, 255, 329, 416, 422, 423. style change items, 157, 442. style-independent documents, 194, 203. styles of math formatting, 140--141, 441--447. @@ -27955,7 +27994,7 @@ variables in formulas, 132, 358, 434--435; \also Ord atom. vbox (box with vertical list inside), 65. *|\vbox|, 65, 80--82, 103, 151, 193, 222, 278, 388--389. Vcent atom, 158, 290, 443. -*|\vcenter|, 150--151, 159, 170, 193, 222, 242, +290, @361, +443. +*|\vcenter|, 150--151, 159, 170, 193, 222, 242, +290, @326, @361, +443. |\vdash| ( $\vdash$ ), 436. |\vdots| ( $\vdots$ ), @177, +359. |\vec| (math accent: $\vec x\,$), 135; \also |\overrightarrow|. @@ -27970,7 +28009,7 @@ vertical line (the character `\|'), 52, 53, 132, @146--147, @171, @174, 438; \also vertical rules. vertical lists, 64, +110. vertical mode, 85--89, +267--+283. -\<vertical mode material>, 278. +\<vertical mode material>, 278, 280--282, 290. \<vertical rule>, +281. vertical rules, 64, 151, 221--226, +285, +291, 392. \<vertical skip>, +281. @@ -28013,7 +28052,7 @@ whatsits, 95, 110, 157, 226--229, 455. |\widetilde| (math accent: $\widetilde x\,$), @136, +359. widow lines, 104, 272, 398. widow words, 104. -*|\widowpenalty|, 104, 113, 272, @348. +*|\widowpenalty|, +104, 105, 113, 272, @348. |width|, 221, 224, +282, 337. width of a box, 63--67, 77, 80--82, 225. wiggle, \see |\sim|. |