Last Updated 1 August 2001.
Errors Contributed by Nelson H. F. Beebe

This file records errata in the book

@String{pub-SV                  = "Spring{\-}er-Ver{\-}lag"}
@String{pub-SV:adr              = "Berlin, Germany~/ Heidelberg,
                                  Germany~/ London, UK~/ etc."}

  author =       "David Salomon",
  title =        "The Advanced {\TeX}book",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  year =         "1995",
  ISBN =         "0-387-94556-3",
  LCCN =         "Z253.4.T47 S25 1995",
  acknowledgement = ack-nhfb,
  pages =        "xx + 490",
  price =        "US\$39.95",
  bibdate =      "Wed Nov 08 16:46:55 1995",

In the following, negative line numbers count from the bottom of the

p. vii, l. -1:
        TeXand ->
        TeX and

p. 22, l. -17:
        13_5: the text should note here that the subscript 5 refers
        to the catcode

p. 23, l. 15:
        mutiplies ->

p. 55, l. -9:
        The text "which produces" just before the figure should not
        be indented.

p. 68, l. -16:
        Sanskrit), which are often ->
        Sanskrit); they are often

p. 89, l. 21:
        The line "To break ... \break," is very loose, and is not
        right justified.

p. 91, l. -9 there is a space
         missing at the end of the argument in the quoted macro: according
         to the discussion on p. 95, it should read


          where * marks a single space.

p. 105, l. 5:
        paragarph ->

p. 128, l. -22 (Exercise 5.21):
        Definiton ->

p. 128, l. -18:
        .. such as French is used, where accented dotless \'i's are
        common ...

                French has no acute accent on the letter i, just a
                circumflex accent, and even that is rare, as in `ci
                g\^it Victor Hugo' on a tombstone.

                Turkish is an example of a language where there
                actually is a dotless i, but I don't know if Turkish
                uses accents. Pierre Mackay 
                is an expert on Turkish, and can provide further

p. 130, l. 8:
        |\def\abc ->

p. 184, l. -1:
        at the Index ->
        look at the Index

p. 188, l. 20:
        be inserted ->
        are inserted

p. 219, l. -21:
        ... how the \tt commands was expanded ...
        to `\fam \ttfam \tentt', thereby ...

                The \tt command is NOT expanded this way in the .toc file
                shown on the next page

p. 240, l. 15--16:
        a \phantom can also be used for this purpose

                No: this is not the same as would be obtained with
                \rlap, because the text in the \phantom would be
                invisible in the output.

p. 271, l. 3:
        (page 5. ->
        (page 5).

p. 274, l. -12:
        pre ferred ->

p. 275, l. -6:
        1984, edition ->
        1984 edition

p. 278, l. 14:
        When \pretolerance=0, the first pass will always fail.

                No, it will pass if the line has zero badness.

p. 296, l. 13:
        J\^orgen ->

p. 306, l. 6:
        \uvbox255 ->

p. 307, l. 6:
        Any nonzero register in this group is written on the .dvi file.

                No, all ten \count registers 0..9 are written on the
                .dvi file; see TeX: The Program, section 585, bop command.

p. 308, l. 15:
        3pc each, enough for about four lines of text. ->
        3pc each, enough for about three lines of text.

                3pc == 36pt; with a 10pt font and 12pt leading,
                three lines will take 10pt + 12pt + 12pt = 34pt; four
                lines would need 46pt.

p. 315, l. -4:
        which that the page ->
        which ...???... the page

                Text was apparently lost from the sentence here, but I
                don't know what the author intended to say.

p. 338, l. 12:
        OTRsimply ->
        OTR simply

p. 346, l. 9:
        Lines 1--19 ->
        Lines 1--16

        Lines 22--24 ->
        Lines 19--23

p. 346, l. 10:
        line 22, ->
        line 19,

p. 346, l. 15:
        line 9, ->
        line 8,

p. 346, l. 16:
        lines 12--15, ->
        lines 10--13

p. 347, l. 6:
        lines 27--29 ->
        lines 25--28

p. 348, l. -13 -- -12:
        The sp is necessary since, otherwise, the value of \lineno
        would be converted to scaled points.

                No, use of \lineno here would raise an error:

% tex
*\newcount \lineno

*\lineno = 99

*\setbox0=\vbox{\vskip \lineno \relax}
! Illegal unit of measure (pt inserted).

<*> \setbox0=\vbox{\vskip \lineno \relax

                Since \lineno is an integer, exactly one of the
                standard TeX dimension units must be supplied after
                \lineno to be acceptable as an argument to \vskip.

p. 353, l. 10,11:
        500sp ... 1000sp
                The first incorrectly uses {\tt sp} instead of {\rm sp}.

p. 354, l. 16:
                The second incorrectly uses {\tt sp} instead of {\rm sp}.

p. 355, l. 16:
        and17.5 ->
        and 17.5

p. 358, l. -11 .. p. 359, l. 3:
                The dimensions 1sp and 2sp occur in font \tt; they should
                be in font \rm for consistency with the rest of the book.

p. 366, l. 14:
        Haralambous and the main ->
        Haralambous and is the main

p. 376, l. -11 -- -10:
        transcript file).'. ->
        transcript file).'.

p. 391, l. -4:
        #1#2 \strut ->

                If the space is included here, it could be a place
                where a linebreak could occur in the footnote, which
                would force the struct onto the next line, and thereby
                make the footnote one line higher than it should be.

p. 392, l. -5:
        four footnote lines ->
        three footnote lines ->

                A value of 0.4in is 28.908pt; with the footnote
                set in 7pt text with \baselineskip = 8pt, n lines
                of text require 7 + (n-1)*8 points, or 8*n - 1 points;
                setting "8n - 1 = 28.908" and solving for n gives
                3.73850, which must be truncated to 3.

p. 425, l. 19:
        Here is its definition ->
        Here is its definition:

p. 437, l. 1:
        Pehong, C. ->
        Chen, P.
                Pehong is his given name, and Chen his family name.

        experience ->
                [This capitalization is consistent with other entries
                in the bibliography.]

p. 456, l. 11:
        G. Lamaitre ->
        G. Lemaitre
                The word maitre is masculine, so unless this name
                is a horrid corruption of French grammar, it takes
                the masculine article, Le; I personally know someone 
                named Lemaitre.

p. 469, l. -13:
        The answers to the 10 exercise in chapter 17 are missing.
        The answers to exercises 19.2 -- 19.5 are omitted too, but
        the text warns on p. 410 of the omission; I find no such
        warning in Chapter 17.

p. 484, l. 11, column 1:
        count0 ->
                [Use font \tt for this word!]

p. 484, l. 5, column 2:
        Pehong, C., 437 ->
        Chen, P., 437
                [and move this index entry to p. 473, column 2.]


Errors Contributed by Guenter Rote on 20 Dec 95.

Your claim that \hboxes or \vboxes with negative dimensions don't show in
print (p.38 top and p.45 bottom respectively) must be a misunderstanding.
You were probably thinking of rules. Also, I can set \ht0 \dp0 \wd0 to
any negative dimension I like.

The answer to exercise 8.7 is wrong. When you write \aste5, for example,
5 is a numeric quantity, but the number of asterisks printed will be the value
of \ctst. The correct answer is that
the macro \aste expects the number of stars to be printed in the counter
variable \ctst. (In fact, this is an example of bad programming practice.
Either remove the parameter: \def\aste{\ifnum \ctst>0...
or set \ctst=#1 inside \aste

An opposite case occurs on the bottom of p.117.
Why can you not just write
  \def\multbf #1{\if #1.\let\next=\relax
and continue with the rest of \actdef?
At least one can say that the use of futurelet is not sufficiently

Your answer to exercise 3.51 does not give the intended box. (At least, the
solution is in general not rotation-symmetric.
the second \vrule should be raised by 2\dimen0.
In general, the quantity by which the second vrule is raised must be
by \dimen0 bigger than the quantity by which the first vrule is lowered.
Similarly, the second \hrule should be raised by 2\dimen0 instead of
\dimen0 + \thick.  (In your example, the last two quantities happen to be equal.

In Exercise 11.5, there is a larger gap between the first and second row than
between the remaining rows.

In section 5.11 you give bad examples of superfluous expandafters.
On p.123, in the first example there is no need to expand { before \jobname,
and thus 2 \expandafters can be omitted.
The example works even if all three \expandafters in the first line are
omitted, see section 2.6.
Similarly, on the opposite page \macB works just as well without \expandafter. (Why!)

On p.257 and also in 13.12 you seem to encourage the use of relation symbols
< and > for the inner product notation  of vectors.  From a mathematical
standpoint, the use of \langle and \rangle should be encouraged instead.

On page 118, after Ex. 5.8, the macro \boxt is described but not shown; on the
other hand, the reader should rather not try to type in the verbatim-text
above the two boxes.
You should have rather checked the contents carefully before "fine-tuning the
page and line breaks".

The text of section 19.4 is a quite verbatim copy of 16.3.

Although you use \mark and \botmark etc. in the book it is not explained.
(At least not in the places mentioned in the index.
\string is not in the index.

On p.320, section 16.14, I find that the situation is not well explained.
In the first proposed solution
   \shipout \vbox{\unvbox 255 \vfil},
the \vfil is indeed superfluous, but this solution does achieve a ragged
bottom. (It does not get rid of underfull vbox messages.

In \breakup on p.340, is there any point in copying the penalty to box 1
instead of simply ignoring it?

On top of p.397 you write: The reason for the failure is that \penalty does
not invoke the output routine immediately.
If the reason for the failure were really just this, it could be easily solved
by setting \global\Savedtrue directly in \endinsert instead of inserting the penalty.

p.288, line -14. TeX is not positioned before
                        'pt post error'
but before
                        'post error'

p.289, line -5 should be something like $\left( a+b \right)$
                                              ^           ^

I think your "magical" explanation on the bottom of p.107 is wrong.
This has to do nothing with mouth and stomach but with grouping.
Since endgraph is enclosed in { }, the automatic resetting of \parshape=0
is kept local, and parshape is set to its original values at the closing }.
You might try to insert showlists after \endgraf to check that the consecutive
paragraphs are not read as one paragraph.

Misprints: p. 263, line 4: latter->letter
p. 315, line -4
p.123, line -11, \token2 should be  and in a different font.
p. 158 line -4 catocde
p. 241: The page number is affected by font changes in the heading line,
because \firstmark on top of p.424 is not enclosed in braces.
Also the size in the section headings is not uniform. compare sections 12.2
with 17.8 or 6.4