diff options
Diffstat (limited to 'Master/texmf-dist/source/generic/knuth/errata/errata.five')
-rw-r--r-- | Master/texmf-dist/source/generic/knuth/errata/errata.five | 1108 |
1 files changed, 0 insertions, 1108 deletions
diff --git a/Master/texmf-dist/source/generic/knuth/errata/errata.five b/Master/texmf-dist/source/generic/knuth/errata/errata.five deleted file mode 100644 index 4e2982f109a..00000000000 --- a/Master/texmf-dist/source/generic/knuth/errata/errata.five +++ /dev/null @@ -1,1108 +0,0 @@ -% Bugs (sigh) in Computers \& Typesetting - -\input manmac -\font\sltt=cmsltt10 -\font\niness=cmss9 -\font\ninessi=cmssi9 -\proofmodefalse -\raggedbottom -\output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}} - -\def\today{\number\day\ - \ifcase\month\or - Jan\or Feb\or Mar\or Apr\or May\or Jun\or - Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi - \ \number\year} - -\def\cutpar{{\parfillskip=0pt\par}} - -\def\rhead{Bugs in {\tensl Computers \& Typesetting, 1989}} -\def\bugonpage#1(#2) \par{\bigbreak\tenpoint - \hrule width\hsize - \line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule width\hsize - \nobreak\medskip} -\def\buginvol#1(#2) \par{\bigbreak\penalty-1000\tenpoint - \hrule width\hsize - \line{\lower3.5pt\vbox to13pt{}Volume #1\hfil(#2)}\hrule width\hsize - \nobreak\medskip} -\def\slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo -\def\0{\raise.7ex\hbox{$\scriptstyle\#$}} -\newcount\nn -\newdimen\nsize \newdimen\msize \newdimen\ninept \ninept=9pt -\newbox\eqbox \setbox\eqbox=\hbox{\kern2pt\eightrm=\kern2pt} - -\tenpoint -\noindent This is a list of all corrections made to {\sl Computers \& -Typesetting}, Volumes \hbox{A--E}, between 20 February 1989 and -30 September 1989 (when \TeX\ Version 3.0 and \MF\ Version 2.0 were -fully defined). Corrections made to -the softcover version of {\sl The \TeX book\/} are the same as corrections to -Volume~A\null. Corrections to the softcover version of {\sl The -\slMF\kern1ptbook\/} are the same as corrections to Volume~C\null. -Some of these corrections have already been made in reprintings -of the books. Several minor changes -to Volumes A~and~C are not shown here because they simply -make room for the more substantive changes needed to describe the new -features of \TeX\ Version 3.0 and \MF\ Version 2.0. Hundreds of -changes will soon be made to Volumes B~and~D because of the upgrades -to \TeX\ and \MF\/; it will unfortunately be impossible to document all of those -changes. Therefore, readers who need up-to-date information on the \TeX\ and -\MF\ programs should refer to the |WEB| source files until new -printings of Volumes B~and~D are issued. - -% volume A - -\buginvol A, in general (9/23/89) - -\ninepoint\noindent -[Change `127' to `255' and `128' to `256' in contexts referring to character -codes. This happens on pages 37(twice), 39, 41, 43, 44(twice), 48, 93, 154, -277, 305(twice), 308(twice), 313, and 343. Also change `7-bit' to `8-bit' on -pages 214 and 277.] - -\bugonpage A23, line 16 (9/23/89) - -|This is TeX, Version 3.0 (preloaded format=plain 89.7.15)| - -\bugonpage A34, new copy for bottom of page (9/23/89) - -\ddanger If you use \TeX\ format packages designed by others, your -error messages may involve many inscrutable two-line levels of macro -context. By setting ^|\errorcontextlines||=0| at the beginning of your file, -you can reduce the amount of information that is reported; -\TeX\ will show only the top and bottom pairs of context lines -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 -give you an undefined control sequence error and plenty of context.) \ -Plain \TeX\ sets |\errorcontextlines=5|. - -\bugonpage A45, lines 9--15 (9/23/89) - -\ninepoint\noindent -|^^| has an internal code between 64 and 127, \TeX\ -subtracts 64 from the code; if the code is between 0 and 63, \TeX\ -adds~64. Hence code 127 can be typed |^^?|, and -the dangerous bend sign can be obtained by saying -|{\manual^^?}|. However, you must change the category code of character -127 before using it, since this character ordinarily has category~15 -(^{invalid}); say, e.g., |\catcode`\^^?=12|. -^^{double hat} ^^{hat hat} -The |^^| notation is different from |\char|, because |^^| combinations are -like single characters; for example, it would not be permissible to say -|\catcode`\char127|, but |^^| symbols can even be used as letters within -control words. - -\bugonpage A45, new copy before line 20 (9/23/89) - -\danger There's also a special convention in which |^^| is -followed by {\sl two\/} ``lowercase hexadecimal digits,'' |0|--|9| or |a|--|f|. -With this convention, all 256 characters are obtainable in a uniform -way, from |^^00| to |^^ff|. Character 127 is |^^7f|. - -\noindent -[Also remove one of the two dangerous bend signs on line 20.] - -\bugonpage A45, bottom paragraph and footnote (9/23/89) - -\ddanger People who install \TeX\ systems for use with non-American alphabets -can make \TeX\ conform to any desired standard. For example, suppose -you have a ^{Norwegian keyboard} containing the letter {\tt\ae}, which -^^{Scandinavian letters} ^^{foreign languages} -comes in as code~241 (say). Your local format package should define -|\catcode`|{\tt\ae}|=11|; then you could have control sequences like -|\s|{\tt\ae}|rtrykk|. Your \TeX\ input files could be made readable by -American installations of \TeX\ that don't have your keyboard, by -substituting |^^f1| for character~241. \ (For example, the stated control -sequence would appear as |\s^^f1rtrykk| in the file; your American -friends should also be provided with the format that you used, with its -|\catcode`^^f1=11|.) \ Of course you should also arrange your fonts -so that \TeX's character 241 will print as {\ae}; and you should -change \TeX's hyphenation algorithm so that it will do correct -Norwegian hyphenation. The main point is that such changes are not -extremely difficult; nothing in the design of \TeX\ limits it to the -American alphabet. Fine printing is obtained by fine tuning to the -language or languages being used. -^^{keyboards, non-ASCII} - -\ddanger European languages can also be accommodated effectively with -only a limited character set. -For example, let's consider Norwegian again, but suppose that\parfillskip=0pt - -\noindent [Now continue with the text on line 11 of page 46.] - -\bugonpage A47, lines 9--21 (9/23/89) - -\ddanger If \TeX\ sees a superscript character (category 7) in any state, -and if that character is followed by another identical character, and if -those two equal characters are followed by a character of code -$c<128$, then they -are deleted and 64 is added~to or subtracted from the code~$c$. -\ (Thus, |^^A| is -replaced by a single character whose code is~1, etc., as explained earlier.) \ -However, if the two superscript characters are immediately followed by two -of the lowercase hexadecimal digits |0123456789abcdef|, the -four-character sequence is replaced by a single character having the -specified hexadecimal code. -The replacement is carried out also if such a trio or quartet of -characters is encountered during steps (b) or~(c) of the control-sequence-name -scanning procedure described above. After the replacement is made, \TeX\ -begins again as if the new character had been present all the time. -If a superscript character is not the first of such a trio or quartet, it is -handled by the following rule. - -\ddanger If \TeX\ sees a character of categories 1, 2, 3, 4, 6, 8, 11, 12, -or~13, -or a character of category~7 that is not the first of a special -sequence as just -described, it converts the character to a token by attaching the category -code, and goes into state~$M$. This is the normal case; almost every -nonblank character is handled by this rule. - -\bugonpage A48, line 15 (9/23/89) - -\ninepoint\noindent -the input line -`| $x^2$~ \TeX ^^62^^6|'\thinspace? - -\bugonpage A54, third line from the bottom (9/23/89) - -\ninepoint\noindent -For example, a well-designed \TeX\ font for ^{French} -might well treat accents as lig-\cutpar - -\bugonpage A76, lines 3--5 from the bottom (9/23/89) - -\ninepoint\noindent -\TeX\ does not assign any value to -|\sfcode'042|. - -\bugonpage A107, new copy for top of page (9/23/89) - -\ddanger If you want to avoid overfull boxes at all costs without -trying to fix them manually, you might be tempted to set -|tolerance=10000|; this allows arbitrarily bad lines to be acceptable -in tough situations. But infinite tolerance is a bad idea, because -\TeX\ doesn't distinguish between terribly bad and preposterously -horrible lines. Indeed, a tolerance of 10000 encourages \TeX\ to -concentrate all the badness in one place, making one truly unsightly -line instead of two moderately bad ones, because a single -``write-off'' produces fewest total demerits according to the rules. -There's a much better way to get the desired effect: \TeX\ has a -parameter called ^|\emergencystretch| that is added to the assumed -stretchability of every line when badness and demerits are computed, -in cases where overfull boxes are otherwise unavoidable. If -|\emergencystretch| is positive, \TeX\ will make a third pass over a -paragraph before choosing the line breaks, when the first passes did -not find a way to satisfy the ^|\pretolerance| and ^|\tolerance|. -The effect of\/ |\emergencystretch| is to scale down the badnesses so -that large infinities are distinguishable from smaller ones. By -setting |\emergencystretch| high enough (based on |\hsize|) you can be -sure that the |\tolerance| is never exceeded; hence overfull boxes -will never occur unless the line-breaking task is truly impossible. - -\bugonpage A116, lines 11--15 (6/7/89) - -\danger If you have two or more |\topinsert| or |\pageinsert| commands in -quick succession, \TeX\ may need to carry them over to several subsequent -pages; but they will retain their relative order when they are -carried over. For example, suppose you have pages that are nine inches -tall, and suppose you have already specified 4~inches of text for some -page, say page~25. Then suppose you make seven topinserts in a row, of% -{\parfillskip=0pt\endgraf}\endgroup - -\bugonpage A125, lines 13--29 (9/23/89) - -\ddanger \looseness=-1 -When the best page break is finally chosen, \TeX\ removes everything after -the chosen breakpoint from the bottom of the ``current page,'' and puts it -all back at the top of the ``recent contributions.'' The -chosen breakpoint itself is placed at the very top of the recent contributions. -If it is a penalty item, the value of the penalty is recorded in -^|\outputpenalty| and the penalty in the contribution list is changed -to $10000$; otherwise |\outputpenalty| is set to 10000. -The insertions that remain on the current page are of three kinds: For -each class~$n$ there are unsplit insertions, followed possibly by -a single split insertion, followed possibly by others. If -^|\holdinginserts|$\null>0$, all insertions remain in place (so that -they might be contributed again); otherwise they are all removed from -the current page list as follows: The unsplit insertions -are appended to |\box|$\,n$, with no interline glue between them. \ -(^{Struts} should be used, as in the |\vfootnote| macro of -Appendix~B\null.) \ -If a split insertion is present, it is effectively |\vsplit| to the size -that was computed previously in Step~4; the top part is treated as an -unsplit insertion, and the remainder (if any) is converted to an insertion -as if it had not been split. This remainder, followed by any other floating -insertions of the same class, is held -over in a separate place. \ (They will show up on the ``current page'' if -^|\showlists| is used while an ^|\output| routine is active; the total -number of such insertions appears in ^|\insertpenalties| during an -|\output| routine.) %\ -Finally, the remaining items before the best break on the current page are put -together in a |\vbox|\parfillskip=0pt - -\bugonpage A131, line 12 (9/22/89) - -\ninepoint\noindent -work fine; but sometimes you want to have uniformity -between different members of a\cutpar - -\bugonpage A155, lines 3--5 (9/23/89) - -\ninepoint\noindent -when it encounters a character that -is given explicitly as ^|\char|\<number>. - -\bugonpage A214, lines 19--24 (9/23/89) - -\ninepoint -\textindent\bull |\the|\<special register>, where \<special register> is -one of the integer quantities ^|\prevgraf|, ^|\deadcycles|, ^|\insertpenalties|, -^|\inputlineno|, ^|\badness|, -or ^|\parshape| (denoting only the number of lines of\/ |\parshape|); or -one of the dimensions ^|\pagetotal|, ^|\pagegoal|, ^|\pagestretch|, -^|\pagefilstretch|, ^|\pagefillstretch|, ^|\pagefilllstretch|, ^|\pageshrink|, -^|\pagedepth|. In horizontal modes you can also refer to a special integer, -|\the\spacefactor|; in vertical modes there's a special dimension, -|\the\prevdepth|. - -\bugonpage A229, new copy after line 11 (9/23/89) - -\ddanger \TeX\ will report the badness of glue setting in a box if -you ask for the numeric quantity -^|\badness| after making a box. For example, you might say -\begintt -\setbox0=\line{\trialtexta} -\ifnum\badness>250 \setbox0=\line{\trialtextb}\fi -\endtt -The badness is between 0 and 10000 -unless the box is overfull, when |\badness=1000000|. - -\bugonpage A271, lines 17--20 (9/23/89) - -\ninepoint -\beginsyntax - \alt<countdef token>\alt^|\count|<8-bit number>\alt<codename><8-bit number> - \alt<chardef token>\alt<mathchardef token>\alt^|\parshape|\alt^|\inputlineno| - \alt^|\hyphenchar|<font>\alt^|\skewchar|<font>\alt^|\badness| -\endsyntax - -\bugonpage A272, lines 3--4 (9/23/89) - -\ninepoint\noindent -value is between 0~and $2^8-1=255$; a ^\<4-bit number> is similar. - -\bugonpage A273, insert after lines 11, 20, 21, 21, 38 (9/23/89) - -\ninepoint -\begindisplay -|\holdinginserts|\quad(positive if insertions remain dormant in output box)\cr -|\language|\quad(the current set of hyphenation rules)\cr -|\lefthyphenmin|\quad(smallest fragment at beginning of hyphenated word)\cr -|\righthyphenmin|\quad(smallest fragment at end of hyphenated word)\cr -|\errorcontextlines|\quad(maximum extra context shown when errors occur)\cr -\enddisplay - -\bugonpage A274, insert after line 4 (9/23/89) - -\ninepoint\indent -|\emergencystretch|\quad(reduces badnesses on final pass of line-breaking) - -\bugonpage A275, line 13 (9/23/89) - -\ninepoint\noindent -That makes a total of 103 parameters of all five kinds. - -\bugonpage A283, line 14 (9/23/89) - -\ninepoint -\beginsyntax - \alt^|\noboundary|\alt^|\unhbox|\alt^|\unhcopy|\alt^|\valign|\alt^|\vrule| -\endsyntax - -\bugonpage A286, lines 3--12 from the bottom (9/23/89) - -\ninepoint -\textindent{$\bull$}% -\<letter>, \<otherchar>, \kern-1pt^|\char|\<8-bit number>, \<chardef token>, -\kern-1pt^|\noboundary|.\enskip -The most common commands of all are the character commands that tell -\TeX\ to append a character to the current horizontal -list, using the current font. -If two or more commands of this type occur in succession, \TeX\ processes -them all as a unit, converting to ligatures and/or -inserting kerns as directed by the font information. \ (Ligatures and -kerns may be influenced by invisible ``boundary'' characters at the left -and right, unless |\noboundary| appears.) \ Each character -command adjusts ^|\spacefactor|, using -the ^|\sfcode| table as described in Chapter~12. -In unrestricted horizontal mode, a -`|\discretionary{}{}{}|' item is appended after a character whose code is -the ^|\hyphenchar| of its font, or after a ligature formed from a sequence -that ends with such a character. - -\bugonpage A287, insert after line 19 (9/23/89) - -\ninepoint -\textindent{$\bull$}% -|\setlanguage|\<number>.\enskip See the conclusion of Appendix H. - -\bugonpage A289, lines 9--14 from the bottom (9/23/89) - -\ninepoint\noindent -$2^{15}-1$. This is done by replacing the character number by its -^|\mathcode| value. If the -|\mathcode| value turns out to be $32768=\null$\hex{8000}, however, - the \<character> -is replaced by an ^{active character} token having the original character -code (0 to~255); \TeX\ forgets the original \<character> and expands this -active character according to the rules of Chapter~20. - -\bugonpage A290, insert before 13th line from bottom (9/23/89) - -\ninepoint -\textindent{$\bull$}% -|\noboundary|. This command is redundant and therefore has no -effect; boundary ligatures are automatically disabled in math modes. - -\bugonpage A296, line 16 from the bottom (9/22/89) - -\noindent[There should be a `|^|' just above the `|3|' in the line below. -This was mistakenly dropped by the printer some time during 1985; it was -correct in the first two printings and it has always been correct inside the -computer!] - -\bugonpage A309, lines 3--5 (9/23/89) - -\ninepoint\noindent -\hbox to\parindent{\bf\hss8.4.\enspace}\ignorespaces -|$|$_{3}$ |x|$_{11}$ |^|$_7$ |2|$_{12}$ |$|$_{3}$ |~|$_{13}$ \]$_{10}$ -\cstok{TeX} |b|$_{12}$ |v|$_{12}$ \]$_{10}$. The final space comes from the -\<return> placed at the end of the line. Code |^^6| yields |v| only -when not followed by |0|--|9| or |a|--|f|. -The initial space is ignored, because state~$N$ -governs the beginning of the line. - -\bugonpage A314, line 27 (9/23/89) - -\ninepoint\noindent -The English word `eighteen' might deserve similar treatment. -\TeX's hyphenation algorithm will not make such spelling changes automatically. - -\bugonpage A318, line 19 (3/3/89) - -\ninepoint -|\def\clearnotenumber{\notenumber=0\relax}| - -\bugonpage A330, line 3 (8/25/89) - -\ninepoint\noindent -\hbox to\parindent{\bf\hss20.10.\enspace}\ignorespaces -|\def\overpaid{{\count0=\balance| - -\bugonpage A336, lines 4--8 from the bottom (9/23/89) - -\ninepoint\noindent -badness rating of a -box is at most 10000, except that the |\badness| of -an overfull box is 1000000. |INITEX| initializes |\tolerance| to -10000, thereby making all line breaks feasible. Penalties of 10000 or more -prohibit breaks; penalties of $-10000$ or less make breaks mandatory. The -cost of a page break is 100000, if the badness is 10000 and if the -associated penalties are less than 10000 in magnitude (see Chapter~15). - -\bugonpage A337, lines 2--16 (9/23/89) - -\ninepoint\noindent -ifies characters whose codes differ by~64 -from the codes of |?|, |@|, |A|; this convention applies only to -characters with ASCII codes less than~128. There are 256 possible characters, -hence 256 entries in each of the |\catcode|, |\mathcode|, -|\lccode|, |\uccode|, |\sfcode|, and |\delcode| tables. All -|\lccode|, |\uccode|, and |\char| values -must be less than~256. A font has at most 256 characters. There are -256~|\box| registers, 256~|\count| registers, 256~|\dimen| registers, -256~|\skip| registers, 256~|\muskip| registers, 256~|\toks| registers, -256~hyphenation tables. -The ``at size'' of a font must be less than~$2048\pt$, i.e.,~$2^{11}\pt$. -Math delimiters are encoded by multiplying the math~code of the ``small -character'' by~$2^{12}$. The magnitude of -a~\<dimen> value must be less than~$16384\pt$, i.e.,~$2^{14}\pt$; -similarly, the \<factor> in a~\<fil dimen> must be less than~$2^{14}$. -A~|\mathchar| or |\spacefactor| or |\sfcode| value must be less than~$2^{15}$; -a~|\mathcode| or |\mag| value must be less than or equal to~$2^{15}$, -and $2^{15}$ denotes an ``active'' math character. There -are $2^{16}\rm\,sp$ per~pt. A~|\delcode| value -must be less than~$2^{24}$; a~|\delimiter|, less than $2^{27}$. -The |\end| command sometimes contributes -a penalty of $-2^{30}$ to the current page. A~\<dimen> must be less than -$2^{30}\rm\,sp$ in absolute value; a~\<number> must be -less than $2^{31}$ in absolute value. - -\bugonpage A348, line 12 from the bottom (9/23/89) - -\ninepoint\noindent -^|\showboxbreadth||=5 |^|\showboxdepth||=3 |^|\errorcontextlines||=5| - -\bugonpage A364, insert before line 18 from the bottom (9/23/89) - -\ninepoint\noindent -^|\lefthyphenmin||=2 |^|\righthyphenmin||=3 % disallow x- or -xx breaks| - -\bugonpage A364, line 5 from the bottom (9/23/89) - -\ninepoint\noindent -|\def|^|\fmtname||{plain}\def\fmtversion{3.0} % identifies the current format| - -\bugonpage A369, insert before line 5 from the bottom (9/23/89) - -\ninepoint -Modern keyboards allow 256 codes to be input, not just 128; so \TeX\ -represents characters internally as numbers in the range 0--255 (i.e., -\oct{000}--\oct{377}, or \hex{00}--\hex{FF}). Implementations of \TeX\ -differ in which characters they will accept in input files and which -they will transmit to output files; these subsets can be specified -independently. A completely permissive version of \TeX\ allows full -256-character input and output; other versions might ignore all -but the visible characters of ASCII; still other versions might -distinguish the tab character (code \oct{011}) from a space on input, -but might output each tab as a sequence of three characters |^^I|. - -\bugonpage A370, lines 3--7 (9/23/89) - -\ninepoint\noindent -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 -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. -\ (c)~Cooperate with everyone else who shares -the same constraints, so that you all adopt the same policy. -\ (See Appendix~J for information about the \TeX\ Users Group.) - -\bugonpage A370, bottom line (9/23/89) - -\ninepoint\noindent -doesn't matter if these symbols have their plain -\TeX\ meanings or not. \ (6)~There is a special convention for -representing characters 0--255 in the hexadecimal forms -|^^00|--|^^ff|, explained in Chapter~8. This convention is always -acceptable as input, when |^| is any character of catcode~7. Text -output is produced with this convention only when representing -characters of code $\ge128$ that a \TeX\ installer has chosen not to -output directly. - -\bugonpage A385, line 8 (5/14/89) - -\ninepoint -|\def\beginbox{\setbox0=\hbox\bgroup}| - -\bugonpage A400, line 18 from the bottom (9/23/89) - -\ninepoint\noindent -page prematurely if you want to pass a signal. \ (Set -^|\holdinginserts| positive to pass a signal when the contents of\/ -|\box255| will be sent back through the page builder again, if any -insertions are present.) - -\bugonpage A419, lines 4--6 (9/23/89) - -\ninepoint\noindent -shortened or lengthened anyway; -book preparation with \TeX, as with type, encourages interaction between -humans and machines.) \ -The lines of the quotations are set ^{flush right} by using -^|\obeylines| together with a stretchable ^|\leftskip|: - -\bugonpage A444, lines 21--26 (9/23/89) - -\ninepoint\noindent -following one, using the specified family and the current size, then -insert the ligature character and continue as specified by the font; -two characters may collapse into one, or a new character may appear. -Otherwise if the font information -shows a kern between the current symbol and the next, insert a kern item -after the current Ord atom and move to the next item after that. -Otherwise (i.e., if no ligature or kern is specified between the present -text symbol and the following character), go to Rule~17. - -\bugonpage A453, lines 12--14 from the bottom (9/23/89) - -\begingroup -\hyphenpenalty=-1000 \pretolerance=-1 \tolerance=1000 -\doublehyphendemerits=-100000 \finalhyphendemerits=-100000 -\ninepoint\noindent -Exception: The character -`|.|'~is treated as if it were a \<letter> of code~0 -when it appears in a pattern. Code~0 (which obviously cannot match a nonzero -|\lccode|) is used by \TeX\ to represent the -left or right edge of a word when it is being hyphenated. - -\endgroup - -\bugonpage A454, lines 7--15 from the bottom (9/23/89) - -\begingroup -\hyphenpenalty=-1000 \pretolerance=-1 \tolerance=1000 -\doublehyphendemerits=-100000 \finalhyphendemerits=-100000 -\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 -$\lambda=\max(1,\hbox{|\lefthyphenmin|})$ and -$\rho=\max(1,\hbox{|\righthyphenmin|})$. -\ (Plain \TeX\ takes $\lambda=2$ and $\rho=3$.) \ Furthermore, the items -immediately following the trial word must consist of zero or more -characters, ligatures, and implicit kerns, followed immediately by -either glue or an explicit kern or a penalty item or a whatsit or an -item of vertical mode material from ^|\mark|, ^|\insert|, or ^|\vadjust|. -Thus, a box or rule or math formula or discretionary following too closely -upon the trial word will inhibit hyphenation. (Since \TeX\ inserts -empty discretionaries after ^{explicit hyphens}, these rules imply that -already-hyphenated compound words will not be further hyphenated by -the algorithm.) - -\endgroup - -\bugonpage A455, new copy after line 13 (9/23/89) - -\begingroup -\hyphenpenalty=-1000 \pretolerance=-1 \tolerance=1000 -\doublehyphendemerits=-100000 \finalhyphendemerits=-100000 -\ddanger \looseness=-1 -So far we have assumed that \TeX\ knows only one style of -hyphenation at a time; but in fact \TeX\ can remember up to 256 -distinct sets of rules, if you have enough memory in your computer. An -integer parameter called ^|\language| selects the rules actually used; -every ^|\hyphenation| and ^|\patterns| specification appends new rules -to those previously given for the current value of\/ |\language|. -\ (If\/ |\language| is negative or greater than 255, \TeX\ acts as if -|\language|$\null=0$.) \ All |\patterns| for all languages must be -given before a paragraph is typeset, if |INITEX| is used for -typesetting. - -\ddanger \TeX\ is able to work with several languages in the same -paragraph, because it operates as follows. At the beginning of a -paragraph the ``current language'' is defined to be~0. Whenever a -character is added to the current paragraph (i.e., in unrestricted -horizontal mode), the current language is compared to |\language|; if -they differ, the current language is reset and a whatsit node -specifying the new current language is inserted before the character. -Thus, if you say `|\def\french{\language1...}|' and `|mix| |{\french -franc/ais}| |with| |English|', \TeX\ will put whatsits before the |f| -and the~|w|; hence it will use language~1 rules when hyphenating -|franc/ais|, after which it will revert to language~0. You can insert -the whatsit yourself (even in restricted horizontal mode) by saying -^|\setlanguage|\<number>; this changes the current language but it -does not change |\language|. - -\endgroup - -\bugonpage A459, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\badness|, 214, {\it229}, 271. - -\bugonpage A461, right column (9/23/89) - -\eightpoint -caron, {\sl see\/} h\'a\v cek. - -\bugonpage A464, line 10 (5/15/89) - -\eightpoint -displays, 87, 103, {\it139--145}, {\it166--167}, - -\bugonpage A464, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\emergencystretch|, $\underline{107}$, 274. - -\bugonpage A465, left column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\errorcontextlines|, $\underline{34}$, 273, {\it348}. - -\bugonpage A466, entry for `fractions' (9/23/89) - -\eightpoint[Add page 332 to this entry.] - -\bugonpage A466, entry for `French'' (9/23/89) - -\eightpoint[Add page 455 to this entry.] - -\bugonpage A467, entry for `hexadecimal' (9/23/89) - -\eightpoint[Add pages 45, 47--48 to this entry.] - -\bugonpage A467, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\holdinginserts|, $\underline{125}$, 273, 400. - -\bugonpage A467, bottom line (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\hyphenation|, 277, {\it419}, $\underline{452}$--$\underline{453}$, 455. - -\bugonpage A468, right column (9/23/89) - -\eightpoint -infinite badness, 97, 107, 111, 229, 317. - -\bugonpage A468, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\inputlineno|, 214, 271. - -\bugonpage A469, entry for kerns (9/23/89) - -\eightpoint[Add pages 286 and 444 to this entry.] - -\bugonpage A469, left column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\language| (hyphenation method), 273, $\underline{455}$. - -\bugonpage A469, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\lefthyphenmin|, 273, {\it364}, $\underline{454}$. - -\bugonpage A470, entry for ligatures (9/23/89) - -\eightpoint[Add pages 286 and 444 to this entry.] - -\bugonpage A472, left column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\noboundary|, 283, $\underline{286}$, 290. - -\bugonpage A473, right column (9/23/89) - -\eightpoint -overfull boxes, 27--30, 94, 229, 238,\par -\indent\qquad 302--303, 307, 400.\par -\indent\quad avoiding, 107. - -\bugonpage A474, left column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\patterns|, 277, $\underline{453}$, 455. - -\bugonpage A476, left column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\righthyphenmin|, 273, {\it364}, $\underline{454}$. - -\bugonpage A476, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\setlanguage|, 287, $\underline{455}$. - -\bugonpage A476, right column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\showboxbreadth|, 273, $\underline{302}$, 303, {\it348}.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\showboxdepth|, 79, 273, $\underline{302}$, 303, {\it348}. - -\bugonpage A479, left column (9/23/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|\tolerance|, {\it29--30}, 91, 94, $\underline{96}$, 107, 272,\par -\indent\qquad{\it317}, {\it333}, {\it342}, {\it348}, {\it364}, {\it451}. - -\bugonpage A481, right column, last six entries (9/23/89) - -\def\frac#1/#2{\leavevmode\kern.1em - \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em - /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}% -\eightpoint -\frac1/2, 67, 332.\par -1/2, in unslashed form, 141, 186.\par -\<4-bit number>, $\underline{271}$.\par -\<8-bit number>, $\underline{271}$, 276--278.\par -\<15-bit number>, $\underline{271}$, 277, 289, 291.\par -\<27-bit number>, $\underline{271}$, 289, 291.\par - -\bugonpage A483, lines 15 and 21 (9/23/89) - -\noindent[Delete these two lines, as TUG's address is no longer c/o AMS.] - -% volume B -\hsize=35pc -\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers -\def\to{\mathrel{.\,.}} % double dot, used only in math mode - -\bugonpage Bvii, top two lines (4/21/89) - -{\hsize=29pc -\tenpoint\noindent -{\it {\sltt WEB} documentation for four utility programs that are -often used in conjunction with \TeX: {\sltt POOLtype}, {\sltt TFtoPL}, -{\sltt PLtoTF}, and {\sltt DVItype}.} -\par} - -\bugonpage B2, line 32 (6/20/89) - -\ninepoint\noindent\hskip10pt -{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$% -{\tt This\]is\]TeX,\]Version\]2.991\char'23}\quad -$\{\,$printed when \TeX\ starts$\,\}$ - -\bugonpage B118, lines 2--4 (3/2/89) - -\ninepoint\noindent\hskip10pt -{\bf begin if\/} $\\{cur\_level}>\\{level\_one}$ {\bf then}\par -\noindent\hskip20pt{\bf begin} \\{check\_full\_save\_stack}; \ - $\\{save\_type}(\\{save\_ptr})\gets\\{insert\_token}$;\par -\noindent\hskip20pt$\\{save\_level}(\\{save\_ptr})\gets\\{level\_zero}$; \ - $\\{save\_index}(\\{save\_ptr})\gets t$; \ \\{incr}(\\{save\_ptr});\par -\noindent\hskip20pt{\bf end}; - -\bugonpage B182, line 13 becomes two lines (6/20/89) - -\ninepoint\noindent -$k,\\{kk}$: \\{small\_number};\quad - $\{\,$number of digits in a decimal fraction$\,\}$\par\noindent -$p,q$: \\{pointer};\quad - $\{\,$top of decimal digit stack$\,\}$ - -\bugonpage B182, line 15 from the bottom (6/20/89) - -\ninepoint\noindent\hskip10pt -{\bf begin} $k\gets0$; $p\gets\\{null}$; \\{get\_token};\quad - $\{\,$\\{point\_token} is being re-scanned$\,\}$ - -\bugonpage B182, line 11 from the bottom (6/20/89) - -\ninepoint\noindent\hskip30pt -{\bf begin} $q\gets\\{get\_avail}$; $\\{link}(q)\gets p$; - $\\{info}(q)\gets\\{cur\_tok}-\\{zero\_token}$; - $p\gets q$; $\\{incr}(k)$; - -\bugonpage B182, line 8 from the bottom (6/20/89) - -\ninepoint\noindent -\\{done1}: {\bf for} $\\{kk}\gets k$ {\bf downto} 1 {\bf do}\par -\noindent\hskip20pt -{\bf begin} $\\{dig}[kk-1]\gets\\{info}(p)$; $q\gets p$; $p\gets\\{link}(p)$; - $\\{free\_avail}(q)$;\par -\noindent\hskip20pt{\bf end};\par -\noindent\hskip10pt$f\gets\\{round\_decimals}(k)$; - -\bugonpage B332, lines 11 and 12 from the bottom (4/8/89) - -\ninepoint -\noindent\hskip10pt -{\bf begin if\/} $\\{cur\_align}=\\{null}$ {\bf then} - \\{confusion}({\tt\char'23endv\char'23});\par\noindent\hskip10pt -$q\gets\\{link}(\\{cur\_align})$; \ {\bf if\/} $q=\\{null}$ {\bf then} - \\{confusion}({\tt\char'23endv\char'23}); - -\bugonpage B466, line 5 becomes three lines (6/7/89) - -\ninepoint -\noindent -$\\{mmode}+\\{halign}$: {\bf if\/} \\{privileged} {\bf then}\par\noindent -\hskip20pt{\bf if\/} $\\{cur\_group}=\\{math\_shift\_group}$ - {\bf then} \\{init\_align}\par\noindent\hskip20pt -{\bf else} \\{off\_save}; - -\bugonpage B518, line 25 (8/31/89) - -\ninepoint\noindent\hskip10pt -$\\{undump}(\\{lo\_mem\_stat\_max}+1)(\\{lo\_mem\_max})(\\{rover})$; \ -$p\gets\\{mem\_bot}$; \ $q\gets\\{rover}$; - -% volume C -\hsize=29pc -\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers - -\buginvol C, in general (9/23/89) - -\ninepoint\noindent -[Change `127' to `255' and `128' to `256' in contexts referring to character -codes. This happens on pages 188(thrice) and 251.] - -\bugonpage C91, lines 12 and 13 (8/31/89) - -\begintt -\mode=cheapo; input newface -\endtt -and the same file should also produce a high-resolution font if we start with - -\bugonpage C204, line 4 (8/18/89) - -\ninepoint\noindent -so that -\\{currenttransform} multiplies all $y$~coordinates by -\\{aspect\_ratio}, when paths are\cutpar - -\bugonpage C212, lines 24--27 (9/30/89) - -\ninepoint -\begindisplay -{\it boundarychar}\quad&the right boundary character for ligatures and kerns\cr -\enddisplay -All of these quantities are numeric. They are initially zero at the -start of a job, except for {\it year\/}, {\it month\/}, - {\it day\/}, and {\it time\/}, which -are initialized to the time the run began; furthermore, {\it boundarychar\/} is -initially~$-1$. A {\it granularity\/} of zero is equivalent to - $\hbox{\it granularity\/}=1$. -A preloaded base file like plain \MF\ will usually give nonzero values to -several other internal quantities on this list. - -\bugonpage C259, lines 16 and 17 from the bottom (5/14/89) - -\tenpoint -\noindent -|screenchars|; \ |screenstrokes|; \ |imagerules|; \ |gfcorners|; \ -|nodisplays|;\hfil\break -|notransforms|; \ |input| \<filename>. - -\bugonpage C282, the three lines following the chart (9/30/89) - -\tenpoint\noindent -\MF\ can also be configured to accept any or all of the character codes -128--255. -However, \MF\ programs that make use of anything in addition to the 95 -standard ASCII characters cannot be expected to run on other systems, so -the use of extended character sets is discouraged. - -\bugonpage C316, bottom 14 lines and top 30 of page C317 (9/30/89) - -\ninepoint -Ligature information and kerning information is specified in short -``^{ligtable programs}'' of a particularly simple form. Here's an example -that illustrates most of the features (although it is not a serious -example of typographic practice): -\beginlines -^|ligtable|| "f": "f" =: oct"013", "i" |\||=: oct"020", skipto 1;| -|ligtable "o": "b": "p": "e" kern .5u#, "o" kern .5u#, "x" kern-.5u#,| -| 1:: "!" kern u#;| -\endlines -This sequence of instructions can be paraphrased as follows: -\smallskip -\hangindent 3pc -Dear \TeX, when you're typesetting an~`f' with this font, and when the -following character also belongs to this font, look at it closely because -you might need to do something special: If that following character is -another~`f', replace the two f's by character code |oct"013"| -[namely `\char'13'\kern.5pt]; -if it's an `i', retain the `f' but replace the `i' by character code -|oct"020"| [a dotless `\char'20'\kern.5pt]; -otherwise skip down to label `|1::|' for further instructions. -When you're typesetting an `o' or~`b' or~`p', if the next input to \TeX\ is -`e' or~`o', add a half unit -of space between the letters; if it's an `x', subtract a half unit; if it's an -exclamation point, add a full unit. The last instruction applies also -to exclamation points following~`f' (because of the label `|1::|'). -\smallskip\noindent -When a character code appears in front of a colon, the colon ``labels'' -the starting place for that character's ligature and kerning program, -which continues to the end of the ligtable statement. A double colon denotes -a ``local label''; a |skipto| instruction advances to the next matching local -label, which must appear before 128 ligtable steps intervene. The special -label \|\||:| can be used to initiate ligtable instructions for an invisible -``left boundary character'' that is implicitly present just before every -word; an invisible ``right boundary character'' equal to {\it boundarychar\/} is -also implicitly present just after every word, if {\it boundarychar\/} - lies between -0 and~255. - -The general syntax for ligtable programs is pretty easy to guess from -these examples, but we ought to exhibit it for completeness: -\beginsyntax \chardef\\=`\| -<ligtable command>\is[ligtable]<ligtable program><optional skip> -<ligtable program>\is<ligtable step>\alt<ligtable program>[,]<ligtable step> -<optional skip>\is[,] [skipto]<code>\alt<empty> -<ligtable step>\is<code><ligature op><code> - \alt<code>[kern]<numeric expression> - \alt<label><ligtable step> -<ligature op>\is[=:]\alt[\\=:]\alt[\\=:>]\alt[=:\\]\alt[=:\\>]% - \alt[\\=:\\]\alt[\\=:\\>]\alt[\\=:\\>>] -<label>\is<code>[:]\alt<code>[::]\alt[\\\\:] -<code>\is<numeric expression>\alt<string expression> -\endsyntax -A \<code> should have a numeric value between 0 and 255, inclusive, -after having been rounded to the nearest integer; or it should be a -string of length~1, in which case it denotes the corresponding -^{ASCII} code (Appendix~C\null). For example, |"A"| and |64.61| both -specify the code value 65. Vertical bars to the left or right of `|=:|' -tell \TeX\ to retain the original left and/or right character that invoked a -ligature. Additional `|>|' signs tell \TeX\ to advance its focus of attention -instead of doing any further ligtable operations at the current -character position. - -\bugonpage C338, lines 21 and 22 (9/30/89) - -\ninepoint\noindent -and 127--255 have to be specified with the `|#|' option, -on non-fancy installations of \TeX, -and so does code 35 (which is the ASCII code of `|#|' itself). - -\bugonpage C346, left column, after line 14 (9/30/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -\||=:|, {\it316}, $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -\||=:>|, $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|=:|\|, $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|=:|\||>|, $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -\||=:|\|, $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -\||=:|\||>|, $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -\||=:|\||>>|, $\underline{317}$.\par - -\bugonpage C346, left column, after line 31 (9/30/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|::| (local label), $\underline{317}$.\par -\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -\|\||:| (left boundary label), $\underline{317}$.\par - -\bugonpage C347, left column (9/30/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|boundarychar|, 212, 317. - -\bugonpage C352, left column (9/30/89) - -\eightpoint[Change `\<ligature replacement>' to `\<ligature op>'.] - -\bugonpage C354, left column (9/30/89) - -\eightpoint -\<optional skip>, 217. - -\bugonpage C356, left column (9/30/89) - -\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% -|skipto|, {\it316}, $\underline{317}$. - -% Volume D -\hsize=35pc -\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers -\def\to{\mathrel{.\,.}} % double dot, used only in math mode - -\bugonpage Dvi, bottom two lines, and top lines of page vii (4/21/89) - -{\hsize=29pc \tenpoint -\textindent\bull ``\MF\/ware'' by Donald~E. Knuth, Tomas~G. Rokicki, and -Ar\-thur~L. Samuel, Stanford Computer Science Report 1255 (Stanford, -California, April 1989), 207~pp. \ {\it The {\sltt WEB} programs for -four utility programs that are often used in conjunction with -\slMF\kern1pt: {\sltt GFtype}, {\sltt GFtoPK}, {\sltt GFtoDVI}, -and {\sltt MFT}.} -\par} - -\bugonpage D63, line 9 (8/31/89) - -\tenpoint\noindent -\\{mem}, so we -allow pointers to assume any \\{halfword} value. The minimum memory -index represents\cutpar - -\bugonpage D63, line 28 (8/31/89) - -\tenpoint\centerline{$\\{null}=\\{mem\_min}<\\{lo\_mem\_max}< -\\{hi\_mem\_min}<\\{mem\_top}\le\\{mem\_end}\le\\{mem\_max}$.} - -\bugonpage D67, in the July 1987 printing (4/7/89) - -\ninepoint\noindent -[Delete line 7, which has a redundant `{\bf if\/} $r=p$ {\bf then}'; - move line 8 to the left 10 points for alignment; and restore the following - line (which was deleted by mistake after line 8): - - \noindent\hskip10pt - $\\{node\_size}(p)\gets q-p$\quad$\{\,$reset the size in case it grew$\,\}$ - - \noindent - These corrections are needed only in the reprinting made July, 1987.] - -\bugonpage D228, in the July 1987 printing (4/7/89) - -\ninepoint\noindent -[Delete lines 14--15, which were inserted erroneously from a previous errata -list; and restore the following lines (which were deleted by mistake): - -\noindent\hskip20pt -{\bf begin} \\{double}(\\{max\_coef}); \ -\\{double}(\\{x0}); \ -\\{double}(\\{x1}); \ -\\{double}(\\{x2});\par\noindent\hskip20pt -\\{double}(\\{y0}); \ -\\{double}(\\{y1}); \ -\\{double}(\\{y2});\par\noindent\hskip20pt -{\bf end} - -\noindent -These corrections are needed only in the reprinting made July, 1987.] - -\bugonpage D248, in the July 1987 printing (4/7/89) - -\ninepoint\noindent -[Delete line 16, which begins with `$d\gets\\{take\_fraction}$'; -and restore the following line (which was deleted by mistake after line 22): - -\noindent\hskip10pt -{\bf if\/} $d<\\{alpha}$ {\bf then} $d\gets\\{alpha}$ - -\noindent -These corrections are needed only in the reprinting made July, 1987.] - -\bugonpage D389, line 10 (6/20/89) - -\ninepoint\noindent\hskip20pt -\\{help1}({\tt\char'23 -The\]expression\]above\]should\]have\]been\]a\]number\]>=3/4.\char'23}); - -\bugonpage D504, line 25 (8/31/89) - -\ninepoint\noindent\hskip10pt -$\\{undump}(\\{lo\_mem\_stat\_max}+1)(\\{lo\_mem\_max})(\\{rover})$; \ -$p\gets\\{mem\_min}$; \ $q\gets\\{rover}$; - -\bugonpage D510, in the July 1987 printing (4/7/89) - -\ninepoint\noindent -[Move the 7th-to-last line, which begins with `\\{internal}[\\{fontmaking}]', -one line down, and indent it to the right by 10 more points. -This correction is needed only in the reprinting made July, 1987.] - -% volume E -\hsize=29pc -\def\dashto{\mathrel{\hbox{-\kern-.05em}\mkern3.9mu\hbox{-\kern-.05em}}} - -\bugonpage Exiii, bottom four lines (5/5/89) - -{\hsize=29pc \tenpoint -\textindent\bull ``Metamarks: Preliminary studies for a Pandora's Box of -shapes'' by Neenie Billawala, -Stanford Computer Science Report 1256 (Stanford, -California, May 1989), 132~pp. \ {\it Lavishly illustrated studies in -parameter variation, leading to the design of a new family of -typefaces called Pandora.} -\par} - -\bugonpage E401, bottom line (5/16/89) - -\ninepoint\noindent -{\bf \def\_{\kern.04em\vbox{\hrule width.3em height .6pt}\kern.08em}% -math\_fit}$(-.3\\{cap\_height}\0*\\{slant}-.5u\0,\\{ic}\0)$;\par\noindent -{\bf penlabels}$(1,2,3,4,5,6,7,8)$; {\bf endchar\/}; -\smallskip\noindent -[some points and labels are missing at the tip of the tail on page 400] -\bye -Now here are some that I will make soon! - |