1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
|
% Bugs (sigh) in Computers \& Typesetting
\input manmac
\font\sltt=cmsltt10
\font\niness=cmss9
\font\ninessi=cmssi9
\proofmodefalse
\raggedbottom
\output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}}
\def\today{\number\day\
\ifcase\month\or
Jan\or Feb\or Mar\or Apr\or May\or Jun\or
Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi
\ \number\year}
\def\cutpar{{\parfillskip=0pt\par}}
\def\rhead{Bugs in {\tensl Computers \& Typesetting, 1992}}
\def\bugonpage#1(#2) \par{\bigbreak\tenpoint
\hrule width\hsize
\line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule width\hsize
\nobreak\medskip}
\def\buginvol#1(#2) \par{\bigbreak\penalty-1000\tenpoint
\hrule width\hsize
\line{\lower3.5pt\vbox to13pt{}Volume #1\hfil(#2)}\hrule width\hsize
\nobreak\medskip}
\def\slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
\def\0{\raise.7ex\hbox{$\scriptstyle\#$}}
\newcount\nn
\newdimen\nsize \newdimen\msize \newdimen\ninept \ninept=9pt
\newbox\eqbox \setbox\eqbox=\hbox{\kern2pt\eightrm=\kern2pt}
\tenpoint
\noindent This is a list of all corrections made to {\sl Computers \&
Typesetting\/} between 15 March 1992 and the publication of the final
printed versions of those books.
Corrections made to the softcover version of {\sl The \TeX book\/} are
the same as corrections to Volume~A\null. Corrections to the softcover
version of {\sl The \slMF\kern1ptbook\/} are the same as corrections
to Volume~C\null. Changes to Volume~B refer to the fourth printing
(1991), which differs markedly from earlier printings because it includes
all the revisions for \TeX3.0. Changes to Volume~D refer to the third
printing (1991), which differs markedly from earlier printings because
it includes all the revisions for \MF\kern1pt2.0. Changes to the mini-indexes
and master indexes of Volumes B and~D are not shown here unless they are
not obviously derivable from what has been shown.
\looseness=-1
% volume A
\bugonpage A23, line 14 (9/1/92)
\tenpoint\noindent
a command and you type `|tex|' or `|run| |tex|' or something like that.)
\bugonpage A53, line 23 (7/7/92)
\tenpoint\noindent
{\sl scientiarum imperialis petropolitan\ae\/}
became {\sl Akademi\t\i a Nauk SSSR, Doklady}.
\bugonpage A146, line 2 from the bottom (2/25/93)
|$\bigl|\|| |\||x|\||-|\||y|\|| \bigr|\||$|\hskip1.25in
$\bigl\vert\vert x\vert-\vert y\vert\bigr\vert$
\bugonpage A149, lines 3--5 (2/25/93)
\noindent
example, we used |\bigl| and |\bigr| to produce $\bigl\vert\vert x\vert-
\vert y\vert\bigr\vert$ in one of the previous illustrations; |\left| and
|\right| don't make things any bigger than necessary, so
`|$\left|\||\left|\||x\right|\||-\left|\||y\right|\||\right|\||$|'
yields only `$\left\vert
\left\vert x\right\vert -\left\vert y\right\vert \right\vert$'.\cutpar
\bugonpage A158, line 18 from the bottom (2/25/93)
\ninepoint
are four possibilities for each of these fields.
A field can be
\bugonpage A282, line 9 from the bottom (7/8/92)
\ninepoint\noindent
category~4) are intercepted by the alignment
process, en route to \TeX's stomach, so\cutpar
\bugonpage A293, new paragraph after line 15 (4/9/92)
\ninepoint
\textindent{$\bull$}|\unhbox|\<8-bit number>, |\unhcopy|\<8-bit number>.\enskip
The specified box register must be void. Nothing happens.
\bugonpage A309, line 23 (7/7/92)
\ninepoint\noindent
|petropolitan\ae\/} became {\sl Akademi\t\i a Nauk SSSR, Doklady}.|
\bugonpage A320, line 11 (1/26/93)
\ninepoint
\ansno17.12:
|$\bigl(x+f(x)\bigr) \big/ \bigl(x-f(x)\bigr)$|. \ Notice especially the\cutpar
\bugonpage A349, second line from the bottom (7/8/92)
\ninepoint\noindent
expand to a ^\<number> en route to \TeX's
``stomach''; |\multiply| wouldn't work, because\cutpar
\bugonpage A358, bottom line (2/3/93)
\ninepoint\noindent
it is easy to define ^|\ldots| and ^|\cdots| macros that
give the proper spacing in most\cutpar
\bugonpage A370, lines 28 and 29 (9/1/92)
\def\Russiantt#1{{\tt\hbox to.5em{\hss\eighttt\char#1\hss}}}
\ninepoint\noindent
example, if \TeX\ is implemented for
a purely ^{Cyrillic} ^^{Russian} keyboard, the letter `\Russiantt5' should be
assigned to code \oct{160} and `\Russiantt{`T}' to code \oct{164}, so that
`\Russiantt5\Russiantt{`T}' still means `|pt|'; or else control\cutpar
\bugonpage A377, lines 17--24 (5/4/92)
\ninepoint
\begintt
\def\sanswitch{\let\n@xt\endsanity \ifx\next\endsanity
\else\ifcat\noexpand\next\stoken\aftergroup\space\let\n@xt=\eat
\else\ifcat\noexpand\next\bgroup\aftergroup{\let\n@xt=\eat
\else\ifcat\noexpand\next\egroup\aftergroup}\let\n@xt=\eat
\else\let\n@xt=\copytok\fi\fi\fi\fi \n@xt}
\def\eat{\afterassignment\sanitize \let\next= }
\long\def\copytok#1{\ifcat\noexpand#1\relax\aftergroup\noexpand\fi
\ifcat\noexpand#1\noexpand~\aftergroup\noexpand\fi
\endtt
\bugonpage A455, line 25 (2/26/93)
\ninepoint\noindent
rent language'' is set equal to |\language|. Whenever a
character is added to the cur-\cutpar
\bugonpage A459, second line of entry for ampersand (3/22/92)
\eightpoint\indent\qquad
{\it231--248}, $\underline{282}$, {\it339}, 344, 385--386, 428.
\bugonpage A461, right column (2/19/93)
\eightpoint
\newbox\astbox \setbox\astbox=\hbox to0pt{\hss\lower1pt\hbox{*}}
\def\prim#1{\par\indent\copy\astbox{\tt\char`\\#1}}
\prim{chardef}, 44, 121, 155, 210, 214, 215, 271,\par
\indent\qquad $\underline{277}$, 336, {\it343}, {\it345}, {\it356}, 452.\par
\indent\<chardef token>, $\underline{271}$, 283, 286, 289.
\bugonpage A467, left column (2/25/93)
\eightpoint
Greek, 127--128, 137, 156, 164, 319,\par
\indent\qquad 358, 430, 434.
\bugonpage A470, left column (2/25/93)
\eightpoint
margins, {\sl see\/} |\hoffset|, |\hsize|, |\narrower|.
\bugonpage A471, left column (2/19/93)
\eightpoint
\prim{mathchardef}, 155, 199, 214, 215, 271,\par
\indent\qquad 277, 289, 336, {\it358}, {\it394}.\par
\indent\<mathchardef token>, $\underline{271}$, 289.
\bugonpage A474, right column (3/22/92)
\eightpoint
pound sterling, 54, {\it339}, 428.
\bugonpage A477, right column (3/22/92)
\eightpoint
sterling, 54, {\it339}, 428.
\bugonpage A480, left column (4/9/92)
\eightpoint
\prim{unhbox}, 120, 283, $\underline{285}$, 293, {\it354}, {\it356},
{\it399}.\par
\prim{unhcopy}, 120, 283, $\underline{285}$, 293, {\it353}.
\bugonpage A481, left column (2/25/93)
\eightpoint
whatsits, 95, 110, 157, 226--229, 455.
\bugonpage A483, lines 15--21 (2/25/93)
{\tt P.O. Box 869\par
Santa Barbara, CA 93102-0869 USA.\par
|}|}
\smallskip\noindent
Don't delay, write today! That number again is
\smallskip
{\obeylines
\TeX\ Users Group
P.O. Box 869
Santa Barbara, CA 93102-0869 USA.
}
% volume B
\hsize=35pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\to{\mathrel{.\,.}} % double dot, used only in math mode
\bugonpage B2, line 10 from the bottom (2/27/93)
\ninepoint\noindent\hskip10pt
{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$%
{\tt This\]is\]TeX,\]Version\]3.1415\char'23}\quad
$\{\,$printed when \TeX\ starts$\,\}$
\bugonpage B89, line 12 (2/27/93)
\tenpoint
\noindent\hskip10pt
In horizontal mode, the \\{prev\_graf} field is used for initial language data.
\bugonpage B89, line 20 (2/27/93)
\ninepoint
\noindent\hskip20pt
\\{pg\_field}, \\{ml\_field}: \\{integer}; \ \\{aux\_field}: \\{memory\_word};
\par
\noindent [Also delete the definitions of \\{lhmin} and \\{rhmin}, lines
32 and 33.]
\bugonpage B90, line 13 (2/27/93)
\ninepoint
\noindent\hskip10pt
$\\{prev\_depth}\gets\\{ignore\_depth}$; \ $\\{mode\_line}\gets0$; \
$\\{prev\_graf}\gets0$;
\bugonpage B91, top three lines (2/27/93)
\ninepoint
\noindent\hskip20pt
{\bf if\/} $m=\\{hmode}$ {\bf then if\/} $\\{nest}[p].\\{pg\_field}\ne
\oct{40600000}$ {\bf then}\par\noindent\hskip40pt
{\bf begin} \\{print}({\tt\char`\"\](language\char`\"}); \
\\{print\_int}(\\{nest}[$p$].\\{pg\_field} {\bf mod} \oct{200000});\par
\noindent\hskip40pt
\\{print}({\tt\char`\":hyphenmin\char`\"}); \
\\{print\_int}(\\{nest}[$p$].\\{pg\_field} {\bf div} \oct{20000000}); \
\\{print\_char}({\tt\char`\",\char`\"});\par\noindent\hskip40pt
\\{print\_int}((\\{nest}[$p$].\\{pg\_field} {\bf div} \oct{200000})
{\bf mod} \oct{100}); \ \\{print\_char}({\tt\char`\")\char`\"});
\bugonpage B344, lines 21 and 22 (2/27/93)
\tenpoint\noindent\hskip10pt
This code assumes that a \\{glue\_node} and a \\{penalty\_node} occupy the
same number of \\{mem}~words.
\bugonpage B344, line 30 (2/27/93)
\ninepoint\noindent\hskip10pt
$\\{link}(\\{tail})\gets\\{new\_param\_glue}(\\{par\_fill\_skip\_code})$; \
$\\{init\_cur\_lang}\gets\\{prev\_graf}$ {\bf mod} \oct{200000};\par
\noindent\hskip10pt
$\\{init\_l\_hyf}\gets\\{prev\_graf}$ {\bf div} \oct{20000000}; \
$\\{init\_r\_hyf}\gets(\\{prev\_graf}$ {\bf div} \oct{200000}) {\bf mod}
\oct{100}; \
\\{pop\_nest};
\bugonpage B353, line 4 (2/27/93)
\tenpoint\noindent\hskip10pt
Kern nodes do not disappear at a line break unless they are \\{explicit}.
\bugonpage B353, lines 15 and 16 (2/27/93)
\ninepoint\noindent\hskip20pt
\\{math\_node}: $\\{break\_width}[1]\gets\\{break\_width}[1]-\\{width}(s)$;\par
\noindent\hskip20pt
\\{kern\_node}: {\bf if\/} $\\{subtype}(s)\ne\\{explicit}$
{\bf then goto} \\{done}\par\noindent\hskip30pt
{\bf else} $\\{break\_width}[1]\gets\\{break\_width}[1]-\\{width}(s)$;
\bugonpage B354, lines 6 and 7 (2/27/93)
\tenpoint\noindent
will be the background
plus $l_1$, so the length from \\{cur\_p} to \\{cur\_p} should be
$\gamma+l_0+l_1-l$.
If the post-break text of the discretionary is empty, a break may also
discard~$q$; in that unusual case we subtract the length of~$q$ and any
other nodes that will be discarded after the discretionary break.
\bugonpage B354, line 18 (2/27/93)
\ninepoint\noindent\hskip20pt
{\bf begin} $\langle\,$Add the width of node $s$ to \\{break\_width}{\sevenrm
\kern.5em842}$\,\rangle$;
\bugonpage B354, line 22 (2/27/93)
\ninepoint\noindent\hskip10pt
{\bf if\/} $\\{post\_break}(\\{cur\_p})=\\{null}$ {\bf then}
$s\gets\\{link}(v)$;\quad$\{\,$nodes may be discardable after the break$\,\}$
\bugonpage B355, top line (2/27/93)
\ninepoint\noindent
{\tenbf842.\quad}$\langle\,$Add the width of node $s$ to
\\{break\_width}{\sevenrm\kern.5em842}$\,\rangle\equiv$
\bugonpage B355, lines 9--14 (2/27/93)
\ninepoint\noindent\hskip20pt
$\\{hlist\_node},\\{vlist\_node},\\{rule\_node},\\{kern\_node}$:
$\\{break\_width}[1]\gets\\{break\_width}[1]+\\{width}(s)$;\par
\noindent\hskip20pt
{\bf othercases} \\{confusion}({\tt\char`\"disc2\char`\"})\par
\noindent\hskip20pt
{\bf endcases}
\bugonpage B364, line 10 (2/27/93)
\tenpoint\noindent
a glue node, penalty node, explicit kern node, or math node.
\bugonpage B366, line 11 from the bottom (2/27/93)
\ninepoint\noindent
\\{kern\_node}: {\bf if\/} $\\{subtype}(\\{cur\_p})=\\{explicit}$
{\bf then} \\{kern\_break}\par\noindent\hskip10pt
{\bf else} $\\{act\_width}\gets\\{act\_width}+\\{width}(\\{cur\_p})$;
\bugonpage B367, line 21 (2/27/93)
\ninepoint\noindent\hskip20pt
{\bf else if\/} \\{precedes\_break}(\\{prev\_p}) {\bf then}
$\\{try\_break}(0,\\{unhyphenated})$\par\noindent\hskip20pt
{\bf else if\/} $(\\{type}(\\{prev\_p})=\\{kern\_node})\land
(\\{subtype}(\\{prev\_p})\ne\\{explicit})$ {\bf then}
$\\{try\_break}(0,\\{unhyphenated})$;
\bugonpage B372, lines 12 and 13 (2/27/93)
\ninepoint\noindent\hskip20pt
{\bf if\/} $\\{type}(q)=\\{kern\_node}$ {\bf then}\par\noindent\hskip30pt
{\bf if\/} $\\{subtype}(q)\ne\\{explicit}$ {\bf then goto} \\{done1};
\bugonpage B376, line 3 from the bottom (2/27/93)
\ninepoint\noindent\hskip10pt
$\\{cur\_lang}\gets\\{init\_cur\_lang}$; \
$\\{l\_hyf}\gets\\{init\_l\_hyf}$; \
$\\{r\_hyf}\gets\\{init\_r\_hyf}$;
\bugonpage B377, lines 11 and 12 (2/27/93)
\ninepoint\noindent
$\\{cur\_lang},\\{init\_cur\_lang}$: \\{ASCII\_code};\quad
$\{\,$current hyphenation table of interest$\,\}$\par\noindent
$\\{l\_hyf},\\{r\_hyf},\\{init\_l\_hyf},\\{init\_r\_hyf}$: \\{integer};\quad
$\{\,$limits on fragment sizes$\,\}$
\bugonpage B378, line 5 from the bottom, overriding earlier change (2/27/93)
\ninepoint\noindent\hskip30pt
{\bf else if} $(\\{type}(s)=\\{kern\_node})\land(\\{subtype}(s)=\\{normal})$
{\bf then}\par\noindent\hskip50pt
{\bf begin} $\\{hb}\gets s$; \ $\\{hyf\_bchar}\gets\\{font\_bchar}[\\{hf}]$; \
{\bf end}\par\noindent\hskip40pt
{\bf else goto} \\{done3};
\bugonpage B394, lines 12 and 13 (2/27/93)
\ninepoint\noindent\hskip10pt
{\bf var} $n$: $0\to64$;\quad$\{\,$length of current word; not always
a \\{small\_number}$\,\}$\par\noindent\hskip20pt
$j$: $0\to64$;\quad$\{\,$an index into \\{hc}$\,\}$
\bugonpage B404, line 21 (2/27/93)
\ninepoint\noindent\hskip10pt
{\bf var} $k,l$: $0\to64$;\quad$\{\,$indices into \\{hc} and \\{hyf};
not always in \\{small\_number} range$\,\}$
\bugonpage B460, lines 21 and 22 (2/27/93)
\ninepoint\noindent\hskip10pt
\\{push\_nest}; \ $\\{mode}\gets\\{hmode}$; \ $\\{space\_factor}\gets1000$; \
\\{set\_cur\_lang}; \ $\\{clang}\gets\\{cur\_lang}$;\par\noindent\hskip10pt
$\\{prev\_graf}\gets(\\{norm\_min}(\\{left\_hyphen\_min})\ast\oct{100}+
\\{norm\_min}(\\{right\_hyphen\_min}))\ast\oct{200000}+\\{cur\_lang}$;
\bugonpage B492, line 6 from the bottom (2/27/93)
\ninepoint\noindent\hskip10pt
\\{unsave}; \ $\\{prev\_graf}\gets\\{prev\_graf}+3$;\par\noindent\hskip10pt
\\{push\_nest}; \ $\\{mode}\gets\\{hmode}$; \ $\\{space\_factor}\gets1000$; \
\\{set\_cur\_lang}; \ $\\{clang}\gets\\{cur\_lang}$;\par\noindent\hskip10pt
$\\{prev\_graf}\gets(\\{norm\_min}(\\{left\_hyphen\_min})\ast\oct{100}+
\\{norm\_min}(\\{right\_hyphen\_min}))\ast\oct{200000}+\\{cur\_lang}$;
% volume C
\hsize=29pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\bugonpage C151, line 11 from the bottom (6/26/93)
\ninepoint\indent
\qquad scaled $1.42(1+\max(-\\{pen\_lft},\\{pen\_rt},\\{pen\_top},
-\\{pen\_bot}))$
\bugonpage C262, line 15 (6/26/93)
\ninepoint\noindent
|string base_name, base_version; base_name="plain"; base_version="2.71";|
\bugonpage C262, line 29 (6/26/93)
\ninepoint\noindent
|def |^|gobble|| primary g = enddef; def |^|killtext|| text t = enddef;|
\bugonpage C271, bottom line (6/26/93)
\ninepoint\noindent
| culldraw p enddef;|
\bugonpage C272, three new lines for top of page (6/26/93)
{\ninepoint\parindent=0pt
|def |^|culldraw|| expr p = addto pic_ doublepath p.t_ withpen currentpen;|\par
| cull pic_ dropping(-infinity,0) withweight default_wt_;|\par
| addto_currentpicture also pic_; pic_:=nullpicture; killtext enddef;|\par
}
\bugonpage C272, replacement for former line 5 (6/26/93)
\ninepoint\noindent
| (cut_ scaled (1+max(-pen_lft,pen_rt,pen_top,-pen_bot))|
\bugonpage C296, line 24 (2/3/93)
\ninepoint\noindent
the definition of |rp| is changed to `|]..tension 4..|',
and if `|scaled|~|5pt|' is inserted\cutpar
\bugonpage C299, line 3 (5/15/92)
\ninepoint\noindent
a Bernshte{\u\i}n polynomial of order $n-1$.)
\bugonpage C347, left column (5/15/92)
\eightpoint
Bernshte{\u\i}n, Serge{\u\i} \thinspace Natanovich, 14.
\bugonpage C348, left column (6/26/93)
\eightpoint
|culldraw|, {\it271}, $\underline{272}$.
\bugonpage C350, left column (6/26/93)
\eightpoint
exponential, {\sl see\/} |mexp|.
\bugonpage C352, left column (6/26/93)
\eightpoint
|killtext|, $\underline{262}$, {\it 272}.
\bugonpage C352, right column (6/26/93)
\eightpoint
logarithm, {\sl see\/} |mlog|.
\bugonpage C361, lines 14 and 15 (2/25/93)
P.O. Box 869\par
Santa Barbara, CA 93102-0869 USA.
% Volume D
\hsize=35pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\to{\mathrel{.\,.}} % double dot, used only in math mode
\bugonpage D190, and subsequent pages (6/26/93)
\noindent[Several changes to the code in sections 415, 416, 424, and 425
were made to \MF\ version 2.71 in July~1991, too numerous to mention here.]
\bugonpage D216, line 10 from the bottom (7/15/92)
\tenpoint\noindent
will be offset by $w_1$ or $w_2$, unless its slope drops to zero
en route to the eighth octant; in the latter\cutpar
\bugonpage D289, lines 9 and 10 (6/26/93)
\ninepoint\noindent\hskip20pt
$p\gets\\{dep\_list}(p)$; \ $r\gets\\{inf\_val}$;\par\noindent\hskip20pt
{\bf repeat if\/} $\\{value}(\\{info}(p))\ge\\{value}(r)$ {\bf then}
% volume E
\hsize=29pc
\def\dashto{\mathrel{\hbox{-\kern-.05em}\mkern3.9mu\hbox{-\kern-.05em}}}
\bye
|