summaryrefslogtreecommitdiff
path: root/systems/knuth/dist/errata/errata.one
blob: 471971958c3f3bc69bb5168c8e8af0ba6bd2dd5a (plain)
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
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
% Bugs (sigh) in The TeXbook

\input manmac
\proofmodefalse
\raggedbottom
\output{\onepageout{\unvbox255\kern-\dimen@ \vfil}}

\def\rhead{Bugs in {\sl The \TeX book}, first 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\/}
between the first and second printings. If your copy says `{\sl\kern-1pt Second
printing (October 1984)\/}' on the copyright page, you've already got
all of these things corrected. Otherwise, you're a lucky owner of the
rare first edition; read on.

\bugonpage 29, lines 31--32 (8/25/84)

The underfull box that \TeX\ produces in the 1.5-inch case is really bad;
with such narrow limits, an occasional wide space is unavoidable. But try

\bugonpage 54, lines 5--6 (4/20/84)

{\parfillskip=0pt
\ddanger Appendix B shows that plain \TeX\ handles most of the accents
by using \TeX's ^|\accent| primitive. For example, |\'#1| is equivalent
to |{\accent19 #1}|, where\par}

\bugonpage 63, seven lines below the first illustration (2/27/84)

\line{points, a width of 5.5555 points, and a depth of zero;
the letter `g' has a height}

\bugonpage 72, line 35 (2/28/84)

\ninepoint\noindent
from |0pt|, but |0.00001filll| is infinitely greater than |16383.99999fill|.

\bugonpage 79, line 12 (2/28/84)

\ninepoint\indent
|\hbox(6.25+1.94444)x312.0, glue set 0.5783, shifted 36.0 []|

\bugonpage 98, line 24 (4/13/84)

\ninepoint
\line{and |\finalhyphendemerits=5000|. Demerits are in units of
  ``badness squared,'' so the}

\bugonpage 101, lines 29--30 (3/13/84)

{\parfillskip=0pt
\danger It's possible to control the length of lines in a much more general
way, if simple changes to |\leftskip| and |\rightskip| aren't
flexible enough for your\par}

\bugonpage 113, bottom two lines (3/13/84)

{\parfillskip=0pt
\ddanger Notice that the first ``|%| line'' of our example says |t=10.0|;
this is a consequence of another parameter, called ^|\topskip|. Glue
disappears at a page break, but\par}

\bugonpage 124, eighth-last line (8/25/84)

\ninepoint
{\parfillskip=0pt\noindent
discarded, |\box100| will
be void after the |\vsplit|. And if\/ |\box100| was void before the\par}

\bugonpage 131, display in exercise 16.8 (3/16/84)

\indent
|If$ x = y$, then $x$ is equal to $y.$|

\bugonpage 170, table in middle of the page (2/12/84)

\ninepoint
$$\baselineskip0pt\lineskip0pt
\halign to\hsize
 {\strut\hbox to\parindent{\it#\hfil}& % for the legend "Left atom"
  #\hfil\quad& % for the row labels
  #\hfil\tabskip 0pt plus 10pt& % for the rule at the left
  \hbox to 25pt{\tt\hss#\hss}& % for column 1
  \hbox to 25pt{\tt\hss#\hss}& % for column 2
  \hbox to 25pt{\tt\hss#\hss}& % for column 3
  \hbox to 25pt{\tt\hss#\hss}& % for column 4
  \hbox to 25pt{\tt\hss#\hss}& % for column 5
  \hbox to 25pt{\tt\hss#\hss}& % for column 6
  \hbox to 25pt{\tt\hss#\hss}& % for column 7
  \hbox to 25pt{\tt\hss#\hss}& % for column 8
  #\hfil\tabskip0pt\cr % for the rule at the right
\noalign{\vskip-6pt} % it just happens that there's extra white space
&&&&\multispan7\hss\it Right atom\hss\cr
\noalign{\vskip3pt}
&&&\rm Ord&\rm Op&\rm Bin&\rm Rel&\rm Open&\rm Close&\rm Punct&\rm Inner\cr
\noalign{\vskip2pt}
\omit&&\multispan{10}\leaders\hrule\hfil\cr
\omit\vbox to 2pt{}&&\vrule&&&&&&&&&\vrule\cr
&Ord&\vrule&0&1&(2)&(3)&0&0&0&(1)&\vrule\cr
&Op&\vrule&1&1&*&(3)&0&0&0&(1)&\vrule\cr
&Bin&\vrule&(2)&(2)&*&*&(2)&*&*&(2)&\vrule\cr
Left&Rel&\vrule&(3)&(3)&*&0&(3)&0&0&(3)&\vrule\cr
atom&Open&\vrule&0&0&*&0&0&0&0&0&\vrule\cr
&Close&\vrule&0&1&(2)&(3)&0&0&0&(1)&\vrule\cr
&Punct&\vrule&(1)&(1)&*&(1)&(1)&(1)&(1)&(1)&\vrule\cr
&Inner&\vrule&(1)&1&(2)&(3)&(1)&0&(1)&(1)&\vrule\cr
\omit\vbox to 2pt{}&&\vrule&&&&&&&&&\vrule\cr
\omit&&\multispan{10}\leaders\hrule\hfil\cr}$$

\bugonpage 173, line 11 (1/2/84)

\indent|Clearly $a_i<b_i$ for~$i=1, 2, \ldots, n$.|

\bugonpage 176, bottom two lines (7/20/84)

\def\chapno{ 18} \exno=23 % for exercise 18.24!
\dangerexercise Typeset the display \ \lower12pt\null
$\tenpoint\smash{\displaystyle
\left\lgroup\matrix{a&b&c\cr d&e&f\cr}\right\rgroup
  \left\lgroup\matrix{u&x\cr v&y\cr w&z\cr}\right\rgroup
}$, \
using ^|\lgroup| and ^|\rgroup|.

\bugonpage 189, line 18 (2/13/84)

\ninepoint\noindent
{\parfillskip=0pt
when there is an overlap.] \ If $e=0$ and if there is an |\leqno|,
the equation number is\par}

\bugonpage 204, line 31 (2/13/84)

\ninepoint\noindent
of\/ |\a| is delimited by a left brace.

\bugonpage 212, line 23 (7/8/84)

\ninepoint\noindent
it equals~2.) \
Similarly, ^|\tracingmacros||=2| will trace |\output|, |\everypar|, etc.

\bugonpage 216, first five lines (8/25/84)

\ddanger Expanded definitions that are made with |\edef| or |\xdef| continue
to expand tokens until only unexpandable tokens remain, except that
token lists produced by `^|\the|' are not expanded further. Furthermore
a token following `^|\noexpand|' will not be expanded, since its ability
to expand has been nullified. These two operations can be used to control
^^{expansion, avoiding} what gets expanded and what doesn't.

\bugonpage 219, simplification of line 18 (2/15/84)

\ninepoint\indent
|  \advance\count0 by\count2 \hexdigit}}|

\bugonpage 223, lines 3--4 (3/13/84)

{\parfillskip=0pt
\ddanger Chapters 24 to 26 present summaries of all \TeX's operations
in all modes, and when those summaries mention a `\<box>' they mean one
of the seven\par}

\bugonpage 242, line 29 (1/2/84)

\ninepoint\noindent
{\parfillskip=0pt
a relation, the solution is to insert `|{}|' ^^{lbrace rbrace}
at the beginning of the right-hand formula; \TeX
\par}

\bugonpage 245, line 24 (2/15/84)

\ninepoint\noindent
of a box that spans columns $i$ through~$j$,
hence the glue in such a box might shrink.

\bugonpage 248, the fourth dangerous bend (2/15/84)

{\parfillskip=0pt
\ddanger You have to be careful with the use of |&| and ^|\span| and ^|\cr|,
because these tokens are intercepted by \TeX's scanner even when it is
not expanding macros.\par}

\bugonpage 249, lines 20--26 (2/15/84)

\ninepoint\noindent
line (see Chapter~9).
If you don't want a~|\cr| at the end of a certain line,
just type `|%|' and the corresponding |\cr|
will be ``commented out.'' ^^{percent} \ (This special mode doesn't
work with ^|\+| lines, since |\+| is a macro whose argument is delimited
by the token `|\cr|', not simply by a token that has the same meaning
as~|\cr|.  ^^{delimited arguments} But you can redefine |\+| to overcome
this hurdle, if you want to. For example, define a macro |\alternateplus|
that is just like |\+| except that its argument is delimited by the active
character |^^M|; then include the command `|\let\+=\alternateplus|' as
part of\/ |\obeylines|.)

\bugonpage 253, lines 28--32 (4/25/84)

\ninepoint\noindent
vertical list at what it thinks is the best place, and at such times
it enters internal vertical mode and begins to read the commands in the
current |\output| routine. When the output routine begins, ^|\box255|
contains the page that \TeX\ has completed; the output routine is supposed to
do something with this vbox. When the output routine ends, the list of
items that it has constructed in internal vertical mode is placed just%
{\parfillskip=0pt\par}

\bugonpage 254, lines 1--13 (3/13/84)

\ddanger \TeX's primitive command |\shipout|\<box> is what actually
causes output. It sends the contents of the box to the |dvi| file,
which is \TeX's main output file; after \TeX\ has finished,
the ^|dvi| file will contain a compact device-independent encoding of
instructions that specify exactly what should be printed.  When a
box is shipped out, \TeX\ displays the values of\/ |\count0| through
|\count9| on your terminal, ^^|\count0| as explained in Chapter~15; these
ten counters are also recorded in the |dvi| file, where they can be used
to identify the page. All of the ^|\openout|, ^|\closeout|, and ^|\write|
commands that appear inside of the \<box> are performed in their natural
order as that box is being shipped out. Since a |\write| command
expands macros, as explained in Chapter~21, \TeX's scanning mechanism
might detect syntax errors while a |\shipout| is in progress. If
^|\tracingoutput| is nonzero at the time of a |\shipout|, the contents
of the \<box> being shipped are written into your log file in symbolic
form. You can say |\shipout| anywhere, not only in an output routine.

\bugonpage 255, line 33 (4/25/84)

\ninepoint\indent
|\nointerlineskip|


\bugonpage 256, starting with line $-17$ (11/1/83)

\ninepoint
\textindent{6)} Finally, the ^|\dosupereject| macro is designed to clear
out any insertions that have been held over, whether they are illustrations
or footnotes or both: ^^|\insertpenalties| ^^|\supereject|
\begintt
\ifnum\insertpenalties>0
  \line{} \kern-\topskip \nobreak
  \vfill\supereject\fi
\endtt
The mysterious negative ^|\kern| here cancels out the natural space of the
^|\topskip| glue that goes above the empty |\line|; that empty line box
prevents the ^|\vfill| from disappearing into a page break.  The vertical
list that results from |\dosupereject| is placed on \TeX's list of things
to put out next, just after the straggling insertions have been
reconsidered as explained in Chapter~15. Hence another super-eject will
occur, and the process will continue until no insertions remain.

\bugonpage 262, line 14 (2/12/84)

\ninepoint\indent
|\def\endindex{\mark{}\break\endgroup}|

\bugonpage 262, lines 34 and 35 (2/12/84)

\ninepoint\noindent
if\/ |\next| is `|\endindex|',
the next commands executed will be `|\vfill|\allowbreak
|\mark{}|\allowbreak|\break|\allowbreak|\endgroup|';
otherwise the line will be treated as a main entry.

\bugonpage 269, line 23 becomes two lines (8/25/84)

\ninepoint\noindent
tokens like |+|$_{12}$;
(3)~keywords like \[pt]; (4)~control sequence names like |\dimen|;
or (5)~the special symbols |{|, |}|, |$|.

\bugonpage 274, line 24 (2/15/84)

\ninepoint\indent
|\lineskip|\quad(interline glue if\/ |\baselineskip| isn't feasible)

\bugonpage 289, slight clarification on lines 39--41 (3/10/84)

\ninepoint
A \<math character> defines a 15-bit number either by specifying it
directly with ^|\mathchar| or in a previous ^|\mathchardef|, or by
specifying a 27-bit |\delimiter| value; in the latter case, the least
significant 12~bits are discarded.


\bugonpage 307, a slightly more explicit answer (11/3/83)

\ninepoint\noindent
\hbox to\parindent{\bf\hss6.3.\enspace}%
It represents the heavy bar that shows up in
your output. \ (This bar wouldn't be present if\/ ^|\overfullrule| had been
set to |0pt|, nor is it present in an underfull box.)

\bugonpage 313, first four lines (3/13/84)

{\ninepoint\parfillskip=0pt
\ansno12.17:
 You get `A' at the extreme left and `puzzle.\null' at the extreme right,
because the space between words has the only stretchability that is finite;
the infinite stretchability cancels out. \ (In this case, \TeX's rule
about ^{infinite glue} differs from what you would get in the limit if the
value of $1\,{\rm fil}$ were finite but getting larger and larger.
The true\par}

\bugonpage 315, first three lines (3/13/84)

\ninepoint
\ansno14.14:
 Just say |\parfillskip|\stretch|=|\stretch|\parindent|. Of course,
\TeX\ will not be able to find appropriate line breaks unless each
paragraph is sufficiently long or sufficiently lucky; but with an
appropriate text, your output will be immaculately
symmetrical.{\parfillskip=\parindent\par}

\bugonpage 324, line 16 (2/15/84)

\ninepoint\noindent
\hbox to\parindent{\bf\hss18.41.\enspace}%
|$$\{\underbrace{\overbrace{\mathstrut a,\ldots,a}|

\bugonpage 324, first line of answer 18.44 (4/11/84)

\ninepoint
\ansno18.44:
 |$$\mathop{{\sum}'}_{x\in A}f(x)\mathrel{\mathop=^{\rm def}}|

\bugonpage 333, beginning of the final paragraph (12/19/83)

\ninepoint
{\sl Note:\/} The stated preamble solves the problem and demonstrates
that \TeX's line-breaking capability can be used within tables. But this
particular table is not really a good example of the use of\/ |\halign|,
because \TeX\ could typeset it directly, using ^|\everypar| in an
appropriate manner to set up the hanging indentation, and using |\par|
instead of\/ |\cr|. For example, one could say

\bugonpage 341, the bottom line was left out! (2/9/84)

\line{Footline\quad\dotfill\quad Page 1009}

\bugonpage 345, top three lines (1/26/84)

\ninepoint{\noindent\parfillskip=0pt
A mathcode is relevant only when the corresponding category code is
11 or~12; therefore many of these codes will rarely be looked at. For
example, the math code for |^^M| specifies the character |\oplus|,
but it's hard to imagine a user who would want |^^M|\par}

\bugonpage 345, line 31 (2/29/84)

\ninepoint\noindent
|\delcode`\<="26830A    \delcode`\\="26E30F    \delcode`\>="26930B|

\bugonpage 347, lines 1 and 2 (3/16/84)

\ninepoint\noindent
|\count18=3  % this counter allocates math families 4, 5, 6, ...|\hfil\break
|\count19=255 % this counter allocates insertions 254, 253, 252, ...|

\bugonpage 350, line 9 from the bottom (3/16/84)

\ninepoint\noindent
font, whose information does not have to be loaded again.

\bugonpage 354, line 5 (6/7/84)

\ninepoint\noindent
|\def\ialign{\everycr={}\tabskip=0pt \halign} % initialized \halign|

\bugonpage 355, lines 19--21 (7/3/84)

\ninepoint\noindent
subdivision in a document; to use it, you say
`|\beginsection|\<section title>' followed by a blank line (or~|\par|).
The macro first emits glue and penalties, designed to start a new page
if the present page is nearly full; then it makes a ^|\bigskip| and
puts the section{\parfillskip=0pt\par}

\bugonpage 355, lines 27--29 (7/3/84)

\ninepoint\noindent
|\outer\def\beginsection#1\par{\vskip0pt plus.3\vsize\penalty-250|
\par\noindent
|  \vskip0pt plus-.3\vsize\bigskip\vskip\parskip|
\par\noindent
|  \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent}|

\bugonpage 355, line 37 (4/24/84)

\ninepoint\noindent
|\outer\def\proclaim #1. #2\par{\medbreak|

\bugonpage 356, seven lines from the bottom (4/11/84)

\ninepoint\noindent
|\def|^|\TeX||{T\kern-.1667em \lower.5ex\hbox{E}\kern-.125em X}|

\bugonpage 359, starting with line 2 (11/16/83)

\ninepoint
\beginlines
|\mathchardef\ldotp="602E\mathchardef\cdotp="6201\mathchardef\colon="603A|
|\def\ldots{\mathinner{\ldotp\ldotp\ldotp}}|
|\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}|
|\def\vdots{\vbox{\baselineskip=4pt \lineskiplimit=0pt|
|    \kern6pt \hbox{.}\hbox{.}\hbox{.}}}|
|\def\ddots{\mathinner{\mskip1mu\raise7pt\vbox{\kern7pt\hbox{.}}\mskip2mu|
|    \raise4pt\hbox{.}\mskip2mu\raise1pt\hbox{.}\mskip1mu}}|
\endlines

\bugonpage 359, starting with line 19 (11/3/83)

{\ninepoint\parindent=0pt
|\def|^|\overbrace|%
  |#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3pt}|\parbreak%
|     \downbracefill\crcr\noalign{\kern3pt\nointerlineskip}|\parbreak%
|     $\hfil\displaystyle{#1}\hfil$\crcr}}}|^|\limits||}|

|\def|^|\underbrace||#1{\mathop{\vtop{\ialign{##\crcr|\parbreak%
|     $\hfil\displaystyle{#1}\hfil$\crcr|%
  |\noalign{\kern3pt\nointerlineskip}|\parbreak%
|     \upbracefill\crcr\noalign{\kern3pt}}}}\limits}|
}

\bugonpage 359, seventh line from the bottom (2/29/84)

\ninepoint\noindent
|\def\backslash{\delimiter"026E30F }   \def\bracevert{\delimiter"000033E }|

\bugonpage 361, line 3 (8/17/84)

\ninepoint\noindent

|\def\buildrel#1\over#2{\mathrel{\mathop{\null#2}\limits^{#1}}}|

\bugonpage 363, line 10 (4/26/84)

\ninepoint\noindent
|  \ifhmode\edef\@sf{\spacefactor=\the\spacefactor}\/\fi|

\bugonpage 364, starting with line 10 (11/1/83)

{\ninepoint\parindent=0pt
|\def\dosupereject{\ifnum\insertpenalties>0 % something is being held over|%
\parbreak
|  \line{}\kern-\topskip\nobreak\vfill\supereject\fi}|
}

\bugonpage 364, line 28 (7/8/84)

\ninepoint\noindent
|  \tracingmacros=2 \tracingparagraphs=1 \tracingrestores=1 |

\bugonpage 370, line 7 (3/16/84)

\ninepoint\noindent
information about the \TeX\ Users Group.)

\bugonpage 374, line 23 (7/8/84)

\ninepoint
\line{log file when |\tracingmacros=2| and
  |\tracingcommands=2|. One of the important ways}

\bugonpage 379, line 1 (1/12/84)

\ninepoint\noindent
A particular item can be selected by its position number from the left:

\bugonpage 381, line 6 (2/12/84)

\ninepoint\indent
|\newcount\lineno % the number of file lines listed|

\bugonpage 381, lines 24 and 25 (12/15/83)

\ninepoint
{\parfillskip=0pt
Instead of listing a file verbatim, you might want to define a |\verbatim|
macro such that `|\verbatim{$this$|{\tt\ is }|{\it!}}|' yields
`|$this$|{\tt\ is }|{\it!}|'. It's somewhat\par}

\bugonpage 385, lines 22 and 23 (1/12/84)

\ninepoint\noindent
macro, a parameter, or a token list
variable; (b)~when \TeX\ must determine whether the token
|&|~or ^|\span| ^^{ampersand}
or ^|\cr| or~^|\crcr| is the end of an entry within an ^{alignment}.

\bugonpage 387, two paragraphs in right column (1/18/84)

\setbox0=\vbox{
\eightpoint
\tolerance=9999
\hbadness=2300
\finalhyphendemerits=3000000
\doublehyphendemerits=1000000
\parskip=1pt
\parindent=1.5em
\frenchspacing
\hsize=166.8125pt
\def\\#1{\raise.5pt\hbox{$\scriptscriptstyle
    \ifx#1`\langle\!\langle\else\rangle\!\rangle\fi$}% Spanish quote marks
  \ifx#1`\nobreak\hskip0pt \fi} % allow hyphenation
\item{A.} Exactamente. Pero los profesores son tan conservadores
que temer\'\i an espantar al tipo de estudiante \\`apisonadora\\'
que hace lo que le proponen para casa, obe\-dien\-te\-mente y de forma
mec\'anica. Adem\'as, no creo que les gustase el trabajo adicional
de calificar respuestas a preguntas abiertas.

\item{}La forma tradicional es dejar la parte creativa para los cursos
altos. Durante diecisiete a\~nos o m\'as se ense\~na al es\-tu\-diante a
aprobar, luego de golpe, cerca de la graduaci\'on, se le pide que haga
algo original.

}\rightline{\box0}

\bugonpage 395, lines 21 and 22 (1/12/84)

\ninepoint\noindent
{\parfillskip=0pt
Notice that the macros need to do their own checking for ligatures, and
they also take appropriate actions when a paragraph begins with an opening
quote.  Since |\kern|\par}

\bugonpage 399, line 1 (1/10/84)

\ninepoint
{\parfillskip=0pt
Inside the output routine, |\box\footins| will now be a vbox of hboxes, and
\par}

\bugonpage 399, line 9 (2/28/84)

\ninepoint\indent
|.\hbox(7.6359+0.0)x269.62617 []|

\bugonpage 407, line 4 (6/10/84)

\ninepoint\noindent
|\beginlinemode| and |\beginparmode| are defined to initiate these
modes; and another%
{\parfillskip=0pt\par}

\bugonpage 408, line 15 (12/14/83)

\noindent
|    P. O. Box 1009, Haga Alto, CA 94321 USA}|

\smallskip\noindent\ninepoint
[Also change the ZIP code in the return address on the envelope
illustrated at the bottom of page 405.]

\bugonpage 409, line 5 (2/18/84)

\ninepoint\noindent
|\font\twelveit=cmti10 at 12pt  % (a cheap substitute for cmti12)|

\bugonpage 417, last six lines (8/25/84)

\ninepoint\noindent
^|\parskip|
of |0pt| |plus|~|.8pt| between adjacent entries, and since there is room for
more than 50 lines per column; therefore the |manmac| balancing routine tries
to make both the top and bottom baselines agree at the end of the index.
In applications where the glue is not so flexible it would be more
appropriate to let the right-hand column be a little short; the best
way to do this is probably to replace the command `|\unvbox3|' by
`|\dimen2=|^|\dp||3| |\unvbox3| |\kern-\dimen2| ^|\vfil|'.

\bugonpage 422, lines 24--26 (2/9/84)

\ninepoint\noindent
(The last two lines use |\d@nger| and |\dd@nger|, which are non-|\outer|
equivalents of\/ |\danger| and |\ddanger|; such duplication is necessary
because control sequences of type ^|\outer| cannot appear within a |\def|.)

\bugonpage 428, in the table of sixteen basic fonts (12/19/83)

\ninepoint\noindent
[The special fonts called |cmi10| and |cmi7| and |cmi5| should really be
called |cmmi10| and |cmmi7| and |cmmi5|.]

\bugonpage 433, last eight lines (8/17/84)

\noindent
explained in Appendix~G\null. If you want to increase
the number of parameters past the number that actually appear in a font's
metric information file, you can assign new values immediately after that font
has been loaded.  For example, if some font |\ff| with seven parameters
has just entered \TeX's memory, the command |\fontdimen13\ff=5pt| will set
parameter number~13 to $5\pt$; the intervening parameters, numbers 8--12,
will be set to zero. You can even give more than seven parameters to
^|\nullfont|, provided that you assign the values before any actual fonts
have been loaded.

\bugonpage 445, line 6 (11/11/83)

\ninepoint
\line{if $(a-{1\over2}\theta)-
\bigl(h(z)-v\bigr)<\varphi$, increase~$v$ by the difference. Finally
construct a vbox of}

\bugonpage 449, line 12 (1/18/84)

\line{immediately clear why the `n' should
be attached to the `e' in one case but not}

\bugonpage 459, left column, line 2 (1/18/84)

\eightpoint
al-Khw\^arizm\^\i, abu Ja`far Mu\d{h}ammad

\bugonpage 460, index entry for Beethoven (8/16/84)

\eightpoint
Change `von' to `van'.

\bugonpage 461, third line in left column (8/25/84)

\eightpoint The entry for |\box255| should not be indented.

\bugonpage 461, index entry for boxed material (8/2/84)

\eightpoint Add `{\it 420}'.

\bugonpage 462, index entry for {\tt\char`\\colon} (11/16/83)

\eightpoint Add page \underbar{359} to this list.

\bugonpage 462, right column, third-last line (5/21/84)

\eightpoint\indent
[Change `crochets' to `crotchets'; then move this entry down two lines.]

\bugonpage 463, right column, line 16 (5/20/84)

\eightpoint\indent
design size, 16--17, 213.

\bugonpage 464, index entry for {\tt\char`\\dump} (1/10/84)

\eightpoint Add page {\it 344\/} to this list.

\bugonpage 464, right column, line 5 (1/5/84)

\eightpoint
Dvo\v r\'ak, Anton\'\i n Leopold, 409.

\bugonpage 464, index entry for {\tt\char`\\end} (8/25/84)

\eightpoint Page number 264 should be underlined.

\bugonpage 465, index entry for {\tt\char`\\everydisplay} (8/25/84)

\eightpoint Add page {\it 326\/} to this list.

\bugonpage 465, index entry for {\tt\char`\\filbreak} (7/3/84)

\eightpoint Delete the reference to page number 355.

\bugonpage 466, index entry for {\tt\char`\\footnote} (4/26/84)

\eightpoint Page number 363 should be underlined.

\bugonpage 467, index entry for {\tt\char`\\hidewidth} (7/3/84)

\eightpoint Page number 354 should be underlined.

\bugonpage 468, index entry for insertions (8/25/84)

\eightpoint Add pages 115--117, 122--125 to this list.

\bugonpage 469, index entry for {\tt\char`\\kern} (11/1/83)

\eightpoint Add page {\it 256\/} to this list.

\bugonpage 470, index entry for {\tt\char`\\limits} (11/3/83)

\eightpoint Add page {\it 359\/} to this list.

\bugonpage 472, right column, lines 10--11 (7/9/84)

{\eightpoint
\indent
|\normalbaselines|\kern1pt,
 {\it 325}, 349, $\underline{351}$, {\it 414--415}.\par
\baselineskip=9.9pt
\indent
|\normalbaselineskip|\kern1pt,
 $\underline{349}$, {\it 414--415}.\par
}

\bugonpage 472, index entry for {\tt\char`\\null} (7/3/84)

\eightpoint Page number 351 should be underlined.

\bugonpage 472, right column, line 28 (1/3/84)

\eightpoint\indent
\hbox to0pt{\hss\lower1pt\hbox{*}}|\nullfont|, 14, 153, 271, 433.

\bugonpage 476, a new index entry (8/25/84)

\eightpoint\indent
shifted output, {\sl see\/} |\hoffset|, |\voffset|.

\bugonpage 476, index entry for shriek (8/25/84)

\eightpoint It should not be capitalized.

\bugonpage 478, index entry for \'Swierczkowski (9/15/84)

\eightpoint
The middle name should be `S\l awomir'.

\bugonpage 479, last seven lines in the left column (8/23/84)

\eightpoint
{\baselineskip=9.9pt
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingmacros|, $\underline{205}$, $\underline{212}$, 273, {\it329}.
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingonline|, 121, 212, 273, $\underline{303}$.
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingoutput|, $\underline{254}$, 273, {\it301--302}.
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingpages|, {\it112--114}, 124, 273, $\underline{303}$.
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingparagraphs|, {\it98--99}, 273, $\underline{303}$.
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingrestores|, 273, $\underline{301}$, $\underline{303}$.
\par\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\tracingstats|, 273, $\underline{300}$, $\underline{303}$, {\it383}.
}

\bugonpage 479, index entry for underlined text (8/2/84)

\eightpoint Add `{\sl see also\/} |\underbar|'.

\bugonpage 480, index entry for {\tt\char`\\vbox} (11/1/83)

\eightpoint Delete page 256 from this list.

\bye