diff options
author | Karl Berry <karl@freefriends.org> | 2009-09-28 15:26:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-09-28 15:26:51 +0000 |
commit | a7413da58c33f9b31d87d35b556eb455cefa06eb (patch) | |
tree | b59f692447d22dc87daf0b5dfbeebd9efade46f2 /Master/texmf-dist/doc/generic/knuth/source/errata/errata.tex | |
parent | 260b43e151d5de7cbb40d61e955924b58dc0c98d (diff) |
re-update knuth, no need to move source/
git-svn-id: svn://tug.org/texlive/trunk@15510 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/knuth/source/errata/errata.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/knuth/source/errata/errata.tex | 1554 |
1 files changed, 0 insertions, 1554 deletions
diff --git a/Master/texmf-dist/doc/generic/knuth/source/errata/errata.tex b/Master/texmf-dist/doc/generic/knuth/source/errata/errata.tex deleted file mode 100644 index 6842a82cc6e..00000000000 --- a/Master/texmf-dist/doc/generic/knuth/source/errata/errata.tex +++ /dev/null @@ -1,1554 +0,0 @@ -% Bugs (sigh) in Computers \& Typesetting --- the most recent errata - -\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\/} since the publication of the second ``Millennium Edition'' -at the close of the year 2001. (More precisely, it lists errors corrected -since the 16th printing of Volume~A, the 7th printing -of Volume~B, the 6th printing of Volume~C, the 4th printing of Volume~D, -and the 5th printing 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. Some (or all) of these -errors have been corrected in the most recent printings. -\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 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 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 {efficiency} 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 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 Bvii, bottom two lines (12/20/02) - -\eightpoint\noindent -all of those changes. -I~now believe that the final bug was discovered and removed on -27~February 2008. -The finder's fee has converged to \$327.68. - -\hsize=35pc - -\bugonpage B2, line 10 from the bottom (02/29/08) - -\ninepoint\noindent\hskip10pt -{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$% -{\tt This\]is\]TeX,\]Version\]3.1415926\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 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 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 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 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 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 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 Dvii, bottom two lines (02/29/08) - -\eightpoint\noindent -corporates all of those changes. -I~now believe that the final bug was discovered on 27~December 2004, -and removed in version 2.718281. -The finder's fee has converged to \$327.68. - -\hsize=35pc -\parindent=1em - -\bugonpage D2, line $-17$ (02/27/08) - -\ninepoint\noindent -{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$% -{\tt This\]is\]METAFONT,\]Version\]2.718281\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 \&{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, line 24 (06/25/04) - -\ninepoint\noindent -\qquad{\bf else begin} $\\{beta}\gets\\{minor\_axis}$; - $\\{gamma}\gets\\{major\_axis}$; - $\\{theta}\gets0$; - -\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 (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\_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 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) - -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 |