summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/knuth/errata/errata.twelve
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/knuth/errata/errata.twelve')
-rw-r--r--Master/texmf-dist/source/generic/knuth/errata/errata.twelve1709
1 files changed, 1709 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/knuth/errata/errata.twelve b/Master/texmf-dist/source/generic/knuth/errata/errata.twelve
new file mode 100644
index 00000000000..8a7c291b490
--- /dev/null
+++ b/Master/texmf-dist/source/generic/knuth/errata/errata.twelve
@@ -0,0 +1,1709 @@
+% Bugs (sigh) in Computers \& Typesetting
+
+\input manmac
+\def\.#1{\hbox{\tt#1}}
+\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\endgraf}}
+
+\def\rhead{Bugs in {\tensl Computers \& Typesetting as of \today}}
+\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 publication of the second ``Millennium Edition''
+at the close of the year 2001 and the beginning of the year 2014.
+(More precisely, it lists errors corrected
+in 16th to 19th printings of Volume~A, the 7th and 8th printings
+of Volume~B, the 6th and 7th printings of Volume~C, the 4th and 5th printings
+of Volume~D, and the 5th and 6th printings of Volume~E.)
+Corrections made to the softcover version of {\sl The \TeX book\/},
+beginning with its 32nd printing, are
+the same as corrections to Volume~A\null. Corrections to the softcover
+version of {\sl The \slMF\kern1ptbook}, beginning with its 11th printing,
+are the same as corrections to Volume~C\null. 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. All of these
+errors have supposedly been corrected in more recent printings, unless
+they were subsequently found to be wrong.
+\looseness=-1
+
+ % volume A
+
+\bugonpage A7, line 4 from the bottom (01/15/04)
+
+\noindent
+since control sequences of the second kind always have exactly one
+symbol after\cutpar
+
+\bugonpage A123, line 7 from the bottom (02/27/08)
+
+\ninepoint\noindent
+that it won't make the natural height-plus-depth
+of\/ |\box|$\,n$ surpass |\dimen|$\,n$, when it~is\cutpar
+
+\bugonpage A124, lines 12 and 13 (02/27/08)
+
+\ninepoint\noindent
+means that \TeX\ has tried to split an |\insert254| to height $180.2\pt$;
+the natural height-plus-depth of the best such split is $175.3\pt$,
+and the penalty for breaking there is~100.)
+
+\bugonpage A153, line 7 (01/03/14)
+
+\ninepoint\noindent
+of three fonts: one for text size, one for
+script size, and one for scriptscript size. The\cutpar
+
+\bugonpage A206, lines 12--17 (05/21/07)
+
+\ninepoint\noindent
+or alignment template
+is also considered to be |\outer| in this sense; for example, a
+file shouldn't end in the middle of a definition. If you are designing a
+format for others to use, you can help them detect errors before too much
+harm is done, by using |\outer| with all control sequences that should
+appear only at ``quiet times'' within a document. For example, Appendix~B
+defines |\proclaim| to be |\outer|, since a user shouldn't be stating a
+theorem as part of a definition or argument or preamble.
+
+
+\bugonpage A216, line 3 from the bottom (12/20/07)
+
+\ninepoint\indent|\openin|\<number>|=|\<file name>
+
+\bugonpage A290, lines 25--26 (02/24/08)
+
+\ninepoint\textindent{$\bull$}
+\<leaders>\<box or rule>\<horizontal skip>.\enskip
+Here \<horizontal skip> refers to one of the first five glue-appending
+commands just mentioned; the formal syntax for \<leaders>\cutpar
+
+\bugonpage A292, line 15 (12/02/02)
+
+\ninepoint\noindent
+are defined as in the
+second alternative of a \<math field>, are
+recorded in a ``choice\cutpar
+
+\bugonpage A308, lines 25 and 26 (06/17/02)
+
+\ninepoint
+\begintt
+\def\appendroman#1#2#3{\expandafter\def\expandafter#1\expandafter
+ {\csname\expandafter\gobble\string#2\romannumeral#3\endcsname}}
+\endtt
+
+\bugonpage A311, line 14 (12/02/02)
+
+\ninepoint\indent
+|\def\\{\if\space\next\ % assume that \next is unexpandable|
+
+\bugonpage A311, line 17 (12/29/07)
+
+\ninepoint\indent
+| \leavevmode\copy0\kern-\wd0\makelightbox}|
+
+\bugonpage A318, lines 24 and 25 (10/01/03)
+
+\ninepoint\noindent
+\hbox to\parindent{\bf\hss15.13.\enspace}%
+Yes, in severe circumstances. (1)~Previous footnotes might
+ have left no room for any more footnotes on the page.
+(2)~If |\vadjust{\eject}| occurs on the same line\cutpar
+
+\bugonpage A364, lines 12--15 from the bottom (02/29/08)
+
+\ninepoint\noindent
+|\def\loggingall{\tracingcommands=2 \tracingstats=2|\par\noindent
+| \tracingpages=1 \tracingoutput=1 \tracinglostchars=1 |\par\noindent
+| \tracingmacros=2 \tracingparagraphs=1 \tracingrestores=1 |\par\noindent
+| \showboxbreadth=\maxdimen \showboxdepth=\maxdimen}|\par
+\noindent
+|\def\tracingall{\tracingonline=1 \loggingall}|
+
+\bugonpage A364, line 5 from the bottom (02/29/08)
+
+\ninepoint\noindent
+|\def\fmtversion{3.141592653} % identifies the current format|
+
+\bugonpage A373, lines 4 and 5 from the bottom (01/02/14)
+
+\ninepoint\noindent
+And here's another solution (which may be faster, because
+token list registers can be expanded more quickly than macros
+on some implementations, using |\the|):
+
+\bugonpage A373, line 2 from the bottom (01/02/14)
+
+\ninepoint\indent
+|\loop \ifnum\m>0 \t=\expandafter{\the\t*}\advance\m-1 \repeat|
+
+\bugonpage A399, line 18, through what used to be page A400, line 14 (02/26/08)
+
+\ninepoint
+Finally, the reformatting of\/ |\box\footins| can be achieved easily with
+an elegant technique suggested by David Kastrup, using the following
+\TeX\ code within the |\output| routine:
+\begindisplay
+|\def\makefootnoteparagraph{\unvbox\footins|\cr
+| \baselineskip=\footnotebaselineskip \removehboxes}|\cr
+|\def\removehboxes{\unskip\setbox0=\lastbox|\cr
+| \ifhbox0{\removehboxes}\unhbox0 \else\noindent \fi}|\cr
+\enddisplay
+The key idea here is |\removehboxes|, a macro that has the magical ability to
+take a vertical box such as `|\vbox{\box1\box2\box3\removehboxes}|' and
+transform it into
+`|\vbox{\noindent\unhbox1\unhbox2\unhbox3}|'\kern-1pt,
+if\/ |\box1|, \kern-2pt|\box2|, and
+|\box3| are hboxes. Notice how |\removehboxes| introduces braces so that
+\TeX's {save stack} will hold all of the hboxes before they are unboxed. Each
+level of recursion in this routine uses one cell of input stack space and
+three cells of save stack space; thus, it is generally safe to do more than
+100 footnotes without exceeding \TeX's capacity.
+
+In our application there is no interline glue within |\box\footins|,
+so the |\unskip| command could be deleted from |\removehboxes|.
+
+Incidentally, the |\unskip| and |\lastbox| operations have running
+times of the approximate form
+$a+mb$, where $m$~is the number of items on the
+list preceding the glue or box that is removed. Hence |\removehboxes| has a
+running time of order $n^2$ when it removes $n$~boxes.
+But the constant~$b$ is so small that
+for practical purposes it's possible to think of\/ |\unskip| and
+|\lastbox| as almost instantaneous.
+
+\bugonpage A416, lines 18--22 (06/08/07)
+
+\ninepoint\noindent\beginlines
+|\def\leftheadline{\hbox to \pagewidth{\spaceskip=0pt|
+| \vbox to 10pt{}% strut to position the baseline|
+| \llap{\tenbf\folio\kern1pc}% folio to left of text|
+| \tenit\rhead\hfil}} % running head flush left|
+|\def\rightheadline{\hbox to \pagewidth{\spaceskip=0pt\vbox to 10pt{}%|
+\endlines
+
+\bugonpage A418, line 8 from the bottom (12/13/11)
+
+\ninepoint\noindent\beginlines
+| \def\\{#3} \advance\hsize by -18mm|
+\endlines
+
+\bugonpage A418, line 3 from the bottom (12/13/11)
+
+\ninepoint\noindent\beginlines
+| \halign{\line{\titlefont\hss##}\\#4\unskip\\}|
+\endlines
+
+\bugonpage A442, lines 7 and 8 from the bottom (01/03/14)
+
+\def\rule#1.{\smallskip\textindent{\bf#1.}\ignorespaces}
+\ninepoint\textindent{\bf 3.}%
+If the current item is a style change, set $C$ to the specified
+style and move on to the next item.
+
+\bugonpage A450, lines 14--16 from the bottom (12/19/02)
+
+\begingroup\def\\#1{$_{\kern\scriptspace#1}$}
+\indent\qquad{\tt s\\1tic
+ \\1exp x\\3p pi\\3a \\2i\\1a i\\2al \\2id \\1do \\1ci \\2io ou\\2 \\2us}
+\medskip\noindent
+(where subscripts that aren't shown are zero), and this yields
+$$\centerline{%
+\tt.\\0s\\0u\\1p\\0e\\0r\\1c\\0a\\0l\\1i\\0f\\0r\\0a\\0g\\1i\\0l\\4i%
+\\0s\\1t\\2i\\0c\\1e\\0x\\3p\\2i\\3a\\0l\\2i\\1d\\0o\\1c\\2i\\0o\\2u\\2s\\0.}$$
+\endgroup
+
+\bugonpage A458, left column (01/11/07)
+
+\eightpoint\noindent
+|\\|, 38, {\it356}, {\it378}, {\it418}.
+
+\bugonpage A459, left column (03/17/06)
+
+\eightpoint\noindent
+angle brackets ( $\langle\,\rangle$ ), 59, {\it146--147}, 150,~156,\par
+\noindent\qquad $\underline{268}$, 420, 437;
+ {\sl see also\/} |\langle|, |\rangle|.
+
+\bugonpage A461, left column (02/24/08)
+
+\eightpoint\noindent
+|\boxit|, 223, 331.
+
+\bugonpage A468, right column (02/26/08)
+
+\eightpoint\noindent
+interline glue, 78--79, $\underline{80}$, 104, 105, 125, 221,\par
+\noindent\qquad 245, 263, 281--282, 335, 352, 399, 409.
+
+\bugonpage A469, left column (02/26/08)
+
+\eightpoint\noindent
+Kastrup, David Friedrich, 399.
+
+\bugonpage A470, left column (01/21/03)
+
+\eightpoint\noindent
+|\loggingall|, $\underline{364}$.
+
+\bugonpage A477, right column (06/08/07)
+
+\eightpoint\noindent
+\llap{*}|\spaceskip|, 76, 274, {\it317}, {\it356}, {\it416}, 429.
+
+\bugonpage A479, right column (09/11/07)
+
+\eightpoint\noindent
+|\undefined|, 350, 384.
+
+\bugonpage A483, line 5 from the bottom (11/18/03)
+
+\eightpoint
+\rightline{\eightss--- HIERONYMUS HORNSCHUCH, %
+ {\eightrm'}$O\mkern-1mu\rho\mkern1mu\vartheta o\mkern1mu %
+ \tau\upsilon\pi o\gamma\mkern-1mu %
+ \rho\alpha\phi\acute\iota\alpha\varsigma$\enspace(1608)}
+
+ % volume B
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+
+\bugonpage Bv, page number change (12/27/11)
+
+\eightpoint\noindent[For consistency with Volumes A, C, and E, the
+preface now begins on page v instead of page~vii. This change was first
+made in the ninth printing.]
+
+\bugonpage Bv {(formerly Bvii)}, bottom two lines (01/06/14)
+
+\eightpoint\noindent
+all of those changes.
+I~now believe that the final bug was discovered on 14 September 2008
+and removed in version 3.14159265.
+The finder's fee has converged to \$327.68.
+
+\bugonpage Bxiii {(formerly Bxv)}, line $-7$ (12/27/11)
+
+\ninepoint\noindent
+Format specs have no effect on the corresponding Pascal program, but they
+do influence\cutpar
+
+\hsize=35pc
+
+\bugonpage B2, line 10 from the bottom (01/02/14)
+
+\ninepoint\noindent\hskip10pt
+{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$%
+{\tt This\]is\]TeX,\]Version\]3.14159265\char'23}\quad
+$\{\,$printed when \TeX\ starts$\,\}$
+
+\bugonpage B3, new paragraph to follow line 9 (12/20/02)
+
+\tenpoint\noindent\quad
+Incidentally, Pascal's standard \\{round} function can be problematical,
+because it disagrees with the IEEE floating-point standard.
+Many implementors have
+therefore chosen to substitute their own home-grown rounding procedure.
+
+\bugonpage B21, lines 33 and 34 (09/11/07)
+
+\def\Oct#1{\hbox{\rm\char'23\kern-.2em\it#1\/\kern.05em}} % octal constant
+\tenpoint\noindent
+$[\Oct{41}\to\Oct{46},\Oct{60}%
+\to\Oct{71},\Oct{136},\Oct{141}\to\Oct{146},\Oct{160}\to\Oct{171}]$ must be printable.
+Thus, at least 81 printable characters are needed.
+
+\bugonpage B109, line 16 (01/06/14)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin} $\\{print\_esc}(\.{"csname"})$;
+$\\{print\_esc}(\.{"endcsname"})$;
+$\\{print\_char}(\.{"\ "})$;
+{\bf end}
+
+\bugonpage B114, line 25 (09/11/07)
+
+\def\#{\hbox{\tt\char`\#}} % parameter sign
+\ninepoint\noindent
+{\bf define} $\\{save\_index}(\#)\equiv\\{save\_stack}[\#].\\{hh}.\\{rh}$\quad
+ $\{\,$\\{eqtb} location or token or \\{save\_stack} location$\,\}$
+
+\bugonpage B139, line 20 (12/19/02)
+
+\ninepoint\noindent
+\quad{\bf begin while} $(\\{state}=\\{token\_list}) \land
+ (\\{loc}=\\{null}) \land (\\{token\_type}\ne\\{v\_template})$ {\bf do}\par
+\noindent\qquad\\{end\_token\_list};\quad$\{\,$conserve stack space$\,\}$
+
+\bugonpage B144, line 14 (09/11/07)
+
+\ninepoint\noindent
+\quad\\{cat}: $0\to\\{max\_char\_code}$;\quad$\{\,$\\{cat\_code}(\\{cur\_char}), usually$\,\}$
+
+\bugonpage B153, lines 2 and 3 (09/11/07)
+
+\tenpoint\noindent
+In fact, these three procedures account for almost every use of \\{get\_next}.
+
+\bugonpage B161, line 19 (12/19/02)
+
+\ninepoint\noindent
+\quad{\bf while} $(\\{state}=\\{token\_list}) \land
+ (\\{loc}=\\{null}) \land (\\{token\_type}\ne\\{v\_template})$ {\bf do}\par
+\noindent\qquad\\{end\_token\_list};\quad$\{\,$conserve stack space$\,\}$
+
+\bugonpage B163, line 29 (12/19/02)
+
+\ninepoint\noindent
+\quad$\\{long\_state}\gets\\{call}$;
+$\\{cur\_tok}\gets\\{par\_token}$;
+$\\{ins\_error}$;
+{\bf goto} \\{continue};
+
+\bugonpage B172, lines 2--6 from the bottom (09/11/07)
+
+\ninepoint\noindent
+{\bf else if\/} $m=\\{vmode}$ {\bf then} \\{scanned\_result}(\\{prev\_depth})(\\{dimen\_val})\par\noindent
+\quad{\bf else} \\{scanned\_result}(\\{space\_factor})(\\{int\_val})
+
+\bugonpage B178, line 4 (09/11/07)
+
+\ninepoint\noindent
+\quad$\\{cur\_val}\gets0$;
+$\\{cur\_val\_level}\gets\\{int\_val}$;
+$\\{radix}\gets0$;
+$\\{cur\_order}\gets\\{normal}$;
+
+\bugonpage B184, line 9 from the bottom (04/18/07)
+
+\tenpoint\noindent
+and denominator sum to 32768 or less.
+According to the definitions here, $\rm2660\,dd\approx1000.33297\,mm$;\kern-6.6pt\cutpar
+
+\bugonpage B206, line 14 (10/30/02)
+
+\tenpoint\noindent
+used input files like \.{webmac.tex}.
+
+\bugonpage B206, new paragraph to follow line 22 (12/20/02)
+
+\tenpoint\noindent\quad
+The following procedures don't allow spaces to be part of
+file names; but some users seem to like names that are spaced-out.
+System-dependent changes to allow such things should probably
+be made with reluctance, and only when an entire file name that
+includes spaces is ``quoted'' somehow.
+
+\bugonpage B227, new line to precede line 23 (09/11/07)
+
+\ninepoint\noindent
+{\bf if} $(\\{nw}=0)\lor(\\{nh}=0)\lor(\\{nd}=0)\lor(\\{ni}=0)$
+ {\bf then} \\{abort};
+
+\bugonpage B256, line 25 (12/20/02)
+
+\ninepoint\noindent
+\qquad\\{cur\_glue}: \\{real};\quad$\{\,$glue seen so far$\,\}$\par\noindent
+\qquad\\{cur\_g}: \\{scaled};\quad$\{\,$rounded
+ equivalent of \\{cur\_glue} times the glue ratio$\,\}$\par\noindent
+\quad{\bf begin} $\\{cur\_g}\gets0$;
+ $\\{cur\_glue}\gets\\{float\_constant}(0)$;\par\noindent
+\quad$\\{this\_box}\gets\\{temp\_ptr}$;
+ $\\{g\_order}\gets\\{glue\_order}(\\{this\_box})$;
+ $\\{g\_sign}\gets\\{glue\_sign}(\\{this\_box})$;
+
+\bugonpage B258, line 5 from the bottom (12/20/02)
+
+\ninepoint\noindent
+\quad{\bf begin} $g\gets\\{glue\_ptr}(p)$;
+ $\\{rule\_wd}\gets\\{width}(g)-\\{cur\_g}$;
+
+\bugonpage B258, bottom line (12/20/02)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin} $\\{cur\_glue}\gets\\{cur\_glue}+\\{stretch}(g)$;
+ $\\{vet\_glue}(\\{float}(\\{glue\_set}(\\{this\_box}))*\\{cur\_glue})$;\par
+\noindent\qquad\qquad$\\{cur\_g}\gets\\{round}(\\{glue\_temp})$;
+
+\bugonpage B259, line 4 (12/20/02)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin} $\\{cur\_glue}\gets\\{cur\_glue}-\\{shrink}(g)$;
+ $\\{vet\_glue}(\\{float}(\\{glue\_set}(\\{this\_box}))*\\{cur\_glue})$;\par
+\noindent\qquad\qquad$\\{cur\_g}\gets\\{round}(\\{glue\_temp})$;
+
+\bugonpage B259, new line to precede old line 7 (12/20/02)
+
+\ninepoint\noindent
+\quad$\\{rule\_wd}\gets\\{rule\_wd}+\\{cur\_g}$;
+
+\bugonpage B260, line 21 (12/19/02)
+
+\ninepoint\noindent
+\qquad{\bf else begin} $\\{lx}\gets\\{lr}$ {\bf div} $(\\{lq}+1)$;
+
+\bugonpage B261, line 9 (12/20/02)
+
+\ninepoint\noindent
+\qquad\\{cur\_glue}: \\{real};\quad$\{\,$glue seen so far$\,\}$\par\noindent
+\qquad\\{cur\_g}: \\{scaled};\quad$\{\,$rounded
+ equivalent of \\{cur\_glue} times the glue ratio$\,\}$\par\noindent
+\quad{\bf begin} $\\{cur\_g}\gets0$;
+ $\\{cur\_glue}\gets\\{float\_constant}(0)$;\par\noindent
+\quad$\\{this\_box}\gets\\{temp\_ptr}$;
+ $\\{g\_order}\gets\\{glue\_order}(\\{this\_box})$;
+ $\\{g\_sign}\gets\\{glue\_sign}(\\{this\_box})$;
+
+\bugonpage B262, line 10 from the bottom (12/20/02)
+
+\ninepoint\noindent
+\quad{\bf begin} $g\gets\\{glue\_ptr}(p)$;
+ $\\{rule\_ht}\gets\\{width}(g)-\\{cur\_g}$;
+
+\bugonpage B262, line 6 from the bottom (12/20/02)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin} $\\{cur\_glue}\gets\\{cur\_glue}+\\{stretch}(g)$;
+ $\\{vet\_glue}(\\{float}(\\{glue\_set}(\\{this\_box}))*\\{cur\_glue})$;\par
+\noindent\qquad\qquad$\\{cur\_g}\gets\\{round}(\\{glue\_temp})$;
+
+\bugonpage B262, line 2 from the bottom (12/20/02)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin} $\\{cur\_glue}\gets\\{cur\_glue}-\\{shrink}(g)$;
+ $\\{vet\_glue}(\\{float}(\\{glue\_set}(\\{this\_box}))*\\{cur\_glue})$;\par
+\noindent\qquad\qquad$\\{cur\_g}\gets\\{round}(\\{glue\_temp})$;
+
+\bugonpage B263, new line to precede old line 2 (12/20/02)
+
+\ninepoint\noindent
+\quad$\\{rule\_ht}\gets\\{rule\_ht}+\\{cur\_g}$;
+
+\bugonpage B264, line 10 (12/19/02)
+
+\ninepoint\noindent
+\qquad{\bf else begin} $\\{lx}\gets\\{lr}$ {\bf div} $(\\{lq}+1)$;
+
+\bugonpage B266, line 29 (09/11/07)
+
+\tenpoint\noindent
+$\\{total\_pages}\ge65536$, the \.{DVI} file will lie. And if
+$\\{max\_push}\ge65536$, the user deserves whatever chaos might ensue.
+
+\bugonpage B279, line 19 (09/11/07)
+
+\ninepoint\noindent
+\qquad\\{p}: \\{pointer};\quad$\{\,$a new glue node$\,\}$
+
+\bugonpage B288, lines 18--20 (09/11/07)
+
+\ninepoint\noindent
+\\{left\_noad}: {\bf begin} \\{print\_esc}(\.{"left"});
+ \\{print\_delimiter}(\\{delimiter}($p$));\par\noindent
+\quad{\bf end};\par\noindent
+\\{right\_noad}: {\bf begin} \\{print\_esc}(\.{"right"});
+ \\{print\_delimiter}(\\{delimiter}($p$));
+
+\bugonpage B290, line 12 (09/11/07)
+
+\ninepoint\noindent
+\quad{\bf begin if\/} $s=\\{text\_size}$ {\bf then}
+ \\{print\_esc}(\.{"textfont"});
+
+\bugonpage B299, line 9 (12/20/02)
+
+\ninepoint\noindent
+\qquad\qquad\quad{\bf if\/} $\\{type}(r)=\\{kern\_node}$ {\bf then}
+ \quad$\{\,$unneeded italic correction$\,\}$
+
+\bugonpage B332, line 6 (12/19/02)
+
+\tenpoint\noindent
+is being scanned, or when no alignment preamble is active.
+
+\bugonpage B332, line 8 (12/19/02)
+
+\ninepoint\noindent
+\quad{\bf begin if\/} $(\\{scanner\_status}=\\{aligning}) \lor
+ (\\{cur\_align}=\\{null})$ {\bf then}
+
+\bugonpage B336, line 11 from the bottom (10/13/03)
+
+\tenpoint\noindent
+$j-i+\\{min\_quarterword}$ in their
+\\{link} fields. The values of $w_{ii}$ were initialized to
+\\{null\_flag},\cutpar
+
+\bugonpage B342, lines 5 and 6 (09/11/07)
+
+\tenpoint
+In restricted horizontal mode, the \\{clang} part of \\{aux} is undefined;
+an over-cautious Pascal runtime system may complain about this.
+
+\bugonpage B343, line 25 (01/02/13)
+
+\noindent
+should begin in the
+sequence of line numbers, in case hanging indentation or \.{\char`\\parshape}
+is in\cutpar
+
+\bugonpage B416, line 22 (02/29/08)
+
+\ninepoint\noindent
+\qquad\qquad{\bf if\/} $\\{count}(t)=1000$ {\bf then} $t\gets\\{height}(r)$
+\par\noindent
+\qquad\qquad{\bf else} $t\gets\\{x\_over\_n}(\\{height}(r),1000)*\\{count}(t)$;
+\par\noindent
+\qquad\qquad\\{print\_scaled}$(t)$
+
+\bugonpage B438, lines 1--3 (09/11/07)
+
+\tenpoint\noindent
+{\bf1035.\quad}If \\{link}(\\{cur\_q}) is nonnull when \\{wrapup} is invoked,
+\\{cur\_q} points to
+the list of characters that were consumed while building the ligature
+character~\\{cur\_l}.
+
+\bugonpage B438, lines 19 and 20 (09/11/07)
+
+\ninepoint\noindent
+\qquad\qquad\qquad{\bf begin if\/} $\\{link}(\\{cur\_q})>\\{null}$ {\bf then}
+\par\noindent
+\qquad\qquad\qquad\quad{\bf if\/} $\\{character}(\\{tail})=\\{qi}(
+ \\{hyphen\_char}[\\{main\_f}])$ {\bf then} $\\{ins\_disc}\gets\\{true}$;
+
+\bugonpage B438, line 4 from the bottom (09/11/07)
+
+\ninepoint\noindent
+\quad$\\{link}(\\{tail})\gets\\{lig\_stack}$;
+$\\{tail}\gets\\{lig\_stack}$\quad$\{\,$\\{main\_loop\_lookahead} is next$\,\}$
+
+\bugonpage B439, line 3 (09/11/07)
+
+\ninepoint\noindent
+\quad{\bf if\/} $\\{main\_p}>\\{null}$ {\bf then}
+ \\{tail\_append}(\\{main\_p});\quad$\{\,$append a single character$\,\}$
+
+\bugonpage B440, new line to follow line 9 (09/11/07)
+
+\ninepoint\noindent
+\quad{\bf if\/} $\\{cur\_r}=\\{non\_char}$ {\bf then goto}
+ \\{main\_loop\_wrapup};
+
+\bugonpage B452, line 18 (28/03/11)
+
+\noindent\\{hmode}, where the latter two are used to denote
+ \.{\char`\\vbox} and \.{\char`\\hbox}, respectively.
+
+\bugonpage B455, lines 3 and 4 (09/11/07)
+
+\ninepoint\noindent
+\quad{\bf if\/} $((\\{cur\_cmd}=\\{hskip})\land(\\{abs}(\\{mode})\ne\\{vmode}))
+ \lor ((\\{cur\_cmd}=\\{vskip})\land(\\{abs}(\\{mode})=\\{vmode}))$ {\bf then}
+
+\bugonpage B472, new paragraph to follow line 10 (12/20/02)
+
+\tenpoint\noindent\quad
+A devious user might force an \\{endv} command to occur just about anywhere;
+we must defeat such hacks.
+
+\bugonpage B472, replacement for what used to be line 13 (12/20/02)
+
+\ninepoint\noindent
+\quad{\bf begin} $\\{base\_ptr}\gets\\{input\_ptr}$;
+ $\\{input\_stack}[\\{base\_ptr}]\gets\\{cur\_input}$;\par\noindent
+\quad{\bf while} $(\\{input\_stack}[\\{base\_ptr}].\\{index\_field}\ne
+ \\{v\_template}) \land{}$\par\noindent
+\quad\qquad $(\\{input\_stack}[\\{base\_ptr}].\\{loc\_field}=
+ \\{null}) \land {}$\par\noindent
+\quad\qquad $(\\{input\_stack}[\\{base\_ptr}].\\{state\_field}=
+ \\{token\_list})$ {\bf do} \\{decr}(\\{base\_ptr});\par\noindent
+\quad{\bf if\/} $(\\{input\_stack}[\\{base\_ptr}].\\{index\_field}\ne
+ \\{v\_template}) \lor {}$\par\noindent
+\quad\qquad $(\\{input\_stack}[\\{base\_ptr}].\\{loc\_field}\ne
+ \\{null}) \lor {}$\par\noindent
+\quad\qquad $(\\{input\_stack}[\\{base\_ptr}].\\{state\_field}\ne
+ \\{token\_list})$ {\bf then}\par\noindent
+\qquad\\{fatal\_error}(\hbox{\tt\char'23(interwoven\]alignment\]preambles\]%
+ are\]not\]allowed)\char'23});\par\noindent
+\quad{\bf if\/} $\\{cur\_group}=\\{align\_group}$ {\bf then}
+
+\bugonpage B505, line 19 (09/11/07)
+
+\ninepoint\noindent
+\qquad(\.{"since\]the\]result\]is\]out\]of\]range."});\par\noindent
+\qquad{\bf if\/} $p\ge\\{glue\_val}$ {\bf then}
+ \\{delete\_glue\_ref}(\\{cur\_val});\par\noindent
+\qquad\\{error}; {\bf return};
+
+\bugonpage B506, line 1 (10/13/03)
+
+\tenpoint\noindent
+{\bf 1237.\quad}Here we use the fact that the consecutive codes
+$\\{int\_val}\to\\{mu\_val}$ and
+$\\{assign\_int}\to$\cutpar
+
+\bugonpage B520, line 8 (06/25/04)
+
+\tenpoint\noindent
+says,
+for example, `\.{(preloaded format=plain 1982.11.19)}', showing the year,
+month, and day\cutpar
+
+\bugonpage B535, new line to follow line 11 (09/11/07)
+
+\ninepoint\noindent
+\qquad{\bf if\/} $\\{last\_glue}\ne\\{max\_halfword}$ {\bf then}
+ \\{delete\_glue\_ref}(\\{last\_glue});
+
+\bugonpage B578, new entry (06/04/06)
+
+\eightpoint\noindent
+Trabb Pardo, Luis Isidoro, 2.
+
+ % 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 Cxi, line 4 (05/20/07)
+
+\line{\hbox to\parindent{\bf\hbox to 1em{\hss27}\hss}%
+ \rm Recovery from Errors\leaders\hbox to 20pt{\kern13pt.\hss}\hfil
+ \hbox to 2em{\hss223}}
+
+\bugonpage C11, line 11 (10/11/01)
+
+\noindent
+the area below the bar to the area above it equal to
+$(\sqrt5+1)/2\approx1.61803$, the\cutpar
+
+\bugonpage C29, illustration for exercise 4.11 (09/09/01)
+
+\noindent
+[points 2 and 5 should not be labeled twice]
+
+\bugonpage C32, line 5 from the bottom (01/04/14)
+
+\noindent
+\hbox to\parindent{\hfil\sevenrm20\ \ }%
+| penpos1(stem,15); penpos2(.9stem,12); penpos3(stem,10);|
+
+\bugonpage C36, line 5 from the bottom (01/05/14)
+
+\noindent
+line~12, where it
+says `|x1l|', not `|x11|' or~`|xll|'); be sure to distinguish between\cutpar
+
+\bugonpage C55, lines 5 and 6 (01/05/14)
+
+\ninepoint\noindent
+suffixed or subscripted.
+Thus, the syntax rule for \<variable>
+should actually be replaced by a slightly more complicated pair of rules:
+
+
+\bugonpage C129, line 16 (02/21/08)
+
+\ninepoint\beginsyntax
+<path subexpression>\is<path expression not ending with direction specifier>\kern-5pt\null
+\endsyntax
+
+\bugonpage C130, lines 13--15 from the bottom (09/13/03)
+
+\ninepoint\noindent
+point but not after it, the
+nonempty one is duplicated in a similar way. A~basic path join
+`$\to\controls u\and v\to$' specifies explicit control points that
+override any direction specifiers that may immediately surround it.
+
+\bugonpage C137, lines 5--7 from the bottom (02/21/08)
+
+\danger Let's conclude this chapter by applying what we've learned about
+paths to a real-life example. The {\sl Journal of Algorithms\/} was
+published for many years by Academic Press, and its cover page carried the
+following logo, which was designed\cutpar
+\enddanger
+
+\bugonpage C137, bottom two lines (02/21/08)
+
+\ninepoint\noindent
+A \MF\ program to produce this logo made it possible for the editors
+of the journal to use it on letterheads in their correspondence.
+Here is one way to do that job,\cutpar
+% actually the MS now says "to write that program," and the
+% correction therefore extends to page C138
+
+\bugonpage C156, line 15 from the bottom (09/09/01)
+
+\ninepoint\noindent
+be the values they had upon entry to the group.)
+
+\bugonpage C159, lines 12--15 (12/01/06)
+
+\begintt
+def --- = ..tension infinity.. enddef;
+\endtt
+it makes `$z_1\ddashto z_2$' become
+`$z_1\to\tension\\{infinity}\to z_2$'.
+The {replacement text} can be any sequence of tokens not including
+`{\bf enddef}\kern1pt'; or it can include entire subdefinitions like
+`{\bf def}~$\ldots$~{\bf enddef}\kern1pt', according to certain rules
+that we shall explain later.
+
+\bugonpage C171, line 16 from the bottom (06/18/02)
+
+\tenpoint
+\<loop>\is\<loop header>|:|\<loop text> {\tt endfor}
+
+\bugonpage C179, line 7 from the bottom (09/09/01)
+
+\ninepoint\noindent
+next time \MF\ gets to the end of an input line, it will stop reading
+from the\cutpar
+
+\bugonpage C180, lines 14--16 (04/25/03)
+
+\ninepoint\noindent
+digits should be a
+file name that works in essentially the same way on all installations of
+\MF\kern-.03em\null. Uppercase letters are considered to be distinct from their
+lowercase counterparts, on many systems.
+
+\bugonpage C180, new line to be inserted 4 from the bottom (06/25/04)
+
+\ninepoint\item\bull
+When \MF\ is reading the symbolic tokens to be saved by {\bf save}.
+
+\bugonpage C203, line 12 from the bottom (04/25/03)
+
+\ninepoint\hbox to 237pt{point~3 at the right of the triangle
+might digitize into a}
+
+\bugonpage C213, line 26 (02/21/08)
+
+\ninepoint\beginsyntax
+<path subexpression>\is<path expression not ending with direction specifier>\kern-5pt\null
+\endsyntax
+
+\bugonpage C226, line 23 (02/21/08)
+
+\ninepoint\noindent following nineteen things will be mentioned:
+
+\bugonpage C226, new line to be second from the bottom (02/21/08)
+
+\ninepoint\indent|independent variables|\qquad(distinct numeric variables)
+
+\bugonpage C236, line 7 from the bottom (01/05/14)
+
+\ninepoint\noindent
+\hbox to\parindent{\hss\bf 7.4.\enspace}False.
+After `|newinternal x;|' you can't say `|x|\<tag>' in a \<suffix list>.
+
+\bugonpage C246, line 12 (02/21/08)
+
+\ninepoint\noindent
+is performed whenever \MF\ uses the last two alternatives
+in the definition\cutpar
+
+\bugonpage C250, lines 13 and 14 (02/19/08)
+
+\ninepoint\noindent\hbox to\parindent{\bf\hss19.3.\enspace}%
+Yes, if and only if $n-{1\over2}$ is a nonnegative even integer.
+\ (Because ambiguous values are rounded upwards.)
+
+\bugonpage C250, line 12 from the bottom (04/25/03)
+
+\ninepoint\noindent
+following \<boolean primary>.)
+
+\bugonpage C286, line 25 (09/09/01)
+
+\ninepoint\noindent
+problem; it would simply have put |ENDFOR| into the
+replacement text of |asts|, because\cutpar
+
+\bugonpage C289, line 7 (09/09/01)
+
+\vskip-6pt\ninepoint\begintt
+if if pair x: x>(0,0) else: false fi: A else: B fi.
+\endtt
+
+\bugonpage C292, line 10 from the bottom (09/09/01)
+
+\ninepoint\noindent
+be known by saying `{\bf if\/} known $p-q$: $p=q$ {\bf else}:~{\bf false}
+{\bf fi}'; transforms could be handled\cutpar
+
+\bugonpage C293, line 5 from the bottom (04/25/03)
+
+\ninepoint\noindent
+given angle~$\phi$. We can consider
+the common angle~$\theta$ of $z_{1r}-z_{1l}$ and $z_{0r}-z_{0l}$ to be\cutpar
+
+\bugonpage C315, line 15 from the bottom (04/25/03)
+
+\ninepoint\noindent
+`b' was shipped out.) \ The second letter,~`o', is placed
+in a second little box adjacent\cutpar
+
+\bugonpage C325, bottom line (02/29/08)
+
+\rightline{\eightss--- CAROLUS LINN\AE US,
+ {\eightssi Philosophia Botanica\/}\enspace(1751)}
+
+\bugonpage C332, line 4 from the bottom (04/25/03)
+
+\ninepoint\noindent
+(The proofsheet resolution will be 50 pixels per inch, because {\it cheapo\/}
+has 200 pixels per\cutpar
+
+\bugonpage C346, left column (06/18/02)
+
+\eightpoint\noindent
+\llap{*}|:|, 169, 171, 317--319.
+
+\bugonpage C346, right column (07/09/01)
+
+\eightpoint\noindent
+\llap{*}|angle|, {\it29}, {\it67}, $\underline{72}$, {\it107},
+{\it135}, 211, {\it238}.
+
+\bugonpage C346, right column (10/04/04)
+
+\eightpoint\noindent
+arccosine, arcsine, arctangent, {\sl see\/} |angle|.
+
+\bugonpage C351, right column (02/21/08)
+
+\eightpoint\noindent
+independent variables, $\underline{81}$--$\underline{83}$, 88, 224, 226.
+
+\bugonpage C352, right column (02/29/08)
+
+\eightpoint\noindent
+Linn\'e, Carl von (= Linn\ae us, Carolus), 325.
+
+\bugonpage C355, right column (02/29/08)
+
+\eightpoint\noindent
+\llap{*}|save|, $\underline{155}$--$\underline{156}$, {\it160}, 173,
+ {\it178}, 180, 218,\par
+\noindent\qquad{\it236}, {\it244}, {\it296}, 299.
+
+ % Volume D
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+
+\bugonpage Dv, page number change (12/27/11)
+
+\eightpoint\noindent[For consistency with Volumes A, C, and E, the
+preface now begins on page v instead of page~vii. This change was first
+made in the sixth printing.]
+
+\bugonpage Dv {(formerly Dvii)}, bottom two lines (01/06/14)
+
+\eightpoint\noindent
+corporates all of those changes.
+I~now believe that the final bug was discovered on 03~June 2008,
+and removed in version 2.7182818.
+The finder's fee has converged to \$327.68.
+
+\bugonpage Dxiii {(formerly Dxv)}, line $-7$ (12/27/11)
+
+\ninepoint\noindent
+Format specs have no effect on the corresponding Pascal program, but they
+do influence\cutpar
+
+\hsize=35pc
+\parindent=1em
+
+\bugonpage D2, line $-17$ (01/03/14)
+
+\ninepoint\noindent
+{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$%
+{\tt This\]is\]METAFONT,\]Version\]2.7182818\char'23}\quad
+$\{\,$printed when \MF\ starts$\,\}$
+
+\bugonpage D2, lines 4 and 5 from the bottom (12/23/02)
+
+\tenpoint\noindent
+types; there are no `{\bf var}' parameters, except in the case of files
+or in the system-dependent \\{paint\_row} procedure;
+there are no tag fields on variant records; there are no \\{real} variables;
+no procedures are declared local to other procedures.)
+
+\bugonpage D16, new paragraph to follow line 26 (06/25/04)
+
+The first line is special also because it may be read before \MF\ has
+input a base file. In such cases, normal error messages cannot yet
+be given. The following code uses concepts that will be explained later.
+(If the Pascal compiler does not support non-local {\bf goto}, the
+statement `{\bf goto} \\{final\_end}' should be replaced by something that
+quietly terminates the program.)
+
+\bugonpage D22, line 26 (09/11/07)
+
+\noindent
+ASCII codes $[\Oct{60}\to\Oct{71},%
+\Oct{136},\Oct{141}\to\Oct{146}]$
+must be printable.
+
+\bugonpage D31, line 29 (06/25/04)
+
+\noindent
+This is the only nontrivial {\bf goto} statement in the
+whole program. It is used when there is no\cutpar
+
+\bugonpage D42, replacement for lines 8--13 (12/23/02)
+
+\tenpoint\noindent\quad
+Notice that if 64-bit integer arithmetic were available,
+we could simply compute $(2^{29}*p+\nobreak q)\allowbreak\,
+\hbox{\bf div}\,(2*q)$.
+But when we are restricted to Pascal's 32-bit arithmetic we
+must either resort to multiple-precision maneuvering
+or use a simple but slow iteration. The multiple-precision technique
+would be about three times faster than the code adopted here, but it
+would be comparatively long and tricky, involving about sixteen
+additional multiplications and divisions.
+
+\bugonpage D43, line 20 (12/23/02)
+
+\tenpoint\noindent
+language or 64-bit substitute is advisable.
+
+\bugonpage D44, lines 24--26 (12/23/02)
+
+\tenpoint\noindent\quad
+Once again it is a good idea to use 64-bit arithmetic if
+possible; otherwise \\{take\_scaled} will use more than 2\% of the running time
+when the Computer Modern fonts are being generated.
+
+\bugonpage D58, line 16 from the bottom (06/25/04)
+
+\ninepoint\noindent
+\hskip5em{\bf if\/} $\\{j\_random}=0$ {\bf then} \\{new\_randoms}
+ {\bf else} \\{decr}(\\{j\_random})
+
+\bugonpage D63, line 21 (06/25/04)
+
+Locations of \\{mem} between \\{mem\_min} and \\{mem\_top} may be dumped as
+part
+of preloaded base\cutpar
+
+\bugonpage D75, line 13 (06/25/04)
+
+\ninepoint\noindent
+\quad{\bf define} $\\{fi\_or\_else}=2$\quad$\{\,$delimiters for conditionals
+ ({\bf elseif\/}, {\bf else}, {\bf fi})$\,\}$
+
+\bugonpage D76, line 5 (06/25/04)
+
+\ninepoint\noindent
+\quad{\bf define} $\\{type\_name}=30$\quad$\{\,$declare a type
+ ({\bf numeric}, {\bf pair}, etc.)$\,\}$
+
+\bugonpage D77, line 16 (06/25/04)
+
+\ninepoint\noindent
+\quad{\bf define} $\\{lig\_kern\_token}=76$\quad$\{\,$the operators
+ `{\bf kern}' and `\.{=:}' and `\.{=:\char'174}', etc.$\,\}$
+
+\bugonpage D98, bottom two lines (06/25/04)
+
+\noindent
+They consist of zero or more parameter tokens followed
+by a code for the type of macro.
+
+\bugonpage D101, line 3 (06/25/04)
+
+\noindent
+\MF\ user assigns a type to a variable like \.{x20a.b} by saying, for
+example, `\.{boolean} \.{x[]a.b}'.
+
+\bugonpage D102, lines 10--16 (06/25/04)
+
+\noindent
+variable that is relevant
+when no attributes are attached to the parent. The \\{attr\_head} node
+has the fields of either
+a value node, a subscript node, or an attribute node, depending on what
+the parent would be if it were not structured; but the subscript and
+attribute fields are ignored, so it effectively contains only the data of
+a value node. The \\{link} field in this special node points to an attribute
+node whose \\{attr\_loc} field is zero; the latter node represents a collective
+subscript `\.{[]}' attached to the parent, and its \\{link} field points to
+the first non-special attribute node (or to \\{end\_attr} if there are none).
+
+\bugonpage D102, lines 7 and 8 from the bottom (06/25/04)
+
+\noindent
+$\\{subscr\_head}(\\{q1})=\\{qq1}$;
+\\{qq} is a three-word ``attribute-as-value'' node with
+$\\{type}(\\{qq})=\break\\{numeric\_type}$
+(assuming that \.{x5} is numeric, because \\{qq} represents `\.{x[]}'
+with no further\break
+ attributes), $\\{name\_type}(\\{qq})=\\{structured\_root}$,
+$\\{attr\_loc}(\\{qq})=0$, $\\{parent}(\\{qq})=p$,\cutpar
+
+\bugonpage D103, line 6 (06/25/04)
+
+\noindent
+The value of variable \.{x20b}
+appears in node~$\\{qqq2}=\\{link}(\\{qqq1})$, as you can well imagine.
+Similarly, the value of `\.{x.a}' appears in node $\\{q2}=\\{link}(\\{q1})$,
+where $\\{attr\_loc}(\\{q2})=h(a)$ and $\\{parent}(\\{q2})=p$.
+
+\bugonpage D114, line 12 (06/25/04)
+
+\noindent
+\qquad Such save stack entries are generated by {\bf save} commands.
+
+\bugonpage D120, line 3 (06/25/04)
+
+\ninepoint\noindent
+[delete the line `The code here \dots', since the
+ code {\it doesn't\/} use the stated fact]
+
+\bugonpage D126, line 10 (06/25/04)
+
+\tenpoint\noindent
+If $\theta_0$ is supposed to have a given value $E_0$, we simply
+define $C_0=1$, $D_0=0$, and $R_0=E_0$.\cutpar
+
+\bugonpage D138, line 11 from the bottom (10/26/06)
+
+\tenpoint\noindent
+for the bisected interval are $z'_0=z_0$
+and $z''_0=z_0+(Z'_1+Z'_2+\cdots+Z'_n)/2^{l+1}$.
+
+\bugonpage D142, line 3 (06/25/04)
+
+\tenpoint\noindent
+out to hold if and only if $x_0\le x_1$ and $x_2\le x_3$, and either
+$x_1\le x_2$ or $(x_1-x_2)^2\le(x_1-x_0)(x_3-x_2)$.\cutpar
+
+\bugonpage D142, line 8 (10/26/06)
+
+\tenpoint\noindent\quad
+For example, if we start with $(x_1-x_0,x_2-x_1,x_3-x_2)=
+(X_1,X_2,X_3)=(7,-16,39)$, the\cutpar
+
+\bugonpage D142, lines 21--23 (06/25/04)
+
+\tenpoint\noindent
+monotonic
+cubic, then $B(x_0,x_1,x_2,x_3;{1\over2})$ is always between
+$.06[x_0,x_3]$ and $.94[x_0,x_3]$; and it is impossible for $\bar x$
+to be within~$\epsilon$ of such a number. Contradiction!
+(The constant .06 is actually $(2-\sqrt3\,)/4$; the worst case
+occurs for polynomials like $B(0,2-\sqrt3,1-\sqrt3,3;t)$.)
+
+\bugonpage D177, line 18 (06/25/04)
+
+\ninepoint\noindent
+$\\{cur\_x},\\{cur\_y}$: \\{scaled};\quad$\{\,$outputs of \\{skew},
+ \\{unskew}, and a few other routines$\,\}$
+
+\bugonpage D182, lines 27--29 (06/25/04)
+
+\noindent
+{\bf399.\quad}If
+ the segment numbers on the cycle are $t_1$, $t_2$, \dots, $t_m$,
+and if $m\le\\{max\_quarterword}$,
+we have $t_{k-1}\le t_k$ except for at most one value of~$k$. If there are
+no exceptions, $f$ will point to $t_1$; otherwise it will point to the
+exceptional~$t_k$.
+
+\bugonpage D184, line 18 (12/21/02)
+
+\ninepoint\noindent
+\qquad\\{chopped}: \\{integer};\quad
+$\{\,$positive if data truncated, negative if data dangerously large$\,\}$
+
+\bugonpage D184, line 25 (12/21/02)
+
+\ninepoint\noindent
+\quad{\bf if\/} $(\\{internal}[\\{autorounding}]>0)\land(\\{chopped}=0)$
+ {\bf then} \\{xy\_round};
+
+\bugonpage D184, line 27 (12/21/02)
+
+\ninepoint\noindent
+\quad{\bf if\/} $(\\{internal}[\\{autorounding}]>\\{unity})\land
+ (\\{chopped}=0)$ {\bf then} \\{diag\_round};
+
+\bugonpage D184, line 32 (12/21/02)
+
+\ninepoint\noindent
+\qquad{\bf if\/} $(\\{internal}[\\{autorounding}]\le0)\lor(\\{chopped}\ne0)$
+ {\bf then} \\{print\_spec}({\tt\char`",\]after\]subdivision\char`"})
+
+\bugonpage D185, lines 15--19 (12/21/02)
+
+\ninepoint\noindent
+\quad{\bf define} \\{procrustes}({\tt\char`#})${}\equiv{}${\bf if\/}
+ $\\{abs}(\.\#)\ge\\{dmax}$ {\bf then}\par\noindent
+\qquad\qquad\quad{\bf if\/} $\\{abs}(\.\#)>\\{max\_allowed}$ {\bf then}\par
+\noindent\qquad\qquad\qquad{\bf begin} $\\{chopped}\gets1$;\par\noindent
+\qquad\qquad\qquad{\bf if\/} $\.\#>0$ {\bf then} $\.\#\gets\\{max\_allowed}$
+ {\bf else} $\.\#\gets-\\{max\_allowed}$;\par\noindent
+\qquad\qquad\qquad{\bf end}\par\noindent
+\qquad\qquad\quad{\bf else if\/} $\\{chopped}=0$ {\bf then}
+ $\\{chopped}\gets-1$
+
+\bugonpage D185, old line 22 (12/21/02)
+
+\ninepoint\noindent
+\quad$p\gets\\{cur\_spec}$; $k\gets1$; $\\{chopped}\gets0$;
+ $\\{dmax}\gets\\{half}(\\{max\_allowed})$;
+
+\bugonpage D185, old line 28 (12/21/02)
+
+\ninepoint\noindent
+\quad{\bf if\/} $\\{chopped}>0$ {\bf then}
+
+\bugonpage D196, lines 3--8 (06/25/04)
+
+The first job is to fix things so that $x(t)$ plus the horizontal
+pen offset is an integer multiple of the
+current ``granularity'' when the derivative $x'(t)$ crosses through zero.
+The given cyclic path contains regions where $x'(t)\ge0$ and regions
+where $x'(t)\le0$. The \\{quadrant\_subdivide} routine is called into action
+before any of the path coordinates have been skewed, but some of them
+may have been negated. In regions 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 D196, lines 15 and 16 (06/25/04)
+
+\noindent
+current pen might be unsymmetric in such a way that $x$ coordinates
+should round dif-\break ferently in different parts of the curve.
+These considerations imply that round$(x_0)$\cutpar
+
+\bugonpage D200, line 4 (06/25/04)
+
+\noindent
+and that there are similar ways to address other important offsets.\par
+\smallskip\ninepoint
+[Also delete the definitions of \\{north\_south\_edge}, etc.,
+on lines 11--15; those definitions are never used.]
+
+\bugonpage D212, line 18 (06/25/04)
+
+\noindent
+at $(x_0,y_0)$ and ends at $(x_1,y_1)$, it's possible to
+prove (by induction on the length of the truncated\cutpar
+
+\bugonpage D216, bottom line (06/25/04)
+
+\noindent
+we list it twice (with coordinates
+interchanged, so as to make the second octant look like\cutpar
+
+\bugonpage D217, lines 2--10 (06/25/04)
+
+\noindent
+$$\tabskip\centering
+\halign to\hsize{$\hfil#\;\mapsto\;{}$\tabskip=0pt&
+$#\hfil$&\quad in the #\hfil\tabskip\centering\cr
+w_2\;w_2\;w_2&(-5,6)\;(-5,6)\;(-5,6)\cr
+\noalign{\vskip\belowdisplayskip
+\vbox{\noindent\strut as the list of transformed and skewed offsets to use
+when curves that travel in the second octant. Similarly, we will have\strut}
+\vskip\abovedisplayskip}
+w_2\;w_2\;w_2&(7,-6)\;(7,-6)\;(7,-6)&third;\cr
+w_2\;w_2\;w_3\;w_3&(-7,1)\;(-7,1)\;(-3,2)\;(-3,2)&fourth;\cr
+w_3\;w_3\;w_3&(3,-2)\;(3,-2)\;(3,-2)&fifth;\cr
+w_3\;w_3\;w_0\;w_0&(-3,1)\;(-3,1)\;(1,0)\;(1,0)&sixth;\cr
+w_0\;w_0\;w_0&(1,0)\;(1,0)\;(1,0)&seventh;\cr
+w_0\;w_0\;w_0&(-1,1)\;(-1,1)\;(-1,1)&eighth.\cr}$$
+
+\bugonpage D218, lines 2 and 3 (06/25/04)
+
+\noindent
+count followed by pointers to the eight offset lists, followed
+by an indication of the pen's range of values.
+
+\bugonpage D218, line 15 (06/25/04)
+
+The \\{link} field of a pen header node should be \\{null} if and only if
+the pen is a single point.
+
+\bugonpage D227, line 11 (06/25/04)
+
+\noindent
+\\{endpoint}. The cubics all have
+monotone-nondecreasing $x(t)$ and $y(t)$.
+
+\bugonpage D228, lines 4--7 from the bottom (06/25/04)
+
+\noindent
+In odd-numbered octants, the numerator and denominator of this fraction
+will be nonnegative; in even-numbered octants they will both be nonpositive.
+Furthermore we always have $0=s_0\le s_1\le\cdots\le s_n=\infty$. The goal of
+\\{offset\_prep} is to find an offset index~$k$ to associate with
+each cubic, such that the slope $s(t)$ of the cubic satisfies
+
+\bugonpage D231, line 7 (06/25/04)
+
+\ninepoint\noindent
+\quad{\bf if\/} $\\{abs}(\\{du})\ge\\{abs}(\\{dv})$ {\bf then}\quad $\{\,
+ s_{k-1}\le1$ or $s_k\le1\,\}$
+
+\bugonpage D231, line 16 (06/25/04)
+
+\noindent
+and return towards $s_{k-1}$ or $s_k$,
+respectively, yielding another solution of $(*)$.
+
+\bugonpage D246, line 4 from the bottom (06/25/04)
+
+\noindent
+dinate fields. Hence, for example,
+the point $\bigl($$\\{x\_coord}(p)-\\{left\_v}(q),\\{y\_coord}(p)+%
+\\{right\_u}(p)$$\bigr)$
+also\cutpar
+
+\bugonpage D248, lines 14 and 15 (01/06/14)
+
+\noindent
+the $x$-axis at the point
+$\bigl((a^2-b^2)\sin\theta\cos\theta/\rho\bigr)+i\rho$, where
+\vadjust{\vskip1pt}%
+$\rho=\sqrt{(a\sin\theta)^2+(b\cos\theta)^2}$. It reaches
+furthest to the right of~the $y$-axis at the point
+$\sigma+i(a^2-b^2)\sin\theta\cos\theta/\sigma$, where
+$\sigma=$\cutpar
+
+\bugonpage D248, line 24 (06/25/04)
+
+\ninepoint\noindent
+\qquad{\bf else begin} $\\{beta}\gets\\{minor\_axis}$;
+ $\\{gamma}\gets\\{major\_axis}$;
+ $\\{theta}\gets0$;
+
+\bugonpage D251, line 1 (01/06/14)
+
+\noindent
+{\bf536.\quad}Only the coordinates need to be copied, not the class numbers
+and other stuff. At this point either $\\{link}(p)$ or
+$\\{link}(\\{link}(p))$ is \\{null}.
+
+\bugonpage D251, line 10 (01/06/14)
+
+\ninepoint\noindent
+\\{done1}: {\bf if\/} $(\\{link}(p)\ne\\{null})$ {\bf then}
+$\\{free\_node}(\\{link}(p),\\{knot\_node\_size})$;\hfil\break
+\null\quad$\\{link}(p)\gets s$;
+$\\{beta}\gets-\\{y\_coord}(h)$;
+
+\bugonpage D256, line 2 from the bottom (06/25/04)
+
+\noindent
+we have $2^lu_{\min}=2^lu_0+U_{\min}$, etc.; the condition for overlap
+reduces to
+
+\bugonpage D261, line 5 (06/25/04)
+
+\ninepoint\noindent
+\\{tol}: \\{integer};\quad$\{\,$bound on the uncertainty in the overlap test$\,\}$
+
+\bugonpage D262, lines 26 and 27 (06/25/04)
+
+\ninepoint\noindent
+\qquad\quad$\\{uv}\gets\\{uv}+\\{int\_packets}$;\quad$\{\,$switch
+ from \\{l\_packets} to \\{r\_packets}$\,\}$\par\noindent
+\qquad\quad$\\{decr}(\\{cur\_tt})$;
+ $\\{xy}\gets\\{xy}-\\{int\_packets}$;\quad$\{\,$switch
+ from \\{r\_packets} to \\{l\_packets}$\,\}$
+
+\bugonpage D262, line 11 from the bottom (06/25/04)
+
+\ninepoint\noindent
+\qquad$\\{xy}\gets\\{xy}+\\{int\_packets}$;\quad$\{\,$switch
+ from \\{l\_packets} to \\{r\_packets}$\,\}$
+
+\bugonpage D274, line 15 from the bottom (06/25/04)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin if\/} $\\{serial\_no}>\\{el\_gordo}-\\{s\_scale}$
+ {\bf then}\par\noindent
+\qquad\qquad\quad$\\{overflow}(\.{"independent\]variables"},
+ \\{serial\_no}\mathbin{\hbox{\bf div}}\\{s\_scale})$;\par\noindent
+\qquad\qquad$\\{type}(\#)\gets\\{independent}$;
+ $\\{serial\_no}\gets\\{serial\_no}+\\{s\_scale}$;
+ $\\{value}(\#)\gets\\{serial\_no}$;
+
+\bugonpage D309, line 21 (06/25/04)
+
+\noindent
+{\bf670.\quad}We go to \\{restart} instead of to \\{switch},
+because we might enter \\{token\_state} after the error\cutpar
+
+\bugonpage D314, line 6 from the bottom (06/25/04)
+
+\noindent
+\\{macro\_def} or \\{iteration}).
+
+\bugonpage D330, line 1 (06/25/04)
+
+\noindent
+{\bf728.\quad}A {\bf suffix} or {\bf text} parameter will have been scanned as
+a token list pointed to by \\{cur\_exp},\cutpar
+
+\bugonpage D354, lines 15 and 16 from the bottom (06/25/04)
+
+\noindent\hangindent 3em
+$\\{cur\_type}=\\{unknown\_boolean}$ means that \\{cur\_exp} points to a
+capsule node that is in
+a ring of equivalent booleans whose value has not yet been defined.
+
+\bugonpage D354, lines 11 and 12 from the bottom (06/25/04)
+
+\noindent\hangindent 3em
+$\\{cur\_type}=\\{unknown\_string}$ means that \\{cur\_exp} points to a
+capsule node that is in
+a ring of equivalent strings whose value has not yet been defined.
+
+\bugonpage D354, lines 7 and 8 from the bottom (06/25/04)
+
+\noindent\hangindent 3em
+$\\{cur\_type}=\\{unknown\_pen}$ means that \\{cur\_exp} points to a
+capsule node that is in
+a ring of equivalent pens whose value has not yet been defined.
+
+\bugonpage D355, lines 1 and 2 (06/25/04)
+
+\noindent\hangindent 3em
+$\\{cur\_type}=\\{unknown\_path}$ means that \\{cur\_exp} points to a
+capsule node that is in
+a ring of equivalent paths whose value has not yet been defined.
+
+\bugonpage D355, lines 5 and 6 (06/25/04)
+
+\noindent\hangindent 3em
+$\\{cur\_type}=\\{unknown\_picture}$ means that \\{cur\_exp} points to a
+capsule node that is in
+a ring of equivalent pictures whose value has not yet been defined.
+
+\bugonpage D355, lines 21 and 22 (06/25/04)
+
+\noindent
+$\\{cur\_type}=\\{token\_list}$ means that \\{cur\_exp} points to a linked list
+of tokens.
+
+\bugonpage D356, lines 2--3 (06/25/04)
+
+\noindent
+nodes have $\\{name\_type}=\\{capsule}$,
+and their \\{type} field is one of the possibilities for \\{cur\_type}
+listed above.
+Also $\\{link}\le\\{void}$ in capsules that aren't part of a token list.
+
+\bugonpage D368, line 13 (06/25/04)
+
+\ninepoint\noindent
+\qquad\\{my\_var\_flag}: $0\to\\{max\_command\_code}$;\quad$\{\,$initial
+ value of \\{var\_flag}$\,\}$
+
+\bugonpage D378, line 9 from the bottom (06/25/04)
+
+\ninepoint\noindent
+\qquad\quad{\bf begin} $\\{cur\_type}\gets\\{known}$;
+ $\\{cur\_exp}\gets0$;
+ $\\{free\_node}(q,\\{dep\_node\_size})$;
+
+\bugonpage D380, line 12 (06/25/04)
+
+\ninepoint\noindent
+\qquad\qquad{\bf begin} $\\{type}(r)\gets\\{known}$;
+ $\\{value}(r)\gets0$;
+ $\\{free\_node}(p,\\{dep\_node\_size})$;
+
+\bugonpage D390, lines 2 and 3 (06/25/04)
+
+\noindent
+by a previous operation. We must maintain
+the value of $\\{right\_type}(q)$ in cases such as\break
+`|..{curl2}z{0,0\}..|'.
+
+\bugonpage D437, line 1 (06/25/04)
+
+\noindent
+{\bf996.\quad}And \\{do\_assignment} is similar to \\{do\_equation}:
+
+\bugonpage D439, line 10 becomes two lines (06/25/04)
+
+\ninepoint\noindent
+\qquad{\bf begin} $\\{nonlinear\_eq}(v,\\{cur\_exp},\\{false})$;
+ $\\{cur\_type}\gets t$;
+ {\bf goto} \\{done};
+
+\bugonpage D443, line 11 (06/25/04)
+
+\ninepoint\noindent
+\\{done}: {\bf if\/} $\\{eq\_type}(x)\mathbin{\hbox{\bf mod}}\\{outer\_tag}
+ \ne\\{tag\_token}$ {\bf then}
+ $\\{clear\_symbol}(x,\\{false})$;
+
+\bugonpage D452, line 9 (06/25/04)
+
+\noindent
+though they don't necessarily correspond to primitive tokens.
+
+\bugonpage D476, line 12 from the bottom (06/25/04)
+
+\ninepoint\noindent
+\quad{\bf if\/} $\\{nl}-\\{skip\_table}[c]>128$ {\bf then}
+
+\bugonpage D483, line 7 (06/25/04)
+
+\ninepoint\noindent
+\quad$\\{max\_tfm\_dimen}\gets16\ast\\{internal}[\\{design\_size}]-1
+ -\\{internal}[\\{design\_size}]\mathbin{\hbox{\bf div}}\Oct{10000000}$;
+
+\bugonpage D483, lines 15--17 (06/25/04)
+
+\ninepoint\noindent
+\qquad{\bf if\/} $x>0$ {\bf then}
+ $x\gets\\{max\_tfm\_dimen}$ {\bf else}
+ $x\gets-\\{max\_tfm\_dimen}$;\par\noindent
+\qquad{\bf end};\par\noindent
+\quad$x\gets\\{make\_scaled}(x\ast16,\\{internal}[\\{design\_size}])$;
+
+\bugonpage D496, line 2 (06/25/04)
+
+\noindent
+a pointer to
+an edge structure. Its mission is to describe the positive pixels
+in \.{GF} form,\cutpar
+
+\bugonpage D500, line 16 (06/25/04)
+
+\ninepoint\noindent
+\quad$\\{selector}\gets\\{old\_setting}$;
+ $\\{gf\_out}(\\{cur\_length})$;
+ $\\{gf\_string}(0,\\{make\_string})$;
+ $\\{decr}(\\{str\_ptr})$;
+
+\bugonpage D506, lines 8--10 (06/25/04)
+
+\noindent
+\MF\ it says,
+for example, `\.{(preloaded base=plain 1984.2.29)}', showing the year,
+month, and day that the base file was created. We have $\\{base\_ident}=0$
+before \MF's tables are loaded.
+
+\bugonpage D514, line 14 from the bottom (06/25/04)
+
+\noindent
+\.{CMMF}, should also be provided for commonly used bases such as \.{cmbase}.
+
+ % 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 E1, line 3 (01/06/06)
+
+\tenpoint\noindent
+Zillions of alphabets can be generated by the programs in this book.
+All\cutpar
+
+\bugonpage E6, lines 16--19 (12/29/04)
+
+\textindent\bull
+ {\it square\_dots\/} tells whether dots should be square, not rounded;\smallskip
+\textindent\bull
+ {\it hefty\/} tells whether weight-reducing strategies should be used;\smallskip
+\textindent\bull\hangindent\parindent
+ {\it monospace\/} tells whether the characters should all be forced to
+ have the same width;
+
+\bugonpage E7, line 11 (12/21/02)
+
+\ninepoint\indent
+\\{hair}, \\{vair}, \\{stem}, \\{curve}, \\{ess}, \\{flare}, \\{dot\_size},
+ \\{bar}, \\{slab},
+
+\bugonpage E7, line 14 (12/21/02)
+
+\ninepoint\indent
+\\{crisp}, \\{tiny}, \\{fine};
+\medskip\noindent
+and \\{thin\_join} should not be less than \\{fine}.
+
+\bugonpage E19, line 19 (11/07/01)
+
+\tenpoint
+\line{\\{cap\_notch\_cut}\hskip 0pt plus1.5fil46/36\hfil31/36\hfil25/36\hfil
+24/36\hfil22/36\hskip0pt plus3fil25/36}
+
+\bugonpage E41, line 8 (12/21/02)
+
+\ninepoint\noindent\mathchardef\AM="2026 % ampersand
+\quad$\\{extra\_endchar}\gets\\{extra\_endchar}\AM
+ \.{\char`"charcode:=charcode+code\char`\_offset;"}$;
+
+\bugonpage E53, line 7 (12/21/02)
+
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
+\ninepoint\noindent
+{\bf numeric} \\{mid\_thickness};
+ $\\{mid\_thickness}={\rm Vround}$ \frac1/3[$\\{vair},\\{stem}$];
+
+\bugonpage E125, line 6 from the bottom (07/10/05)
+
+\ninepoint\noindent
+$\\{top}\,y_1=\\{top}\,y_6=h$; $z_2=.5[z_3,z_1]+\\{bend}$;
+
+\bugonpage E125, line 3 from the bottom (07/10/05)
+
+\ninepoint\noindent
+{\bf draw} $z_1-\\{flourish\_change}\{\\{up}\}+(0,.15\\{asc\_height})
+ \{\\{up}\}$\par
+\line{\quad$\8{...}\{\\{right}\}(z_1+(2u,0))\8{---}z_6\8{...}\{\\{down}\}z_7$;
+ \hfil\% upper bar}
+
+\bugonpage E146, also pages 164 and 540 (02/08/03)
+
+\eightpoint\noindent
+[The labels on the new illustrations of beta, omega, and spadesuit
+are too large, and the resolution of the shapes is too small.]
+
+\bugonpage E147, line 11 from the bottom (04/23/04)
+
+\ninepoint\noindent
+$x_0=x_1=x_9$; $\\{lft}\,x_{0r}={\rm hround}(1.5u-.5\\{hair})$;
+$x_2=x_4=x_6=x_8=.5w-.25u$;
+
+\bugonpage E147, line 8 from the bottom (04/23/04)
+
+\ninepoint\noindent
+$y_5=.5[y_4,y_6]$; $\\{top}\,y_{6r}-\\{bot}\,y_{4r}=\\{vstem}+\\{eps}$;
+ $\\{bot}\,y_{8r}=-\\{oo}$; $y_7=y_9=.55[y_6,y_8]$;
+
+\bugonpage E149, line 8 from the bottom (04/23/04)
+
+\ninepoint\noindent
+$y_5+.1\\{x\_height}=y_7=.5[y_6,y_8]$; $\\{bot}\,y_{6r}=-\\{oo}$;
+
+\bugonpage E157, line 11 (02/29/08)
+
+\ninepoint\noindent
+\line{{\bf filldraw} $z_{1l}\8{--}z_{2l}\8{...}(x_3,y_{2l})\8{...}z\8{--}
+ z_{1r}\8{--}\rm cycle$;\hfil\% stem}
+
+\bugonpage E161, line 7 from the bottom (04/23/04)
+
+\ninepoint\noindent
+$\\{top}\,y_{1r}=\\{x\_height}+\\{oo}$; $y_2=y_4=.5[y_1,y_3]$;
+ $\\{bot}\,y_{3r}=-\\{oo}$;
+
+\bugonpage E209, line 3 (12/29/04)
+
+\ninepoint
+\rightline{\% This lowercase italic alphabet was prepared by D. E. Knuth
+ in December, 1979,}
+
+\bugonpage E377, lines 3 and 4 from the bottom (12/22/02)
+
+\ninepoint\noindent
+\qquad {\bf path} \\{p\_}; $\\{p\_}=z_{\$\$l}\{z_{@1}-z_{\$\$l}\}\8{...}
+ \\{darkness}[z_{@1},.5[z_{@2},z_{\$\$l}]]\8{...}z_{@2}$\par\noindent
+\qquad\quad$\8{---}z_{\$l}\8{--}z_{\$r}\8{--}z_{@0}\8{--}z_{\$\$r}\8{--}%
+ {\rm cycle}$;\par\noindent
+\qquad{\bf if\/} $(y_{\$\$}>y_\$) \ne ({\rm ypart}\,\hbox{\bf precontrol}\,1
+ \,\hbox{\bf of\/}\,\\{p\_} > {\rm ypart}\,\hbox{\bf postcontrol}\,1\,
+ \,\hbox{\bf of\/}\,\\{p\_})$:\par\noindent
+\qquad\quad$\\{p\_}=z_{\$\$l}\{z_{@1}-z_{\$\$l}\}\8{...}
+ \\{darkness}[z_{@1},.5[z_{@2},z_{\$\$l}]]$\par\noindent
+\qquad\qquad$\8{---}z_{\$l}\8{--}z_{\$r}\8{--}z_{@0}\8{--}z_{\$\$r}\8{--}%
+ {\rm cycle}$;\ {\bf fi}\par\noindent
+\line{\qquad {\bf filldraw} \\{p\_};\hfil \% arm and beak}
+
+\bugonpage E379, lines 17 and 18 become one line (01/06/14)
+
+\ninepoint\noindent
+{\bf else}: $\\{rt}\,x_{6r}={\rm hround}(w-1.5u)$;
+$y_{6}=y_{5l}+\\{eps};$ {\bf fi}
+
+\bugonpage E379, bottom line of the program (01/06/14)
+
+\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
+\ninepoint\noindent
+{\bf math\_fit}$(0,\\{ic}\SH-2.5u\SH)$;
+{\bf penlabels}$(0,1,2,3,4,5,6,7)$;
+{\bf endchar};
+
+\bugonpage E489, bottom line (06/25/04)
+
+\ninepoint\noindent
+{\bf labels}$(1,2,3,4,5,6)$; {\bf endchar};\hfil\break
+[Labels `\.5' and `\.6' should also be added to
+ the lower illustration on page E488.]
+
+\bugonpage E545, line 11 from the bottom (12/29/04)
+
+\parindent=36pt
+The most important general routine in |cmbase| is probably the {\it pos}\cutpar
+
+\bugonpage E551, line 3 from the bottom (12/29/04)
+
+\noindent quantities needed in the |calu|
+programs are also established at this time.
+
+
+\bugonpage E577, right column (12/23/02)
+
+\eightpoint\noindent
+\\{p\_}\kern1pt, 305, 377.\par\noindent
+{\bf padded}, 103--111, 117--121, $\underline{549}$.
+
+\bugonpage E578, left column (12/23/02)
+
+\eightpoint\noindent
+{\bf postcontrol}, 347, 377.\par\noindent
+{\bf precontrol}, 347, 377.
+
+ \bye