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
|
% More bugs (sigh) in The TeXbook
\input manmac
\proofmodefalse
\raggedbottom
\output{\onepageout{\unvbox255\kern-\dimen@ \vfil}}
\def\rhead{Bugs in {\tensl The \TeX book}, second printing}
\def\bugonpage#1(#2) \par{\bigbreak\tenpoint
\hrule\line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule\nobreak\medskip}
\noindent This is a list of all corrections made to {\sl The \TeX book\/}
since the second printing. If your copy doesn't say `{\sl\kern-1pt Second
printing (October 1984)\/}' on the copyright page, you should also look at
the previous bug list. In fact, the most important corrections to the
first printing were discovered first, so they've already been~made.
\bugonpage 23, line 16 (10/13/84)
\tenpoint\indent
|This is TeX, Version 1.0 (preloaded format=plain 83.7.15)|
\bugonpage 33, line 32 (10/21/84)
The bottom line shows how far \TeX\ has gotten until now in the
|story|{\parfillskip=0pt\par}
\bugonpage 41, lines 7 and 8 (10/8/85)
\ddanger The twin operations ^|\uppercase||{|\<token list>|}| and
^|\lowercase||{|\<token list>|}| go through a given token list and convert
all of the character tokens to their\parfillskip=0pt\enddanger
\bugonpage 57, line 17 (1/6/86)
|dd|\quad didot point ($\rm1157\,dd=1238\,pt$)
\bugonpage 61, lines 17--19 (12/18/85)
\ninepoint\noindent
|depth|, |em|, |ex|,
|fil|, |height|, |in|, |l|, |minus|, |mm|, |mu|, |pc|, |plus|,
|pt|, |scaled|, |sp|, |spread|, |to|, |true|, |width|. ^^{reserved words}
\ (See Appendix~I for references to the contexts in which each of these is
recognized as a keyword.)
\bugonpage 67, append a new exercise (1/19/85)
\exno=5 \def\chapno{11}
\gdef\frac#1/#2{\leavevmode\kern.1em
\raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
\ddangerexercise Construct a |\frac| macro such that `|\frac1/2|' yields
`\frac1/2'.
\bugonpage 130, line 15 (4/17/85)
\beginmathdemo
|$y'''_3+g'^2$|&y'''_3+g'{}^2\cr
\endmathdemo
\bugonpage 170, line 5 (5/28/85)
\ninepoint
\line{tall, unslanted
letter; and so on. But two of the examples involve corrections that were}
\bugonpage 194, lines 13--15 should be centered better (10/22/84)
\ninepoint
$$\displaylines{\hfill x\equiv x;\hfill\llap{(1)}\cr
\hfill\hbox{if}\quad x\equiv y\quad\hbox{then}\quad
y\equiv x;\hfill\llap{(2)}\cr
\hfill\hbox{if}\quad x\equiv y\quad\hbox{and}\quad
y\equiv z\quad\hbox{then}\quad
x\equiv z.\hfill\llap{(3)}\cr}$$
\bugonpage 215, lines 9 and 10 from the bottom (12/23/84)
\ninepoint\noindent
general format
is the same as for |\def| and |\gdef|, but \TeX\ blindly expands the tokens
of the replacement text according to the expansion rules above. For
example, consider
\bugonpage 233, lines 15--19 (1/19/85)
\medskip
\settabs\+\indent&10\frac1/2 lbs.\qquad&\it Servings\qquad&\cr
\+&\negthinspace\it Weight&\it Servings&
{\it Approximate Cooking Time\/}*\cr
\smallskip
\+&8 lbs.&6&1 hour and 50 to 55 minutes\cr
\+&9 lbs.&7 to 8&About 2 hours\cr
\+&9\frac1/2 lbs.&8 to 9&2 hours and 10 to 15 minutes\cr
\+&10\frac1/2 lbs.&9 to 10&2 hours and 15 to 20 minutes\cr
\bugonpage 236, lines 18--21 (1/19/85)
\ninepoint
$$\vbox{\openup2pt
\halign{\hfil\bf#&\quad\hfil\it#\hfil&\quad\hfil#\hfil&
\quad\hfil#\hfil&\quad#\hfil\cr
Squab&Poussin&2&\frac3/4 to 1&Broil, Grill, Roast\cr
Broiler&Poulet Nouveau&2 to 3&1\frac1/2 to 2\frac1/2&Broil, Grill, Roast\cr
Fryer&Poulet Reine&3 to 5&2 to 3&Fry, Saut\'e, Roast\cr
Roaster&Poularde&5\frac1/2 to 9&Over 3&Roast, Poach, Fricassee\cr}}$$
[This change should also be made at the bottom of page 237.]
\bugonpage 236, fifth-last line (1/19/85)
\ninepoint
| Squab&Poussin&2&\frac3/4 to 1&Broil, Grill, Roast\cr|
\bugonpage 237, line 25 (10/10/84)
\ninepoint\noindent
saying `^|\tabskip||=|\<glue>'. For example,
let's do the poultry table again, but with the{\parfillskip=0pt\par}
\bugonpage 265, bottom line (11/6/85)
[insert a comma after `{\eightss LEONTIEF}'.]
\bugonpage 271, line 8 (11/12/85)
\ninepoint
\beginsyntax
<fil unit>\is[fil]\alt<fil unit>[l]
\endsyntax
\bugonpage 280, lines 7 and 8 (1/8/85)
\ninepoint\noindent
\<4-bit number>.\enskip
The specified output stream is opened or closed, for use in |\write|
commands, as explained in Chapter~21.
\bugonpage 300, lines 5--10 [changed for version 1.3] (11/25/84)
\ninepoint\noindent
what part of \TeX's memory has become overloaded;
one of the following fourteen things will be mentioned:
\begindisplay
|number of strings|\qquad(names of control sequences and files)\cr
|pool size|\qquad(the characters in such names)\cr
|main memory size|\qquad(boxes, glue, breakpoints, token lists,
characters, etc.)\cr
\enddisplay
\bugonpage 300, lines 23--29 [changed for version 1.3] (11/25/84)
\danger If you have a job that doesn't overflow \TeX's capacity, yet
you want to see just how closely you have approached the limits,
just set ^|\tracingstats| to a positive value before the end of your
job. The log file will then conclude with a report on your actual
usage of the first eleven things named above (i.e., the number of strings,
\dots, the save size), in that order. ^^{stack positions}
Furthermore, if you set |\tracingstats| equal to 2~or~more, \TeX\
will show its current memory usage whenever it
does a ^|\shipout| command. Such statistics are broken into two
parts; `|490&5950|' means, for example, that 490 words are being used
for ``large'' things like boxes, glue, and
breakpoints, while 5950 words are being used for ``small'' things like
tokens and characters.
\bugonpage 302, line 14 (10/8/85)
\begintt
.\tenrm || (ligature ---)
\endtt
\bugonpage 305, line 26 (12/24/84)
\ninepoint\noindent
sentable as |^^M|. Asking \TeX\ to |\show\^^M|
\looseness-1
produces the response `|>| |\^^M=macro:->\|\]|.|'.
\bugonpage 306, line 10 (7/1/85)
\ninepoint\noindent
no ``^{explicit kerns},'' and an italic correction is an
explicit kern.) \ But the italic correction may be too much (especially in an
italic font); |shelf{|^|\kern||0pt}ful| is often best.
\bugonpage 308, line 25 (3/25/85)
\ninepoint\indent
|\def\appendroman#1#2#3{\edef#1{\def\noexpand#1{\csname|
\bugonpage 311, insert a new answer (1/19/85)
\ninepoint
\ansno11.6:
|\def\frac#1/#2{\leavevmode\kern.1em|\parbreak
|\raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em|\parbreak
|/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}|
\smallskip\noindent[This causes answer 12.8 to move to page 312;
answer 12.16 also moves to page 313.]
\bugonpage 320, lines 17--20 (8/10/85)
\ninepoint
\ansno17.16:
|\def\sqr#1#2{{\vcenter{\vbox{\hrule height.#2pt|\parbreak
| \hbox{\vrule width.#2pt height#1pt \kern#1pt|\parbreak
| \vrule width.#2pt}|\parbreak
| \hrule height.#2pt}}}}|
\bugonpage 327, lines 26--33 (10/22/84)
\ninepoint
\ansno19.16:
|$$\displaylines{\hfill x\equiv x;\hfill\llap{(1)}\cr|\parbreak
| \hfill\hbox{if}\quad x\equiv y\quad\hbox{then}\quad|\parbreak
| y\equiv x;\hfill\llap{(2)}\cr|\parbreak
| \hfill\hbox{if}\quad x\equiv y\quad\hbox{and}\quad|\parbreak
| y\equiv z\quad\hbox{then}\quad|\parbreak
| x\equiv z.\hfill\llap{(3)}\cr}$$|\par\medskip\noindent
There's also a trickier solution, which begins with
\begintt
$$\displaylines{x\equiv x;\hfil\llap{(1)}\hfilneg\cr
\endtt
\bugonpage 330, line 29 (11/15/85)
\ninepoint\indent
|\edef\next#1#2{\def#1{\b#2\d}} \next\a\c|
\bugonpage 332, lines 17--24 (1/19/85)
\ninepoint
\begintt
\settabs\+\indent&10\frac1/2 lbs.\qquad&\it Servings\qquad&\cr
\+&\negthinspace\it Weight&\it Servings&
{\it Approximate Cooking Time\/}*\cr
\smallskip
\+&8 lbs.&6&1 hour and 50 to 55 minutes\cr
\+&9 lbs.&7 to 8&About 2 hours\cr
\+&9\frac1/2 lbs.&8 to 9&2 hours and 10 to 15 minutes\cr
\+&10\frac1/2 lbs.&9 to 10&2 hours and 15 to 20 minutes\cr
\endtt
\bugonpage 332, lines 33--35 (1/19/85)
\ninepoint\noindent
proofs. \ (You weren't supposed to think of this,
but it has to be mentioned.) \ See exercise 11.\fracexno\ for the `|\frac|'
macro; it's better to say `\frac1/2' than `$1\over2$', in a cookbook.\par
Another way to treat this table would be to display it in a vbox, instead
of including a first column whose sole purpose is to specify indentation.
\bugonpage 337, line 28 (11/12/85)
\ninepoint\noindent |\nextnumber|. Quick should put `|\relax|'
at the end of his macro. \ (The {keywords} |l|,{\parfillskip=0pt\par}
\bugonpage 357, lines 35 and 36 (1/8/85)
\ninepoint\noindent
|\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}|
\bugonpage 357, last two lines (4/17/85)
\ninepoint\noindent
|\def\pr@m@s{\ifx'\next\let\next\pr@@@s|%
| \else\ifx^\next\let\next\pr@@@t|\par\noindent
| \else\let\next\egroup\fi\fi \next}|\par\noindent
|\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}|
\bugonpage 358, lines 8--12 (1/23/85)
\ninepoint\noindent
|\def\hbar{{\mathchar'26\mkern-9muh}}|\hfil\break\null
|\def\surd{{\mathchar"1270}}|\hfil\break\null
|\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr|\hfil\break\null
| \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip}|\hfil\break\null
| \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}|
\bugonpage 359, lines 7--8 (1/22/85)
\ninepoint\noindent
|\def\ddots{\mathinner{\mkern1mu\raise7pt\vbox{\kern7pt\hbox{.}}\mkern2mu|%
\hfil\break\null
| \raise4pt\hbox{.}\mkern2mu\raise1pt\hbox{.}\mkern1mu}}|
\bugonpage 360, line 22 (1/22/85)
\ninepoint\noindent
| \mkern5mu \raise.6\dimen@\copy\rootbox \mkern-10mu \box0}|
\bugonpage 361, line 3 (3/27/85)
\ninepoint\noindent
|\def\buildrel#1\over#2{\mathrel{\mathop{\kern0pt #2}\limits^{#1}}}|
\bugonpage 361, lines 19--20 (1/22/85)
\ninepoint\noindent
|\def\bmod{\mskip-\medmuskip \mkern5mu|\hfil\break\null
| \mathbin{\rm mod} \penalty900 \mkern5mu \mskip-\medmuskip}|
\bugonpage 361, line 27 (5/1/85)
\ninepoint\noindent
|\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th|
\bugonpage 361, bottom line (5/1/85)
\ninepoint\noindent
| \null\;\vbox{\kern\ht1\box2}\endgroup}|
\bugonpage 362, line 9 (5/1/85)
\ninepoint\noindent
|\def\eqalign#1{\null\,\vcenter{\openup1\jot \m@th|
\bugonpage 362, lines 17--29 (8/10/85)
{\parindent=0pt\ninepoint
|\def\@lign{\tabskip=0pt\everycr={}} % restore inside \displ@y|\par
|\def|^|\displaylines||#1{\displ@y|\parbreak%
| \halign{\hbox to\displaywidth{|%
|$\hfil\@lign\displaystyle##\hfil$}\crcr|\parbreak%
| #1\crcr}}|
\smallbreak
|\def|^|\eqalignno||#1{\displ@y \tabskip=|^|\centering|\parbreak%
| \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip=0pt|\parbreak%
| &$\@lign\displaystyle{{}##}$\hfil\tabskip=\centering|\parbreak%
| &\llap{$\@lign##$}\tabskip=0pt\crcr|\parbreak%
| #1\crcr}}|\par
|\def|^|\leqalignno||#1{\displ@y \tabskip=\centering|\parbreak%
| \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip=0pt|\parbreak%
| &$\@lign\displaystyle{{}##}$\hfil\tabskip=\centering|\parbreak%
| &\kern-\displaywidth\rlap{$\@lign##$}\tabskip=\displaywidth\crcr|\parbreak%
| #1\crcr}}|
\par}
\bugonpage 363, line 9 (5/12/85)
\ninepoint\noindent
|\def\footnote#1{\let\@sf=\empty % parameter #2 (the text) is read later|
\bugonpage 364, line 3 (3/23/85)
\ninepoint\noindent
|\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%|
\bugonpage 364, fifth-last line (9/15/85)
\ninepoint\noindent
|\def\fmtname{plain}\def\fmtversion{2.0} % identifies the current format|
\bugonpage 399, eighth-last line (2/11/85)
\ninepoint\noindent
| \baselineskip=\footnotebaselineskip\noindent\unhbox0\par}|
\bugonpage 401, line 5 (1/29/85)
\ninepoint\noindent
{|\fontdimen| parameters to qualify as a math symbol font).
(2)~Set all the font identifiers\parfillskip=0pt\par}
\bugonpage 414, line 10 (12/17/84)
\ninepoint\noindent
|\font\titlefont=cmssdc40 % titles in chapter openings|
%\bugonpage 420, line 9 (10/3/85)
%
%\ninepoint\noindent
%|\def\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.075em|
% that change comes under `font data', explained away below
\bugonpage 444, bottom line (1/10/85)
\ninepoint\noindent
depth $d(z)+v$, consisting
of box~$x$ followed by an appropriate kern followed by box~$z$.
\bugonpage 461, entry for character codes (11/6/85)
\eightpoint
Add `{\sl see also\/} category codes'.
\bugonpage 463, entries for {\tt dd}, Didot, and didot (1/6/86)
\eightpoint
Remove the circumflex accents.
\bugonpage 466, left column (1/19/85)
\eightpoint
fractions, 67, 139--143, 152, 170, 179,\par
\qquad 186, 444--445.\par
\quad huge, 196.\par
\quad slashed form, 67, 139--140, 233, 236.
\bugonpage 467, index entry for {\tt\char`\\hsize} (6/14/85)
\eightpoint
Add a reference to page {\it 60}.
\bugonpage 469, index entry for {\tt\char`\\kern} (7/1/85)
\eightpoint
Add a reference to page {\it 306}.
\bugonpage 469, index entry for kerns (7/1/85)
\eightpoint
Add a reference to page 306.
\bugonpage 469, new entry (11/12/85)
\eightpoint
|l| after |fil|, $\underline{271}$, 337.
\bugonpage 469, second line on the right (9/13/85)
\eightpoint
%\def\LaTeX{L\kern-.25em\raise.7ex\hbox{a}\kern-.05em\TeX} % old style
{L\kern -.36em\raise.6ex\hbox{\sixrm A}\kern-.15em\TeX}, 137.
\bugonpage 470, index entries for {\tt\char`\\longleftarrow}
thru {\tt\char`\\Longrightarrow} (10/5/84)
\eightpoint
The references to page 358 should be underlined (seven times).
\bugonpage 475, index entry for punctuation in formulas (4/29/85)
\eightpoint
Add a reference to page 161.
\bugonpage 476, index entry for {\tt\char`\\scriptspace} (8/10/85)
\eightpoint
Change `445' to `445--446'.
\bugonpage 478, first and last lines (10/11/84)
\noindent Delete the last line in the right-hand column
(since it appears on page 479), and add the following line
at the top of the left-hand column (since it was dropped by mistake
from the second printing):
\smallskip
\eightpoint styles of math formatting, 140--141, 441--447.
\bugonpage 478, new entry after tabbing (5/28/85)
\eightpoint
tables, {\sl see\/} alignments, tabbing.
\bugonpage 478, tabskip entries (3/25/85)
\eightpoint\noindent Instead of `237--239' and `237--238' it should say
`$\underline{237}$--$\underline{239}$' twice.
\bugonpage 481, the entry for {\tt\char`\\widetilde} (9/23/85)
\eightpoint
Page 359 should be underlined.
\bugonpage 483, lines 16--17 (1/19/85)
|P.O. Box 9506|\parbreak
|Providence RI 02940-9506, USA.|
\bugonpage 483, lines 22--23 (1/19/85)
P.O. Box 9506\par
Providence RI 02940-9506, USA.
\bigskip
\hrule
\bigskip\noindent\tenrm
Note: The next printing will use the ``real'' Computer Modern fonts
instead of the ``almost'' Computer Modern fonts. Therefore many of
the line breaks will be slightly different. Also, the font-related
numerical data on pages 27, 29, 66, 75, 76, 79, 88, 98, 99, 112, 113, 310,
314, 396, 399, 409, 420, and 459 will be different. However, these
differences need not be listed here, because the old book was correct with
respect to the old fonts.
\bye
|