% Bugs (sigh) in Computers \& Typesetting \input manmac \font\sltt=cmsltt10 \font\niness=cmss9 \font\ninessi=cmssi9 \proofmodefalse \raggedbottom \output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}} \def\today{\number\day\ \ifcase\month\or Jan\or Feb\or Mar\or Apr\or May\or Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi \ \number\year} \def\cutpar{{\parfillskip=0pt\par}} \def\rhead{Bugs in {\tensl Computers \& Typesetting, 1990}} \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, between 30 September 1989 (when the revisions for \TeX\ Version 3.0 and \MF\ Version 2.0 were made) and December 31, 1990. 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 A124, lines 18--21 (9/5/90) \ninepoint\noindent Floating insertions can be accommodated as a special case of split insertions, by making each floating topinsert start with a small penalty, and by having zero as the associated |\floatingpenalty|; non-floating insertions like footnotes are accommodated by associating larger penalties with split insertions (see Appendix~B). \bugonpage A137, lines 2 and 3 from the bottom (11/9/90) {\eightssi \rightline{and you shouldn't even be reading this manual,} \rightline{which is undoubtedly all English to you.} } \bugonpage A141, line 15 from the bottom (10/18/90) \tenpoint\noindent Thus if you type `|$1\over2$|' (in a text) you get $1\over2$, namely style $S$ over style~$S'$;\cutpar \bugonpage A156, line 2 (11/18/89) \ninepoint Commands like |\mathchardef\alpha="010B| are used in Appendix~B to define\cutpar \bugonpage A165, lines 2--3 (8/13/90) \ninepoint Type the formula $\bf\bar x^{\rm T}Mx={\rm0}\iff x=0$, using as few keystrokes as possible. \ (The first `0' is roman, the second is bold. The superscript `T' is roman.) \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 A317, line 17 (5/17/90) \ninepoint |\pretolerance=9999 \tolerance=9999 \parindent=0pt| \bugonpage A321, lines 16--17 (8/13/90) \ninepoint\noindent \hbox to\parindent{\bf\hss18.6.\enspace}\ignorespaces |$\bf\bar x^{\rm T}Mx={\rm0}\iff x=0$|. \ (If you typed a space between |\rm| and~|0|, you wasted a keystroke; but don't feel guilty about it.) \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 C11, replacement for second quotation at bottom of page (9/27/90) \begingroup \eightpoint \let\tt=\ninett \baselineskip 10pt \parfillskip \z@ \interlinepenalty 10000 \leftskip \z@ plus 40pc minus \parindent \let\rm=\eightss \let\sl=\eightssi \everypar{\sl} \def\par{\ifhmode\/\endgraf\fi}\obeylines To anyone who has lived in a modern American city (except Boston) at least one of the underlying ideas of ^{Descartes}' analytic geometry will seem ridiculously evident. Yet, as remarked, it took mathematicians all of two thousand years to arrive at this simple thing. \author ERIC TEMPLE ^{BELL}, {\sl Mathematics: Queen and Servant of % Science\/} (1951) % p123 \endgroup \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 C262, lines 19--21 (11/9/90) \ninepoint\noindent for commonly occurring idioms. For example, `{\bf stop} |"hello"|' displays `|hello|' on the terminal and waits until \ is typed. \beginlines |def |^|upto|| = step 1 until enddef; def |^|downto|| = step -1 until enddef;| \endgroup \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 C329, line 25 (12/29/90) \ninepoint\noindent which can be used to specify a nonstandard file area or directory name for the gray\cutpar \bugonpage C337, line 4 from the bottom (1/7/90) \ninepoint\noindent |\def\startfont{\font\testfont=\fontname \spaceskip=0pt| \bugonpage C347, left column (9/27/90) \eightpoint\noindent Bell, Eric Temple, 11. \bugonpage C349, left column (9/27/90) \eightpoint\noindent Descartes, Ren\'e, 6, 11, 19. \bugonpage C356, right column (9/27/90) \eightpoint\noindent [remove the entry for Rex Stout.] \bugonpage C358, right column (9/27/90) \eightpoint\noindent [remove the entry for Nero Wolfe.] % 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 Exiii, replacement for last four lines (4/30/90) \textindent{\bull}``AMS Euler---A new typeface for mathematics'' by Donald~E. Knuth and Hermann Zapf, {\sl Scholarly Publishing\/ \bf21} (1989), 131--157. \ {\it The story of a design project that helps bridge the gulf between mathematics and art.} \smallskip \textindent{\bull}``Meta-Marks: Preliminary studies for a Pandora's Box of shapes'' by Neenie Billawala, Stanford Computer Science report 1259 (Stanford, California, July 1989), 132~pp. \ {\it Lavishly illus\-trated studies in parameter variation, leading to the design of a new typeface called Pandora.} \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