From a7413da58c33f9b31d87d35b556eb455cefa06eb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 28 Sep 2009 15:26:51 +0000 Subject: re-update knuth, no need to move source/ git-svn-id: svn://tug.org/texlive/trunk@15510 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/generic/knuth/errata/errata.eight | 610 ++++ .../source/generic/knuth/errata/errata.eleven | 317 +++ .../source/generic/knuth/errata/errata.five | 1108 ++++++++ .../source/generic/knuth/errata/errata.four | 1052 +++++++ .../source/generic/knuth/errata/errata.nine | 226 ++ .../source/generic/knuth/errata/errata.one | 751 +++++ .../source/generic/knuth/errata/errata.seven | 821 ++++++ .../source/generic/knuth/errata/errata.six | 528 ++++ .../source/generic/knuth/errata/errata.ten | 1289 +++++++++ .../source/generic/knuth/errata/errata.tex | 1554 +++++++++++ .../source/generic/knuth/errata/errata.three | 1898 +++++++++++++ .../source/generic/knuth/errata/errata.two | 491 ++++ .../source/generic/knuth/errata/errorlog.tex | 2924 ++++++++++++++++++++ .../source/generic/knuth/errata/logmac.tex | 107 + .../texmf-dist/source/generic/knuth/tex/glue.web | 421 +++ .../texmf-dist/source/generic/knuth/web/webman.tex | 1672 +++++++++++ 16 files changed, 15769 insertions(+) create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.eight create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.eleven create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.five create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.four create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.nine create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.one create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.seven create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.six create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.ten create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.tex create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.three create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errata.two create mode 100644 Master/texmf-dist/source/generic/knuth/errata/errorlog.tex create mode 100644 Master/texmf-dist/source/generic/knuth/errata/logmac.tex create mode 100644 Master/texmf-dist/source/generic/knuth/tex/glue.web create mode 100644 Master/texmf-dist/source/generic/knuth/web/webman.tex (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/generic/knuth/errata/errata.eight b/Master/texmf-dist/source/generic/knuth/errata/errata.eight new file mode 100644 index 00000000000..f7ceafd9f69 --- /dev/null +++ b/Master/texmf-dist/source/generic/knuth/errata/errata.eight @@ -0,0 +1,610 @@ +% 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, 1992}} +\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\/} between 15 March 1992 and the publication of the final +printed versions of those books. +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. Changes to Volume~B refer to the fourth printing +(1991), which differs markedly from earlier printings because it includes +all the revisions for \TeX3.0. Changes to Volume~D refer to the third +printing (1991), which differs markedly from earlier printings because +it includes all the revisions for \MF\kern1pt2.0. Changes to the mini-indexes +and master indexes of Volumes B and~D are not shown here unless they are +not obviously derivable from what has been shown. +\looseness=-1 + + % volume A + +\bugonpage A23, line 14 (9/1/92) + +\tenpoint\noindent +a command and you type `|tex|' or `|run| |tex|' or something like that.) + +\bugonpage A53, line 23 (7/7/92) + +\tenpoint\noindent +{\sl scientiarum imperialis petropolitan\ae\/} +became {\sl Akademi\t\i a Nauk SSSR, Doklady}. + +\bugonpage A146, line 2 from the bottom (2/25/93) + +|$\bigl|\|| |\||x|\||-|\||y|\|| \bigr|\||$|\hskip1.25in + $\bigl\vert\vert x\vert-\vert y\vert\bigr\vert$ + +\bugonpage A149, lines 3--5 (2/25/93) + +\noindent +example, we used |\bigl| and |\bigr| to produce $\bigl\vert\vert x\vert- +\vert y\vert\bigr\vert$ in one of the previous illustrations; |\left| and +|\right| don't make things any bigger than necessary, so +`|$\left|\||\left|\||x\right|\||-\left|\||y\right|\||\right|\||$|' +yields only `$\left\vert + \left\vert x\right\vert -\left\vert y\right\vert \right\vert$'.\cutpar + +\bugonpage A158, line 18 from the bottom (2/25/93) + +\ninepoint +are four possibilities for each of these fields. +A field can be + +\bugonpage A282, line 9 from the bottom (7/8/92) + +\ninepoint\noindent +category~4) are intercepted by the alignment +process, en route to \TeX's stomach, so\cutpar + +\bugonpage A293, new paragraph after line 15 (4/9/92) + +\ninepoint +\textindent{$\bull$}|\unhbox|\<8-bit number>, |\unhcopy|\<8-bit number>.\enskip +The specified box register must be void. Nothing happens. + +\bugonpage A309, line 23 (7/7/92) + +\ninepoint\noindent +|petropolitan\ae\/} became {\sl Akademi\t\i a Nauk SSSR, Doklady}.| + +\bugonpage A320, line 11 (1/26/93) + +\ninepoint +\ansno17.12: +|$\bigl(x+f(x)\bigr) \big/ \bigl(x-f(x)\bigr)$|. \ Notice especially the\cutpar + +\bugonpage A349, second line from the bottom (7/8/92) + +\ninepoint\noindent +expand to a ^\ en route to \TeX's +``stomach''; |\multiply| wouldn't work, because\cutpar + +\bugonpage A358, bottom line (2/3/93) + +\ninepoint\noindent +it is easy to define ^|\ldots| and ^|\cdots| macros that +give the proper spacing in most\cutpar + +\bugonpage A370, lines 28 and 29 (9/1/92) + +\def\Russiantt#1{{\tt\hbox to.5em{\hss\eighttt\char#1\hss}}} +\ninepoint\noindent +example, if \TeX\ is implemented for +a purely ^{Cyrillic} ^^{Russian} keyboard, the letter `\Russiantt5' should be +assigned to code \oct{160} and `\Russiantt{`T}' to code \oct{164}, so that +`\Russiantt5\Russiantt{`T}' still means `|pt|'; or else control\cutpar + +\bugonpage A377, lines 17--24 (5/4/92) + +\ninepoint +\begintt +\def\sanswitch{\let\n@xt\endsanity \ifx\next\endsanity + \else\ifcat\noexpand\next\stoken\aftergroup\space\let\n@xt=\eat + \else\ifcat\noexpand\next\bgroup\aftergroup{\let\n@xt=\eat + \else\ifcat\noexpand\next\egroup\aftergroup}\let\n@xt=\eat + \else\let\n@xt=\copytok\fi\fi\fi\fi \n@xt} +\def\eat{\afterassignment\sanitize \let\next= } +\long\def\copytok#1{\ifcat\noexpand#1\relax\aftergroup\noexpand\fi + \ifcat\noexpand#1\noexpand~\aftergroup\noexpand\fi +\endtt + +\bugonpage A455, line 25 (2/26/93) + +\ninepoint\noindent +rent language'' is set equal to |\language|. Whenever a +character is added to the cur-\cutpar + +\bugonpage A459, second line of entry for ampersand (3/22/92) + +\eightpoint\indent\qquad +{\it231--248}, $\underline{282}$, {\it339}, 344, 385--386, 428. + +\bugonpage A461, right column (2/19/93) + +\eightpoint +\newbox\astbox \setbox\astbox=\hbox to0pt{\hss\lower1pt\hbox{*}} +\def\prim#1{\par\indent\copy\astbox{\tt\char`\\#1}} +\prim{chardef}, 44, 121, 155, 210, 214, 215, 271,\par +\indent\qquad $\underline{277}$, 336, {\it343}, {\it345}, {\it356}, 452.\par +\indent\, $\underline{271}$, 283, 286, 289. + +\bugonpage A467, left column (2/25/93) + +\eightpoint +Greek, 127--128, 137, 156, 164, 319,\par +\indent\qquad 358, 430, 434. + +\bugonpage A470, left column (2/25/93) + +\eightpoint +margins, {\sl see\/} |\hoffset|, |\hsize|, |\narrower|. + +\bugonpage A471, left column (2/19/93) + +\eightpoint +\prim{mathchardef}, 155, 199, 214, 215, 271,\par +\indent\qquad 277, 289, 336, {\it358}, {\it394}.\par +\indent\, $\underline{271}$, 289. + +\bugonpage A474, right column (3/22/92) + +\eightpoint +pound sterling, 54, {\it339}, 428. + +\bugonpage A477, right column (3/22/92) + +\eightpoint +sterling, 54, {\it339}, 428. + +\bugonpage A480, left column (4/9/92) + +\eightpoint +\prim{unhbox}, 120, 283, $\underline{285}$, 293, {\it354}, {\it356}, + {\it399}.\par +\prim{unhcopy}, 120, 283, $\underline{285}$, 293, {\it353}. + +\bugonpage A481, left column (2/25/93) + +\eightpoint +whatsits, 95, 110, 157, 226--229, 455. + +\bugonpage A483, lines 15--21 (2/25/93) + +{\tt P.O. Box 869\par +Santa Barbara, CA 93102-0869 USA.\par +|}|} +\smallskip\noindent +Don't delay, write today! That number again is + +\smallskip +{\obeylines +\TeX\ Users Group +P.O. Box 869 +Santa Barbara, CA 93102-0869 USA. +} + + % 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 B2, line 10 from the bottom (2/27/93) + +\ninepoint\noindent\hskip10pt +{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$% +{\tt This\]is\]TeX,\]Version\]3.1415\char'23}\quad +$\{\,$printed when \TeX\ starts$\,\}$ + +\bugonpage B89, line 12 (2/27/93) + +\tenpoint +\noindent\hskip10pt +In horizontal mode, the \\{prev\_graf} field is used for initial language data. + +\bugonpage B89, line 20 (2/27/93) + +\ninepoint +\noindent\hskip20pt +\\{pg\_field}, \\{ml\_field}: \\{integer}; \ \\{aux\_field}: \\{memory\_word}; +\par +\noindent [Also delete the definitions of \\{lhmin} and \\{rhmin}, lines +32 and 33.] + +\bugonpage B90, line 13 (2/27/93) + +\ninepoint +\noindent\hskip10pt +$\\{prev\_depth}\gets\\{ignore\_depth}$; \ $\\{mode\_line}\gets0$; \ +$\\{prev\_graf}\gets0$; + +\bugonpage B91, top three lines (2/27/93) + +\ninepoint +\noindent\hskip20pt +{\bf if\/} $m=\\{hmode}$ {\bf then if\/} $\\{nest}[p].\\{pg\_field}\ne + \oct{40600000}$ {\bf then}\par\noindent\hskip40pt +{\bf begin} \\{print}({\tt\char`\"\](language\char`\"}); \ + \\{print\_int}(\\{nest}[$p$].\\{pg\_field} {\bf mod} \oct{200000});\par +\noindent\hskip40pt + \\{print}({\tt\char`\":hyphenmin\char`\"}); \ + \\{print\_int}(\\{nest}[$p$].\\{pg\_field} {\bf div} \oct{20000000}); \ + \\{print\_char}({\tt\char`\",\char`\"});\par\noindent\hskip40pt +\\{print\_int}((\\{nest}[$p$].\\{pg\_field} {\bf div} \oct{200000}) + {\bf mod} \oct{100}); \ \\{print\_char}({\tt\char`\")\char`\"}); + +\bugonpage B344, lines 21 and 22 (2/27/93) + +\tenpoint\noindent\hskip10pt +This code assumes that a \\{glue\_node} and a \\{penalty\_node} occupy the +same number of \\{mem}~words. + +\bugonpage B344, line 30 (2/27/93) + +\ninepoint\noindent\hskip10pt +$\\{link}(\\{tail})\gets\\{new\_param\_glue}(\\{par\_fill\_skip\_code})$; \ + $\\{init\_cur\_lang}\gets\\{prev\_graf}$ {\bf mod} \oct{200000};\par +\noindent\hskip10pt +$\\{init\_l\_hyf}\gets\\{prev\_graf}$ {\bf div} \oct{20000000}; \ +$\\{init\_r\_hyf}\gets(\\{prev\_graf}$ {\bf div} \oct{200000}) {\bf mod} + \oct{100}; \ +\\{pop\_nest}; + +\bugonpage B353, line 4 (2/27/93) + +\tenpoint\noindent\hskip10pt +Kern nodes do not disappear at a line break unless they are \\{explicit}. + +\bugonpage B353, lines 15 and 16 (2/27/93) + +\ninepoint\noindent\hskip20pt +\\{math\_node}: $\\{break\_width}[1]\gets\\{break\_width}[1]-\\{width}(s)$;\par +\noindent\hskip20pt +\\{kern\_node}: {\bf if\/} $\\{subtype}(s)\ne\\{explicit}$ + {\bf then goto} \\{done}\par\noindent\hskip30pt +{\bf else} $\\{break\_width}[1]\gets\\{break\_width}[1]-\\{width}(s)$; + +\bugonpage B354, lines 6 and 7 (2/27/93) + +\tenpoint\noindent +will be the background +plus $l_1$, so the length from \\{cur\_p} to \\{cur\_p} should be +$\gamma+l_0+l_1-l$. +If the post-break text of the discretionary is empty, a break may also +discard~$q$; in that unusual case we subtract the length of~$q$ and any +other nodes that will be discarded after the discretionary break. + +\bugonpage B354, line 18 (2/27/93) + +\ninepoint\noindent\hskip20pt +{\bf begin} $\langle\,$Add the width of node $s$ to \\{break\_width}{\sevenrm + \kern.5em842}$\,\rangle$; + +\bugonpage B354, line 22 (2/27/93) + +\ninepoint\noindent\hskip10pt +{\bf if\/} $\\{post\_break}(\\{cur\_p})=\\{null}$ {\bf then} + $s\gets\\{link}(v)$;\quad$\{\,$nodes may be discardable after the break$\,\}$ + +\bugonpage B355, top line (2/27/93) + +\ninepoint\noindent +{\tenbf842.\quad}$\langle\,$Add the width of node $s$ to + \\{break\_width}{\sevenrm\kern.5em842}$\,\rangle\equiv$ + +\bugonpage B355, lines 9--14 (2/27/93) + +\ninepoint\noindent\hskip20pt +$\\{hlist\_node},\\{vlist\_node},\\{rule\_node},\\{kern\_node}$: + $\\{break\_width}[1]\gets\\{break\_width}[1]+\\{width}(s)$;\par +\noindent\hskip20pt +{\bf othercases} \\{confusion}({\tt\char`\"disc2\char`\"})\par +\noindent\hskip20pt +{\bf endcases} + +\bugonpage B364, line 10 (2/27/93) + +\tenpoint\noindent +a glue node, penalty node, explicit kern node, or math node. + +\bugonpage B366, line 11 from the bottom (2/27/93) + +\ninepoint\noindent +\\{kern\_node}: {\bf if\/} $\\{subtype}(\\{cur\_p})=\\{explicit}$ + {\bf then} \\{kern\_break}\par\noindent\hskip10pt +{\bf else} $\\{act\_width}\gets\\{act\_width}+\\{width}(\\{cur\_p})$; + +\bugonpage B367, line 21 (2/27/93) + +\ninepoint\noindent\hskip20pt +{\bf else if\/} \\{precedes\_break}(\\{prev\_p}) {\bf then} + $\\{try\_break}(0,\\{unhyphenated})$\par\noindent\hskip20pt +{\bf else if\/} $(\\{type}(\\{prev\_p})=\\{kern\_node})\land + (\\{subtype}(\\{prev\_p})\ne\\{explicit})$ {\bf then} + $\\{try\_break}(0,\\{unhyphenated})$; + +\bugonpage B372, lines 12 and 13 (2/27/93) + +\ninepoint\noindent\hskip20pt +{\bf if\/} $\\{type}(q)=\\{kern\_node}$ {\bf then}\par\noindent\hskip30pt +{\bf if\/} $\\{subtype}(q)\ne\\{explicit}$ {\bf then goto} \\{done1}; + +\bugonpage B376, line 3 from the bottom (2/27/93) + +\ninepoint\noindent\hskip10pt +$\\{cur\_lang}\gets\\{init\_cur\_lang}$; \ +$\\{l\_hyf}\gets\\{init\_l\_hyf}$; \ +$\\{r\_hyf}\gets\\{init\_r\_hyf}$; + +\bugonpage B377, lines 11 and 12 (2/27/93) + +\ninepoint\noindent +$\\{cur\_lang},\\{init\_cur\_lang}$: \\{ASCII\_code};\quad + $\{\,$current hyphenation table of interest$\,\}$\par\noindent +$\\{l\_hyf},\\{r\_hyf},\\{init\_l\_hyf},\\{init\_r\_hyf}$: \\{integer};\quad + $\{\,$limits on fragment sizes$\,\}$ + +\bugonpage B378, line 5 from the bottom, overriding earlier change (2/27/93) + +\ninepoint\noindent\hskip30pt +{\bf else if} $(\\{type}(s)=\\{kern\_node})\land(\\{subtype}(s)=\\{normal})$ + {\bf then}\par\noindent\hskip50pt +{\bf begin} $\\{hb}\gets s$; \ $\\{hyf\_bchar}\gets\\{font\_bchar}[\\{hf}]$; \ + {\bf end}\par\noindent\hskip40pt +{\bf else goto} \\{done3}; + + +\bugonpage B394, lines 12 and 13 (2/27/93) + +\ninepoint\noindent\hskip10pt +{\bf var} $n$: $0\to64$;\quad$\{\,$length of current word; not always + a \\{small\_number}$\,\}$\par\noindent\hskip20pt +$j$: $0\to64$;\quad$\{\,$an index into \\{hc}$\,\}$ + +\bugonpage B404, line 21 (2/27/93) + +\ninepoint\noindent\hskip10pt +{\bf var} $k,l$: $0\to64$;\quad$\{\,$indices into \\{hc} and \\{hyf}; + not always in \\{small\_number} range$\,\}$ + +\bugonpage B460, lines 21 and 22 (2/27/93) + +\ninepoint\noindent\hskip10pt +\\{push\_nest}; \ $\\{mode}\gets\\{hmode}$; \ $\\{space\_factor}\gets1000$; \ + \\{set\_cur\_lang}; \ $\\{clang}\gets\\{cur\_lang}$;\par\noindent\hskip10pt +$\\{prev\_graf}\gets(\\{norm\_min}(\\{left\_hyphen\_min})\ast\oct{100}+ + \\{norm\_min}(\\{right\_hyphen\_min}))\ast\oct{200000}+\\{cur\_lang}$; + +\bugonpage B492, line 6 from the bottom (2/27/93) + +\ninepoint\noindent\hskip10pt +\\{unsave}; \ $\\{prev\_graf}\gets\\{prev\_graf}+3$;\par\noindent\hskip10pt +\\{push\_nest}; \ $\\{mode}\gets\\{hmode}$; \ $\\{space\_factor}\gets1000$; \ + \\{set\_cur\_lang}; \ $\\{clang}\gets\\{cur\_lang}$;\par\noindent\hskip10pt +$\\{prev\_graf}\gets(\\{norm\_min}(\\{left\_hyphen\_min})\ast\oct{100}+ + \\{norm\_min}(\\{right\_hyphen\_min}))\ast\oct{200000}+\\{cur\_lang}$; + + % volume C +\hsize=29pc +\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers + +\bugonpage C151, line 11 from the bottom (6/26/93) + +\ninepoint\indent +\qquad scaled $1.42(1+\max(-\\{pen\_lft},\\{pen\_rt},\\{pen\_top}, + -\\{pen\_bot}))$ + +\bugonpage C262, line 15 (6/26/93) + +\ninepoint\noindent +|string base_name, base_version; base_name="plain"; base_version="2.71";| + +\bugonpage C262, line 29 (6/26/93) + +\ninepoint\noindent +|def |^|gobble|| primary g = enddef; def |^|killtext|| text t = enddef;| + +\bugonpage C271, bottom line (6/26/93) + +\ninepoint\noindent +| culldraw p enddef;| + +\bugonpage C272, three new lines for top of page (6/26/93) + +{\ninepoint\parindent=0pt +|def |^|culldraw|| expr p = addto pic_ doublepath p.t_ withpen currentpen;|\par +| cull pic_ dropping(-infinity,0) withweight default_wt_;|\par +| addto_currentpicture also pic_; pic_:=nullpicture; killtext enddef;|\par +} + +\bugonpage C272, replacement for former line 5 (6/26/93) + +\ninepoint\noindent +| (cut_ scaled (1+max(-pen_lft,pen_rt,pen_top,-pen_bot))| + +\bugonpage C296, line 24 (2/3/93) + +\ninepoint\noindent +the definition of |rp| is changed to `|]..tension 4..|', +and if `|scaled|~|5pt|' is inserted\cutpar + +\bugonpage C299, line 3 (5/15/92) + +\ninepoint\noindent +a Bernshte{\u\i}n polynomial of order $n-1$.) + +\bugonpage C347, left column (5/15/92) + +\eightpoint +Bernshte{\u\i}n, Serge{\u\i} \thinspace Natanovich, 14. + +\bugonpage C348, left column (6/26/93) + +\eightpoint +|culldraw|, {\it271}, $\underline{272}$. + +\bugonpage C350, left column (6/26/93) + +\eightpoint +exponential, {\sl see\/} |mexp|. + +\bugonpage C352, left column (6/26/93) + +\eightpoint +|killtext|, $\underline{262}$, {\it 272}. + +\bugonpage C352, right column (6/26/93) + +\eightpoint +logarithm, {\sl see\/} |mlog|. + +\bugonpage C361, lines 14 and 15 (2/25/93) + +P.O. Box 869\par +Santa Barbara, CA 93102-0869 USA. + + + % Volume D +\hsize=29pc +\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers +\def\to{\mathrel{.\,.}} % double dot, used only in math mode + +\bugonpage Dxiv, line 13 (4/19/96) + +\noindent preprocessor converts these into numeric constants that are +256 or more. This\cutpar + +\bugonpage Dxiv, line $-1$ (4/19/96) + +\ninepoint\noindent This file contains one line per string, starting with +string number 256, then number 257,\cutpar + +\bugonpage Dxv, lines 10 and 11 (4/19/96) + +\ninepoint\noindent +In this case, occurrences of |""| in the |WEB| program will be replaced by +256; occurrences of |"This longer string"| will be replaced by 257. +The symbol |@$| stands for the numeric\cutpar + +\hsize=35pc +\bugonpage D2, line $-17$ (8/7/98) + +\def\RQ/{{\char'23}} % right quote in a string +\ninepoint\noindent +{\bf define} $\\{banner}\equiv\hbox{\tt\RQ/This\]is\]METAFONT,\]% + Version\]2.7182\RQ/}$\quad$\{\,$printed when \MF\ starts$\,\}$ + +\bugonpage D50, line 26 (8/7/98) + +\ninepoint\noindent +\quad{\bf if\/} $b>0$ {\bf then} + +\bugonpage D138, line 14 from the bottom (3/6/95) + +\tenpoint +\textindent{$2'$)} Let $Z_k^{(j+1)}={1\over2}(Z_k^{(j)}+Z_{k+1}^{(j)})$, for +$1\le k\le n-j$, for $1\le j0$ {\bf do}\par\noindent +\qquad {\bf if\/} \\{token\_state} {\bf then} \\{end\_token\_list} + {\bf else} \\{end\_file\_reading};\par\noindent +\quad {\bf while} $\\{loop\_ptr}\ne\\{null}$ {\bf do} \\{stop\_iteration}; + +\bugonpage D518, line 18 (3/20/95) + +\ninepoint\noindent +\qquad $\\{loop\_ptr}\gets\\{cond\_ptr}$; \ + $\\{cond\_ptr}\gets\\{link}(\\{cond\_ptr})$; \ + $\\{free\_node}(\\{loop\_ptr},\\{if\_node\_size})$; + +\bugonpage D546, left column (4/11/96) + +\eightpoint +Stern, Moritz Abraham: \ 526. + + % volume E +\hsize=29pc +\def\dashto{\mathrel{\hbox{-\kern-.05em}\mkern3.9mu\hbox{-\kern-.05em}}} + + + \bye + diff --git a/Master/texmf-dist/source/generic/knuth/errata/errata.eleven b/Master/texmf-dist/source/generic/knuth/errata/errata.eleven new file mode 100644 index 00000000000..64d9f8ab457 --- /dev/null +++ b/Master/texmf-dist/source/generic/knuth/errata/errata.eleven @@ -0,0 +1,317 @@ +% Bugs (sigh) in Computers \& Typesetting + +\input manmac +\def\curl{\mathop{\rm curl}} +\def\cycle{{\rm cycle}}\indent +\def\dashto{\mathrel{\hbox{-\thinspace-\kern-.05em}}} +\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, 2001}} +\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 substantial corrections made to {\sl Computers +\& Typesetting\/} between the first ``Millennium edition'' of 2000 and the +second such edition, which appeared late in 2001. +(More precisely, it lists errors to the 16th, 7th, 6th, 4th, and 5th +printings of Volumes A, B, C, D, and E, respectively, that were corrected +in the 17th, 8th, 7th, 5th, and 6th printings.) +Changes to the mini-indexes +and master indexes of Volumes B, D, and~E are not shown here unless they are +not obviously derivable from what has been shown. +\looseness=-1 + + % volume A + +\bugonpage A16, line 7 from the bottom (06/30/01) + +\font\magnifiedfiverm=cmr5 at 10pt +\tenpoint\indent +Ten-point type is different from% + \magnifiedfiverm\ magnif{}ied f{}ive-point type. + +\bugonpage A17, line 7 (06/30/01) + +\ninepoint\indent +fications that grow in geometric ratios---something like equal-tempered +tuning\cutpar + +\bugonpage A51, lines 18--20 (06/30/01) + +\tenpoint\kern-6pt\noindent +$$\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;\cr +|--| yields --\thinspace;\qquad |---| yields ---\thinspace.\cr}$$ + +\bugonpage A52, line 7 from the bottom (06/30/01) + +\tenpoint\kern-6pt\noindent +$$\halign{\indent\hbox to 50pt{#\hfil}&\hbox to 35pt{#\hfil}&#\hfil\cr +|\ae,\AE|&\ae,\thinspace\AE&(Latin ligature and Scandinavian letter AE)\cr}$$ + +\bugonpage A71, line 15 (06/30/01) + +\tenpoint\indent +One of the interesting things that can happen when glue stretches and\cutpar + +\bugonpage A180, line 20 (06/30/01) + +\ninepoint\indent +Challenge number 5:\enspace +$\qquad\tenmath k=1.38065\times10^{-16}\rm\,erg\,K^{-1}$. + +\bugonpage A254, line 12 from the bottom becomes two lines (04/09/01) + +\ninepoint\noindent +\begintt +\output={\unvbox255 + \ifnum\outputpenalty<10000 \penalty\outputpenalty\fi} +\endtt + +\bugonpage A292, lines 13--16 (06/30/01) + +\def\s{\hskip0pt plus1pt} +\ninepoint\textindent{$\bull$}|\mathchoice|\s +$\langle$filler$\rangle$\s|{|\s$\langle$math mode material$\rangle$\s|}|\s +$\langle$filler$\rangle$\s|{|\s$\langle$math mode material$\rangle$\s|}|\break +$\langle$filler$\rangle$|{|$\langle$math mode material$\rangle$|}| +$\langle$filler$\rangle$|{|$\langle$math mode material$\rangle$|}|. +Four math lists, which are defined as in the +second alternative of a \, are +recorded in a ``choice item'' that is appended to the current list. + +\bugonpage A306, line 7 (06/30/01) + +\ninepoint\noindent +instead of a shelf{\kern0pt}ful. +In fact, the latter idea---to +insert an italic correction---is prefer-\cutpar + +\bugonpage A323, line 12 from the bottom (06/30/01) + +\ninepoint\noindent +\hbox to\parindent{\bf\hss18.31.\enspace}% +|$k=1.38065\times10^{-16}\rm\,erg\,K^{-1}$|. + +\bugonpage A451, line 15 (01/30/01) + +\tenpoint\noindent +{\sl Connecticut Yankee\/} come out with only nine or +ten bad hyphens: + +\bugonpage A451, line 23 (01/30/01) + +\tenpoint\noindent\begintt + mo-er-der-mohren-mut-ter-mar-mor-mon-u-menten-macher. +\endtt + +\bugonpage A454, lines 23--30 (06/30/01) + +\begingroup +\hyphenpenalty=-1000 \pretolerance=-1 \tolerance=1000 +\doublehyphendemerits=-100000 \finalhyphendemerits=-100000 +\ddanger If a suitable starting letter is found, let it be in font~$f$. +Hyphenation is abandoned unless the |\hyphenchar| of~$f$ is a number +between 0 and~255, inclusive. +If this test is passed, \TeX\ continues to scan forward +until coming to something that's not one of the following three +``admissible items'': (1)~a character in font~$f$ whose |\lccode| +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$. +\par\endgroup + +\bugonpage A461, right column (07/08/01) + +\eightpoint\noindent +\llap{*}|\char|, {\it 43--45}, 76, 86, 155, 283, $\underline{286}$, + +\bugonpage A466, left column (07/09/01) + +\eightpoint\noindent +\llap{*}|\floatingpenalty|, $\underline{123}$--$\underline{124}$, + 272, 281, {\it 363}. + +\bugonpage A473, left column (06/30/01) + +\eightpoint\noindent +orphans, {\sl see\/} widow words. + + % volume B +\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers +\def\to{\mathrel{.\,.}} % double dot, used only in math mode + +\hsize=35pc + +\bugonpage B8, line 2 (05/04/01) + +\tenpoint\noindent +statements will be meaningful. We insert the label +`\\{exit}' just before the `{\bf end}' of a procedure in\cutpar + +\bugonpage B30, line $-4$ (05/04/01) + +\ninepoint\noindent +\quad{\bf begin} \\{update\_terminal};\quad$\{\,$now the user sees + the prompt for sure$\,\}$ + +\bugonpage B84, lines 22 and 27 (05/04/01) + +\ninepoint\noindent +\quad$\\{ignore}=9$\quad$\{\,$characters to ignore ( |^^@| )$\,\}$\par +\noindent +\quad$\\{active\_char}=13$\quad$\{\,$characters that invoke + macros ( |~| )$\,\}$ + +\bugonpage B280, lines 23 and 24 (04/08/01) + +\tenpoint\noindent +or unset nodes; in particular, each mlist item appears in the +variable-size part of \\{mem}, so the \\{type} field is always present. + +\bugonpage B382, line 6 (01/01/01) + +\tenpoint\noindent +between `fl' and `y', then $m=2$, $t=2$, and $y_1$ will +be a ligature node for `fl' followed by an\cutpar + +\bugonpage B386, line 11 (04/08/01) + +\ninepoint\noindent +\quad$\\{qi}(2),\\{qi}(6)$: {\bf begin} $\\{cur\_r}\gets\\{rem\_byte}(q)$;% + \quad$\{\,$\||=:|, \||=:>|$\,\}$ + +\bugonpage B475, line 12 (07/01/01) + +\ninepoint\noindent +\qquad{\bf end};\quad$\{\,$now we are in vertical mode, + working on the list that will contain the display$\,\}$ + + % volume C +\hsize=29pc +\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers +\def\ddashto{\mathrel{\hbox{-\thinspace-\thinspace-\kern-.05em}}} +\def\tension{\mathop{\rm tension}} +\def\controls{\mathop{\rm controls}} +\def\and{\,{\rm and}\,} + +\bugonpage C204, line 3 from the bottom (07/08/01) + +\ninepoint\noindent +slightly. If $\\{autorounding}>1$, +you get even more changes: Paths are perturbed slightly\cutpar + +\bugonpage C238, lines 9 and 8 from the bottom (07/08/01) + +\ninepoint\noindent +tance is ${\rm length}(z_4-z_1)$. But there's a slicker solution: +Just calculate +$$\hbox{abs ypart$((z_1-z_2)\mathbin{\rm rotated}-{\rm angle}(z_3-z_2))$.}$$ + +\bugonpage C313, bottom line (06/30/01) + +\rightline{\eightss--- LA ROCHEFOUCAULD, {\eightssi Maximes\/}\enspace(1665)} + +\bugonpage C352, left column (06/30/01) + +\eightpoint\noindent +La Rochefoucauld, Fran\c cois VI, 313. + +\bugonpage C357, right column (07/08/01) + +\eightpoint\noindent +\llap{*}|true|, 55, {\it64\/}--{\it65}, 170, 210. + + % Volume D +\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers +\def\to{\mathrel{.\,.}} % double dot, used only in math mode + +\hsize=35pc + +\bugonpage D8, line 2 (05/04/01) + +\tenpoint\noindent +statements will be meaningful. We insert the label +`\\{exit}' just before the `{\bf end}' of a procedure in\cutpar + +\bugonpage D28, line $-8$ (05/04/01) + +\ninepoint\noindent +\quad{\bf begin} \\{update\_terminal};\quad$\{\,$now the user sees + the prompt for sure$\,\}$ + +\bugonpage D101, line 21 (07/08/01) + +\ninepoint\noindent +\quad{\bf define} $\\{subscr\_head\_loc}(\hbox{\tt\#})\equiv\hbox{\tt\#}+1$ +\quad$\{\,$where \\{value}, \\{subscr\_head}, and \\{attr\_head} are$\,\}$ + +\bugonpage D180, lines 22 and 23 (01/26/01) + +\tenpoint\noindent +$(y,-x)$ will appear in node~$p$. Similarly, a fourth-octant +transformation will have been applied after the transition, so +we will have $\\{x\_coord}(q)=\hbox{$-x$}$ and $\\{y\_coord}(q)=y$. + +\bugonpage D196, lines 7 and 8 (01/26/01) + +\tenpoint\noindent +where $x'(t)\ge0$ we have $\\{right\_type}=% +\\{first\_octant}$ or $\\{right\_type}=\\{eighth\_octant}$; in regions where +$x'(t)\le0$, +we have $\\{right\_type}=\\{fifth\_octant}$ or $\\{right\_type}=\\{fourth% +\_octant}$. + +\bugonpage D511, line 17 (07/03/01) + +\tenpoint\noindent +from appearing again. + + % volume E +\hsize=29pc + +\newbox\shorthyf \setbox\shorthyf=\hbox{-\kern-.05em} +\mathchardef\period=`\. +{\catcode`\-=\active \global\def-{\copy\shorthyf\mkern3.9mu} + \catcode`\.=\active \global\def.{\period\mkern3mu}} +\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000 + #1\unkern}} % `..' and `--' + +\bugonpage E9, line 9 (07/03/01) + +\tenpoint\indent +|[92] [123] [124]) ) )| + + \bye + + diff --git a/Master/texmf-dist/source/generic/knuth/errata/errata.five b/Master/texmf-dist/source/generic/knuth/errata/errata.five new file mode 100644 index 00000000000..4e2982f109a --- /dev/null +++ b/Master/texmf-dist/source/generic/knuth/errata/errata.five @@ -0,0 +1,1108 @@ +% 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|\. + +\bugonpage A214, lines 19--24 (9/23/89) + +\ninepoint +\textindent\bull |\the|\, where \ 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\alt^|\count|<8-bit number>\alt<8-bit number> + \alt\alt\alt^|\parshape|\alt^|\inputlineno| + \alt^|\hyphenchar|\alt^|\skewchar|\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$}% +\, \, \kern-1pt^|\char|\<8-bit number>, \, +\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|\.\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 \ +is replaced by an ^{active character} token having the original character +code (0 to~255); \TeX\ forgets the original \ 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 +\ 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~\ value must be less than~$16384\pt$, i.e.,~$2^{14}\pt$; +similarly, the \ in a~\ 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~\ must be less than +$2^{30}\rm\,sp$ in absolute value; a~\ 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 \ 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|\; 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| \. + +\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\\=`\| +\is[ligtable] +\is\alt[,] +\is[,] [skipto]\alt +\is + \alt[kern] + \alt