Bugs in The TEXbook, second printing 1

This is a list of all corrections made to The TEXbook since the second printing. If your copy doesn’t say ‘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.

Page 23, line 16 (10/13/84)

       This is TeX, Version 1.0 (preloaded format=plain 83.7.15)

Page 33, line 32 (10/21/84)

The bottom line shows how far TEX has gotten until now in the story

Page 41, lines 7 and 8 (10/8/85)

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

Page 57, line 17 (1/6/86)

dd didot point (1157 dd = 1238 pt)

Page 61, lines 17–19 (12/18/85)

depth, em, ex, fil, height, in, l, minus, mm, mu, pc, plus, pt, scaled, sp, spread, to,

true, width. (See Appendix I for references to the contexts in which each of these is recognized as a keyword.)

Page 67, append a new exercise (1/19/85)

EXERCISE 11.6

Construct a \frac macro such that ‘\frac1/2’ yields ‘^{1}/_{2}’.

Page 130, line 15 (4/17/85)

       $y'''_3+g'^2$  y′′′_{3} + g′^{2}

Page 170, line 5 (5/28/85)

tall, unslanted letter; and so on. But two of the examples involve corrections that were

Page 194, lines 13–15 should be centered better (10/22/84)

x ≡ x; (1)

if x ≡ y then y ≡ x; (2) if x ≡ y and y ≡ z then x ≡ z. (3)

Page 215, lines 9 and 10 from the bottom (12/23/84)

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

Page 233, lines 15–19 (1/19/85)

Weight  Servings  Approximate Cooking Time*
8 lbs.  6  1 hour and 50 to 55 minutes
9 lbs.  7 to 8  About 2 hours
9^{1}/_{2} lbs.  8 to 9  2 hours and 10 to 15 minutes
10^{1}/_{2} lbs.  9 to 10  2 hours and 15 to 20 minutes

Page 236, lines 18–21 (1/19/85)

Squab  Poussin  2  ^{3}/_{4} to 1 Broil, Grill, Roast
Broiler Poulet Nouveau 2 to 3 1^{1}/_{2} to 2^{1}/_{2} Broil, Grill, Roast
Fryer Poulet Reine  3 to 5  2 to 3  Fry, Sauté, Roast
Roaster  Poularde  5^{1}/_{2} to 9  Over 3  Roast, Poach, Fricassee

[This change should also be made at the bottom of page 237.]

Page 236, fifth-last line (1/19/85)

         Squab&Poussin&2&\frac3/4 to 1&Broil, Grill, Roast\cr

Page 237, line 25 (10/10/84)

saying ‘\tabskip=⟨glue⟩’. For example, let’s do the poultry table again, but with the

Page 265, bottom line (11/6/85) [insert a comma after ‘LEONTIEF’.]

Page 271, line 8 (11/12/85)

⟨fil unit⟩ ⟶ fil | ⟨fil unit⟩ l

Page 280, lines 7 and 8 (1/8/85)

⟨4-bit number⟩. The specified output stream is opened or closed, for use in \write commands, as explained in Chapter 21.

Page 300, lines 5–10 [changed for version 1.3] (11/25/84)

what part of TEX’s memory has become overloaded; one of the following fourteen things will be mentioned:

number of strings (names of control sequences and files)

pool size (the characters in such names)

main memory size (boxes, glue, breakpoints, token lists, characters, etc.)

Page 300, lines 23–29 [changed for version 1.3] (11/25/84)

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, …, the save size), in that order. 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.

Page 302, line 14 (10/8/85)

       .\tenrm | (ligature ---)

Page 305, line 26 (12/24/84)

sentable as ^^M. Asking TEX to \show\^^M produces the response ‘>\^^M=macro:->\␣.’.

Page 306, line 10 (7/1/85)

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{\kern0pt}ful is often best.

Page 308, line 25 (3/25/85)

        \def\appendroman#1#2#3{\edef#1{\def\noexpand#1{\csname

Page 311, insert a new answer (1/19/85)

  11.6. \def\frac#1/#2{\leavevmode\kern.1em
        \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
        /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}

[This causes answer 12.8 to move to page 312; answer 12.16 also moves to page 313.]

Page 320, lines 17–20 (8/10/85)

 17.16. \def\sqr#1#2{{\vcenter{\vbox{\hrule height.#2pt
                \hbox{\vrule width.#2pt height#1pt \kern#1pt
                   \vrule width.#2pt}
                \hrule height.#2pt}}}}

Page 327, lines 26–33 (10/22/84)

19.16. $$\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}$$

There’s also a trickier solution, which begins with

$$\displaylines{x\equiv x;\hfil\llap{(1)}\hfilneg\cr

Page 330, line 29 (11/15/85)

\edef\next#1#2{\def#1{\b#2\d}} \next\a\c

Page 332, lines 17–24 (1/19/85)

\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

Page 332, lines 33–35 (1/19/85)

proofs. (You weren’t supposed to think of this, but it has to be mentioned.) See exercise 11.6 for the ‘\frac’ macro; it’s better to say ‘^{1}/_{2}’ than ‘ \frac{1}{2} ’, in a cookbook.

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.

Page 337, line 28 (11/12/85)

\nextnumber. Quick should put ‘\relax’ at the end of his macro. (The keywords l,

Page 357, lines 35 and 36 (1/8/85)

\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}

Page 357, last two lines (4/17/85)

\def\pr@m@s{\ifx'\next\let\next\pr@@@s \else\ifx^\next\let\next\pr@@@t
\else\let\next\egroup\fi\fi \next}
\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}

Page 358, lines 8–12 (1/23/85)

\def\hbar{{\mathchar'26\mkern-9muh}}
\def\surd{{\mathchar"1270}}
\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
      \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip}
      \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}

Page 359, lines 7–8 (1/22/85)

\def\ddots{\mathinner{\mkern1mu\raise7pt\vbox{\kern7pt\hbox{.}}\mkern2mu
    \raise4pt\hbox{.}\mkern2mu\raise1pt\hbox{.}\mkern1mu}}

Page 360, line 22 (1/22/85)

  \mkern5mu \raise.6\dimen@\copy\rootbox \mkern-10mu \box0}

Page 361, line 3 (3/27/85)

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

Page 361, lines 19–20 (1/22/85)

\def\bmod{\mskip-\medmuskip \mkern5mu
  \mathbin{\rm mod} \penalty900 \mkern5mu \mskip-\medmuskip}

Page 361, line 27 (5/1/85)

\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th

Page 361, bottom line (5/1/85)

  \null\;\vbox{\kern\ht1\box2}\endgroup}

Page 362, line 9 (5/1/85)

\def\eqalign#1{\null\,\vcenter{\openup1\jot \m@th

Page 362, lines 17–29 (8/10/85)

\def\@lign{\tabskip=0pt\everycr={}} % restore inside \displ@y
\def\displaylines#1{\displ@y
  \halign{\hbox to\displaywidth{$\hfil\@lign\displaystyle##\hfil$}\crcr
    #1\crcr}}
\def\eqalignno#1{\displ@y \tabskip=\centering
  \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip=0pt
    &$\@lign\displaystyle{{}##}$\hfil\tabskip=\centering
    &\llap{$\@lign##$}\tabskip=0pt\crcr
    #1\crcr}}
\def\leqalignno#1{\displ@y \tabskip=\centering
  \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip=0pt
    &$\@lign\displaystyle{{}##}$\hfil\tabskip=\centering
    &\kern-\displaywidth\rlap{$\@lign##$}\tabskip=\displaywidth\crcr
    #1\crcr}}

Page 363, line 9 (5/12/85)

\def\footnote#1{\let\@sf=\empty % parameter #2 (the text) is read later

Page 364, line 3 (3/23/85)

\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%

Page 364, fifth-last line (9/15/85)

\def\fmtname{plain}\def\fmtversion{2.0} % identifies the current format

Page 399, eighth-last line (2/11/85)

  \baselineskip=\footnotebaselineskip\noindent\unhbox0\par}

Page 401, line 5 (1/29/85)

\fontdimen parameters to qualify as a math symbol font). (2) Set all the font identifiers

Page 414, line 10 (12/17/84)

\font\titlefont=cmssdc40           % titles in chapter openings

Page 444, bottom line (1/10/85)

depth d(z) + v, consisting of box x followed by an appropriate kern followed by box z.

Page 461, entry for character codes (11/6/85)

Add ‘see also category codes’.

Page 463, entries for dd, Didot, and didot (1/6/86)

Remove the circumflex accents.

Page 466, left column (1/19/85)

fractions, 67, 139–143, 152, 170, 179,

186, 444–445. huge, 196. slashed form, 67, 139–140, 233, 236.

Page 467, index entry for \hsize (6/14/85)

Add a reference to page 60.

Page 469, index entry for \kern (7/1/85)

Add a reference to page 306.

Page 469, index entry for kerns (7/1/85)

Add a reference to page 306.

Page 469, new entry (11/12/85)

l after fil, \underline{271}, 337.

Page 469, second line on the right (9/13/85)

L^{A}TEX, 137.

Page 470, index entries for \longleftarrow thru \Longrightarrow (10/5/84)

The references to page 358 should be underlined (seven times).

Page 475, index entry for punctuation in formulas (4/29/85)

Add a reference to page 161.

Page 476, index entry for \scriptspace (8/10/85)

Change ‘445’ to ‘445–446’.

Page 478, first and last lines (10/11/84)

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):

styles of math formatting, 140–141, 441–447.

Page 478, new entry after tabbing (5/28/85)

tables, see alignments, tabbing.

Page 478, tabskip entries (3/25/85)

Instead of ‘237–239’ and ‘237–238’ it should say ‘\underline{237}–\underline{239}’ twice.

Page 481, the entry for \widetilde (9/23/85)

Page 359 should be underlined.

Page 483, lines 16–17 (1/19/85)

       P.O. Box 9506
       Providence RI 02940-9506, USA.

Page 483, lines 22–23 (1/19/85) P.O. Box 9506 Providence RI 02940-9506, USA.

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.