% Bugs (sigh) in Computers \& Typesetting --- the most recent errata \input manmac \font\sltt=cmsltt10 \font\niness=cmss9 \font\ninessi=cmssi9 \proofmodefalse \raggedbottom \output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}} \def\today{\number\day\ \ifcase\month\or Jan\or Feb\or Mar\or Apr\or May\or Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi \ \number\year} \def\cutpar{{\parfillskip=0pt\par}} \def\rhead{Bugs in {\tensl Computers \& Typesetting 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 corrections made to {\sl Computers \& Typesetting}, Volumes A,~C, and E\null, since 30 September 1989 (when the revisions for \TeX\ Version 3.0 and \MF\ Version 2.0 were made). Corrections made to the softcover version of {\sl The \TeX book\/} are the same as corrections to Volume~A\null. Corrections to the softcover version of {\sl The \slMF\kern1ptbook\/} are the same as corrections to Volume~C\null. Some of the corrections below have already been made in reprintings of the books. Hundreds of changes, too many to list here, have been made to Volumes B~and~D because of the upgrades to \TeX\ and \MF\null. Readers who need up-to-date information on the \TeX\ and \MF\ programs should refer to the |WEB| source files until new printings of Volumes B~and~D are issued. \looseness=-1 % volume A \bugonpage A99, line 4 from the bottom (2/22/90) \ninepoint\indent to be chosen because there was no feasible way to keep total demerits small. \bugonpage A156, line 2 (11/18/89) \ninepoint Commands like |\mathchardef\alpha="010B| are used in Appendix~B to define\cutpar \bugonpage A171, lines 24--26 (3/13/90) \ninepoint\noindent formula produces a result exactly equivalent to `|\left(|\|\right)|', when the \ doesn't end with Punct, except that the {delimiters} are forced to be of the |\big| size regardless of the height and depth of the subformula. \bugonpage A193, lines 16--18 (12/2/89) \ninepoint\noindent line if you insert `^|\noalign||{|^|\break||}|' after the |\cr| for that line. You can prohibit {\sl all\/} breaks in an |\eqalignno| if you set ^|\interdisplaylinepenalty||=10000|; or you can enclose the whole works in a ^|\vbox|: \bugonpage A233, bottom 9 lines, and top three on next page (12/2/89) \danger The |\+| macro in Appendix~B works by putting the \ for each column that's followed by~|&| into an hbox as follows: \begindisplay |\hbox to |\|{|\|\hss}| \enddisplay The ^|\hss| means that the text is normally flush left, and that it can extend to the right of its box. Since |\hfill| is ``more infinite'' than |\hss| in its ability to stretch, it has the effect of right-justifying or centering as stated above. Note that |\hfill| doesn't shrink, but |\hss| does; if the text doesn't fit in its column, it will stick out at the right. You could cancel the shrinkability of |\hss| by adding ^|\hfilneg|; then an oversize text would produce an overfull box. You could also center some text by putting `|\hss|' before it and just `|&|' after it; in that case the text would be allowed to extend to the left and right of its column. The last column of a |\+|~line (i.e., the column entry that is followed by |\cr|) is treated differently: The \ is simply put into an hbox with its natural~width.\looseness=-1 \bugonpage A254, line 5 from the bottom (10/5/89) \ninepoint\noindent |\vsize| hasn't changed, and if all insertions have been held in place, the same page break\cutpar \bugonpage A286, lines 30--32 (3/13/90) \ninepoint\noindent reading and expanding this \cstok{par} token, \TeX\ will see the \ token again. \ (The current meaning of the control sequence ^|\par| will be used; \cstok{par} might no longer stand for \TeX's |\par| primitive.) \bugonpage A290, lines 12--13 (3/24/90) \ninepoint\noindent simply a single Ord atom without subscripts or superscripts, or an Acc whose nucleus is an Ord, the enclosing braces are effectively removed. \bugonpage A340, nonblank line 11 (3/13/90) \tenpoint\noindent |\topglue 1in % This makes an inch of blank space (1in=2.54cm).| \bugonpage A342, line 6 ( 3/13/90) \tenpoint\noindent |\topglue| but not |\hglue|. It does not illustrate |\raggedright| setting of para-\cutpar \bugonpage A346, lines 20--21 (12/3/89) \ninepoint\noindent streams used by ^|\read| and ^|\write|, to math ^{families} used by ^|\fam|, to sets of hyphenation rules used by ^|\language|, and to insertions (which require ^|\box|, ^|\count|, ^|\dimen|, and ^|\skip| registers all having the same number). \bugonpage A346, line 20 from the bottom (12/3/89) \ninepoint\noindent manent value. These macros use registers |\count10| through |\count20| to hold the\cutpar \bugonpage A346, lines 8--13 from the bottom (12/3/89) \ninepoint\noindent number was allocated. The inside story of how allocation is actually performed should be irrelevant when the allocation macros are used at a higher level; you mustn't assume that |plain.tex| really does allocation in any particular way. \beginlines |\count10=22 % this counter allocates \count registers 23, 24, 25, ...| \endgroup \bugonpage A347, lines 2--5 (12/3/89) \ninepoint{\parindent=0pt |\count19=0 % this counter allocates language codes 1, 2, 3, ...|\parbreak |\count20=255 % this counter allocates insertions 254, 253, 252, ...|\parbreak |\countdef\insc@unt=20 % nickname for the insertion counter|\parbreak |\countdef\allocationnumber=21 % the most recent allocation|\parbreak |\countdef|^|\m@ne||=22 \m@ne=-1 % a handy constant|\par} \bugonpage A347, new line after former line 17 (12/3/89) \ninepoint\noindent |\outer\def|^|\newlanguage||{\alloc@9\language\chardef\@cclvi}| \bugonpage A352, new line before line 6 from the bottom (3/13/90) \ninepoint\noindent |\def\topglue{\nointerlineskip \vglue-\topskip \vglue} % for top of page| \bugonpage A355, line 8 from the bottom (12/3/89) \ninepoint\noindent | \noindent{\bf#1.\enspace}{\sl#2\par}%| \bugonpage A363, lines 8--9 from the bottom (12/8/89) {\ninepoint\parindent=0pt | \if@mid \dimen@=\ht0 \advance\dimen@ by\dp\z@ |% |\advance\dimen@ by12\p@|\parbreak% | \advance\dimen@ by\pagetotal \advance\dimen@ by-\pageshrink| \par} \bugonpage A375, line 27 (10/30/89) \ninepoint\noindent depending on whether or not |\t|~contains an asterisk. \ (Do you see why?) \ And here's\cutpar \bugonpage A393, lines 3--5 from the bottom (12/3/89) \ninepoint |\hskip-.17em plus-3em minus.11em|\par |\vadjust{}\penalty10000|\par |\leaders\copy\dbox\hskip3.3\wd\dbox plus1fil minus.3\wd\dbox| \bugonpage A444, line 4 (3/13/90) \ninepoint\noindent Shift box~$x$ down by ${1\over2}\bigl(h(x)-d(x)\bigr) -a$, where $a=\sigma_{22}$, so that the operator character\cutpar \bugonpage A450, line 8 (12/3/89) \def\\#1{$_{\kern\scriptspace#1}$} \ninepoint\indent {\qquad\tt\\0h\\0e\\0n\\5a\\0t\\0 \\1n\\0a\\0 \\0n\\2a\\0t\\0 \\1t\\0i\\0o\\0 \\2i\\0o\\0 \\0o\\2n\\0} \bugonpage A450, line 14 (12/3/89) \ninepoint {\tt.\\0h\\0y$_3$p\\0h\\0e\\2n\\5a\\4t\\2i\\0o\\2n\\0.} \bugonpage A450, lines 19 and 20 (12/3/89) \ninepoint\vskip-10pt \begindisplay \tt\\0o\\2n\\0 \\0o\\0n\\1c\\0 \\1c\\0a\\0 \\1n\\0a\\0 \\0n\\2a\\0t\\0 \\1t\\0i\\0o\\0 \\2i\\0o\\0 \\0o\\2n\\0 \enddisplay and this yields `{\tt\\0c\\0o\\2n\\1c\\0a\\0t\\0e\\1n\\2a\\1t\\2i\\0o\\2n\\0}', i.e., `|con-cate-na-tion|'. \bugonpage A455, last lines before the quotes (11/30/89) \ninepoint\noindent sit yourself (even in restricted horizontal mode) by saying ^|\setlanguage|\;\break this changes the current language but it does not change |\language|. Each what-\break sit records the current |\lefthyphenmin| and |\righthyphenmin|. \bugonpage A467, right column (12/3/89) \eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% |\hfilneg|, 72, 100, 233, 283, 285, 290, 397. \bugonpage A468, right column (12/2/89) \eightpoint |\interdisplaylinepenalty|, {\it193}, 349, 362. \bugonpage A469, left column (12/3/89) \eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% |\language| (hyphenation method), 273, 346, $\underline{455}$. \bugonpage A469, right column (10/30/89) \eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% |\lefthyphenmin|, 273, {\it364}, $\underline{454}$, 455. \bugonpage A472, left column (12/3/89) \eightpoint |\newlanguage|, 346, $\underline{347}$. \bugonpage A476, left column (10/30/89) \eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}% |\righthyphenmin|, 273, {\it364}, $\underline{454}$, 455. \bugonpage A479, new entry (3/13/90) \eightpoint |\topglue|, {\it340}, $\underline{352}$. \bugonpage A480, right column (3/13/90) \eightpoint |\vglue|, $\underline{352}$, {\it408}. \bugonpage A483, the Providence lines (10/8/89) \noindent[Change the first one to \begintt Providence RI 02940\kern.05em-9506, USA. \endtt Then the second one will be \begindisplay Providence RI 02940\kern.05em-9506, USA. \enddisplay The second line will also appear on page C361.] % volume B \hsize=35pc \def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers \def\to{\mathrel{.\,.}} % double dot, used only in math mode % volume C \hsize=29pc \def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers \bugonpage C220, top line (3/13/90) \ninepoint\noindent modes you get into by hitting `|S|', `|R|', or `|Q|', respectively, in response to error messages\cutpar \bugonpage C252, line 16 (3/13/90) \ninepoint\indent | for i:=1 upto n_windows: display blankpicture inwindow i; endfor| \bugonpage C264, lines 4--6 from the bottom (3/24/90) \ninepoint\noindent |vardef |^|counterclockwise|| primary c =|\par\noindent | if turningcheck>0:|\par\noindent | interim |^|autorounding||:=0;|\par\noindent | if |^|turningnumber|| c <= 0: reverse fi fi c enddef;| \bugonpage C306, line 6 (3/13/90) \ninepoint\noindent | ligtable "'": "'" =: oct"042", % close quotes| \bugonpage C309, second line from bottom (11/18/89) \ninepoint\noindent | define_whole_vertical_blacker_pixels(vair,slab,| $\cdots$ |);| \bugonpage C315, line 9 from the bottom (1/2/90) \ninepoint\noindent units of printer's points): \bugonpage C337, line 4 from the bottom (1/7/90) \ninepoint\noindent |\def\startfont{\font\testfont=\fontname \spaceskip=0pt| % Volume D \hsize=35pc \def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers \def\to{\mathrel{.\,.}} % double dot, used only in math mode % volume E \hsize=29pc \def\dashto{\mathrel{\hbox{-\kern-.05em}\mkern3.9mu\hbox{-\kern-.05em}}} \bugonpage E325, line 13 (3/13/90) \ninepoint\noindent {\bf if} \\{serifs}: $x_{3r}=\max(x_{1r},{\rm hround}(x_1+.5\\{dot\_diam} -.2\\{jut})-.5\\{tiny})$\par\noindent {\bf else}: $x_3=x_1-.5$ {\bf fi}; \bugonpage E483, line 4 (3/13/90) \ninepoint \rightline{\% Character codes \oct{000}--\oct{100} and \oct{133}--\oct{177} are generated.} \bugonpage E544, line 5 (3/13/90) \ninepoint\noindent \hskip 3em\vdots\hskip2em\raise2pt\hbox{(the rest of the program for `$\gamma$' in |greekl| comes here)} \bugonpage E557, line 9 (3/13/90) \ninepoint \rightline{\sl`Nevermore---Ah nevermore.'\thinspace''} \bugonpage E558, line 21 (3/13/90) \eightpoint\noindent |Clasp a rare and radiant maiden whom the angels name Lenore."| \bugonpage E570, lines 27--28 look better with proper skewchars (3/13/90) \begingroup \tenpoint\bf \textfont0=\tenbf \scriptfont0=\sevenbf \font\boldi=cmmib10 \font\boldsy=cmbsy10 \skewchar\boldi='177 \skewchar\boldsy='60 \textfont1=\boldi \textfont2=\boldsy \noindent Here's some bold 10-point math: ${\hat A}^\Gamma_0 +{\check B}^\Delta_1 -{\tilde C}^\Theta_2 \times{\acute D}^\Lambda_3 /{\grave E}^\Xi_4 \oplus{\dot F}^\Pi_5 \ominus{\ddot G}^\Sigma_6 \otimes{\breve H}^\Phi_7 \oslash{\bar I}^\Psi_8 \odot{\vec J}^{\,\Omega}_9$. \endgroup \bye