Bugs in Computers & Typesetting as of 15 Aug 1998 1

This is a list of all substantial corrections made to Computers & Typesetting since the publication of the final printed versions of those books. Corrections made to the softcover version of The TEXbook are the same as corrections to Volume A. Corrections to the softcover version of The book are the same as corrections to Volume C. Changes to the mini-indexes and master indexes of Volumes B, D, and E are not shown here unless they are not obviously derivable from what has been shown.

Page A43, line −17 (8/4/98)

into your manuscript, if the b-key on your keyboard is broken. (An optional

Page A96, lines 9 and 10 (8/6/98)

Before 1998, some German words changed their spelling when split between lines. For example, ‘backen’ became ‘bak-ken’ and ‘Bettuch’ sometimes became ‘Bett-

Page A107, line 2 (8/5/98)

ually, you might be tempted to set \tolerance=10000; this allows arbitrarily bad

Page A115, line −19 (8/5/98)

If there’s no room for such an insertion on this page, TEX will insert it at the top of

Page A119, line 15 (8/5/98)

of \dimen3, assuming that \dimen3 is positive.

Page A233, line −2 (8/5/98)

could avoid this by adding \hskip 0pt minus-1fil; then an oversize text would

Page A277, line 1 (8/5/98)

⟨code assignment⟩ ⟶ ⟨codename⟩⟨8-bit number⟩⟨equals⟩⟨number⟩

Page A277, line −11 (8/5/98)

[Move this line, which defines ⟨at clause⟩, up to the top of the page.]

Page A289, line 24 (2/3/97)

⟨math field⟩ ⟶ ⟨filler⟩⟨math symbol⟩ | ⟨filler⟩{⟨math mode material⟩}

Page A309, line 3 (8/12/97)

8.4. $_{3} x_{11} ^_{7} 2_{12} $_{3} ~_{13} ␣_{10} \underline{\overline{TeX}} b_{11} v_{11} ␣_{10}. The final space comes from the

Page A318, lines 12 and 13 (8/5/98)

  15.8. \advance\dimen2 by\ifnum\dimen2<0 -\fi.5\dimen3
        \divide\dimen2 by\dimen3 \multiply\dimen2 by\dimen3

Page A348, lines 14–16 (8/6/98)

   \def\@if#1{true}{\let#1=\iftrue}%
  \expandafter\expandafter\expandafter
   \def\@if#1{false}{\let#1=\iffalse}%

Page A356, line 21 (8/6/98)

\def\AA{\leavevmode\setbox0=\hbox{!}\dimen@=\ht0 \advance\dimen@ by-1ex

Page A356, lines 9–21 from the bottom (8/6/98)

\def\S{\mathhexbox278} \def\P{\mathhexbox27B} \def\Orb{\mathhexbox20D}
\def\oalign#1{\leavevmode\vtop{\baselineskip0pt \lineskip.25ex
  \ialign{##\crcr#1\crcr}}} \def\o@lign{\lineskiplimit=0pt \oalign}
\def\ooalign{\lineskiplimit=-\maxdimen \oalign} % chars over each other
{\catcode`p=12 \catcode`t=12 \gdef\\#1pt{#1}} \let\getf@ctor=\\
\def\sh@ft#1{\dimen@=#1 \kern\expandafter\getf@ctor\the\fontdimen1\font
  \dimen@} % kern by #1 times the current slant
\def\d#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{-1ex}.\hidewidth}}}
\def\b#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{-3ex}%
    \vbox to.2ex{\hbox{\char'26}\vss}\hidewidth}}}
\def\c#1{{\setbox0=\hbox{#1}\ifdim\ht0=1ex \accent'30 #1%
  \else\ooalign{\unhbox0\crcr\hidewidth\char'30\hidewidth}\fi}}
\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\Orb}}}

Page A364, line 9 (8/9/98)

\def\makefootline{\baselineskip=24pt \lineskiplimit=0pt
    \line{\the\footline}}

Page A364, line 4 from the bottom (8/6/98)

\def\fmtversion{3.1415926} % identifies the current format

Page A447, bottom line (6/3/98)

— JOHN SMITH, The Printer’s Grammar (1755)

Page A450, lines 11–13 (4/12/98)

between ‘e’ and ‘n’ there are five relevant values in this case (2 from _{0}h_{0}e_{2}n_{0}, 0 from _{0}h_{0}e_{0}n_{0}a_{4}, 0 from _{0}h_{0}e_{0}n_{5}a_{0}t_{0}, 1 from _{1}n_{0}a_{0}, and 0 from _{0}n_{2}a_{0}t_{0}); the maximum of these is 2. The result of all the maximizations is Page A453, line 6 (8/5/98)

tion dictionary, except that plain TEX blocks hyphens after the very first letter or be-

Page A464, right column (8/6/98)

*\edef, 215–216, 275, 328, 373–374.

Page A466, right column (8/8/98)

\getfactor, 356, \underline{375}, 398.

Page A467, right column (8/5/98)

*\hfilneg, 72, 100, 283, 285, 290, 397.

Page A469, left column (8/5/98)

italic type, 13–14, 100, 127, 165, 409, 428, 430.

Page A469–A477, passim (5/13/98)

Add page 272 to the index entries for \lastskip, \pagedepth, \pagefilllstretch,
\pagefillstretch, \pagefilstretch, \pagegoal, \pageshrink, \pagestretch, \pagetotal,
\parshape, \prevdepth, and \spacefactor.

Also change ‘Luckombe, Philip’ to ‘Smith, John’.

Page A472, right column (8/6/98)

*\noexpand, \underline{209}, \underline{213}, 215, 216, 377, 424.

Page A473, left column (8/6/98)

\Orb ( ◯ ), \underline{356}.

Page Bxiv, line 13 (4/19/96) preprocessor converts these into numeric constants that are 256 or more. This Page Bxiv, line −1 (4/19/96)

This file contains one line per string, starting with string number 256, then number 257,

Page Bxv, lines 10 and 11 (4/19/96)

In this case, occurrences of "" in the WEB program will be replaced by 256; occurrences of "This longer string" will be replaced by 257. The symbol @$ stands for the numeric

Page B2, line −10 (3/8/95)

define banner ≡ ´ This␣is␣TeX,␣Version␣3.14159´ { printed when TEX starts }

Page B169, line 13 (9/22/95)

something in a “muskip” register, or to one of the three parameters \thinmuskip, \medmuskip,

Page B221, line 9 (3/4/95)

define non address = 0 { a spurious bchar label }

Page B221, line 17 (3/4/95)

font params : array[internal font number ] of font index ; { how many font parameters are present }

Page B256, insert new line 12 before the bottom (3/7/95)

glue temp: real ; { glue value before rounding }

Page B258, line 11 before the bottom becomes four lines (3/7/95)

625. define billion ≡ float constant (1000000000) define vet glue(#) ≡ glue temp ← #;

if glue temp > billion then glue temp ← billion else if glue temp < −billion then glue temp ← −billion

⟨ Move right or output leaders 625 ⟩ ≡

Page B258, lines 3–6 from the bottom (3/7/95)

begin vet glue(float (glue set (this box )) ∗ stretch (g)); rule wd ← rule wd + round (glue temp); end;

end else if shrink order (g) = g order then

begin vet glue(float (glue set (this box )) ∗ shrink (g)); rule wd ← rule wd − round (glue temp);

Page B260, line 13 from the bottom (6/26/93)

doing leaders ← outer doing leaders ; dvi v ← save v ; dvi h ← save h ; cur v ← base line;

Page B261, insert new line after line 7 (3/7/95)

glue temp: real ; { glue value before rounding }

Page B262, lines 3–6 from the bottom (3/7/95)

begin vet glue(float (glue set (this box )) ∗ stretch (g)); rule ht ← rule ht + round (glue temp); end;

end else if shrink order (g) = g order then

begin vet glue(float (glue set (this box )) ∗ shrink (g)); rule ht ← rule ht − round (glue temp);

Page B264, line 22 (6/26/93)

doing leaders ← outer doing leaders ; dvi v ← save v ; dvi h ← save h ; cur h ← left edge;

Page B297, line 11 (3/7/95)

width (p) ← mu mult (width (p)); subtype(p) ← explicit ;

Page B309, line 7 (9/22/95)

if cur style < text style then { display style }

Page B356, line −5 (3/4/95) hang after = 1, and hang indent = 0. Note that if hang indent = 0, the value of hang after is

Page B388, bottom line (3/4/95)

if bchar label [hf ] ≠ non address then { put left boundary at beginning of new line }

Page B406, line 10 (5/1/98)

q ← p; { now node q represents p_{1} … p_{l−1} }

Page B503, line 12 (3/4/95) of the following procedure. (Exception: The tabskip glue isn’t trapped while preambles are being scanned.)

Page B529, line 12 (3/4/95)

undump(0)(fmem ptr − 1)(bchar label [k]); undump(min quarterword )(non char )(font bchar [k]);

Page B534, insert new material between lines −16 and −15 (3/20/95)

while input ptr > 0 do if state = token list then end token list else end file reading ;

Page B534, line −2 (3/20/95)

temp ptr ← cond ptr ; cond ptr ← link (cond ptr ); free node(temp ptr , if node size);

Page B535, line 9 (3/20/95)

begin init for c ← top mark code to split bot mark code do

if cur mark [c] ≠ null then delete token ref (cur mark [c]); store fmt file; return; tini

Page C23, line −7 (8/5/98)

x_{1} = ss = w − x_{5}; y_{3} − y_{1} = ygap

Page C94, line −11 (3/4/95)

put are assumed to have square pixels. But if, for example, the mode def sets

Page C107, line 15 (3/4/95)

labels(1a, 1b, 2a, 2b, 3a, 3b, 4a, 4b, range 1 thru 36); endchar;

Page C123, lines 21 and 22 (12/19/95)

EXERCISE 14.3

Use a rotated quarter-circle to produce ‘ ’ in font position ‘c’.

Page C129, lines 6–17 (8/5/98)

⟨path primary⟩ ⟶ ⟨pair primary⟩ | ⟨path variable⟩ | ( ⟨path expression⟩) | reverse ⟨path primary⟩ | subpath ⟨pair expression⟩ of ⟨path primary⟩

⟨path secondary⟩ ⟶ ⟨pair secondary⟩ | ⟨path primary⟩

| ⟨path secondary⟩⟨transformer⟩ ⟨path tertiary⟩ ⟶ ⟨pair tertiary⟩ | ⟨path secondary⟩ ⟨path expression⟩ ⟶ ⟨pair expression⟩ | ⟨path tertiary⟩

| ⟨path subexpression⟩⟨direction specifier⟩ | ⟨path subexpression⟩⟨path join⟩ cycle

⟨path subexpression⟩ ⟶ ⟨path expression⟩ | ⟨path subexpression⟩⟨path join⟩⟨path tertiary⟩

Page C134, line 8 (3/4/95)

of p; if t ≤ 0, precontrol t of p is z_{0}. In particular, if t is an integer, postcontrol t of p

Page C139, illustration (8/5/98)

[Remove the labels 2r, 2, and 2l below their dots.]

Page C143, top two lines (3/4/95)

In order to have some transform variables to work with, it’s necessary to ‘hide’ some declarations and commands before giving the next exprs:

Page C171, line 19 (8/5/98)

(⟨path tertiary⟩) and (⟨pair tertiary⟩). A pair expression is not considered to

Page C172, line 14 (8/5/98)

been evaluated and changed to numeric tokens before being substituted for s.

Page C175, line 23 (1/11/88)

expand into a sequence of tokens. (The language SIMULA67 demonstrated that it is

Page C206, minor changes to lines −19 to −5 (3/4/95)

Path at line 15, before subdivision into octants:
(1.53745,9.05345)..controls (1.53745,4.00511) and (5.75409,-0.00049)
 ..(10.85147,-0.00049)..controls (16.2217,-0.00049) and (20.46255,4.51297)
 ..(20.46255,9.94655)..controls (20.46255,14.99713) and (16.23842,19.00049)
 ..(11.13652,19.00049)..controls (5.77066,19.00049) and (1.53745,14.48491)
 ..cycle
Cycle spec at line 15, after subdivision:
(1.53745,9.05345) % beginning in octant `SSE'
   ..controls (1.53745,6.58786) and (2.54324,4.371)
 ..(4.16621,2.74803) % segment 0
% entering octant `ESE'
   ..controls (5.8663,1.04794) and (8.24362,-0.00049)
 ..(10.85147,-0.00049) % segment 0
% entering octant `ENE'

… and so on; there are lots more numbers! What does this all mean? Well, the first segment of the curve, from (1.53745, 9.05345) to (10.85147, −0.00049), has been

Page C207, minor changes to lines 1–23 (3/4/95)

Cycle spec at line 15, after subdivision and autorounding:
(2,9.05348) % beginning in octant `SSE'
   ..controls (2,6.50526) and (3.02194,4.22272)
 ..(4.6577,2.58696) % segment 0
% entering octant `ESE'
   ..controls (6.2624,0.98225) and (8.45786,0)
 ..(10.85873,0) % segment 0
% entering octant `ENE'

Point (1.53745, 9.05345), where there was a vertical tangent, has been rounded to (2, 9.05348); point (10.85147, −.00049), where there was a horizontal tangent, has been rounded to (10.85873, 0); the intermediate control points have been adjusted accordingly. (Rounding of x coordinates has been done separately from y coordinates.) Finally, with autorounding = 2, additional adjustments are made so that the 45^{∘} transition point will occur at what thinks is a good spot:

Cycle spec at line 15, after subdivision and double autorounding:
(2,9.05348) % beginning in octant `SSE'
   ..controls (2,6.6761) and (3.07103,4.42897)
 ..(4.78537,2.71463) % segment 0
% entering octant `ESE'
   ..controls (6.46927,1.03073) and (8.62749,0)
 ..(10.85873,0) % segment 0
% entering octant `ENE'

(Notice that 4.78537 + 2.71463 = 7.50000; when the slope is −1 at a transition point

Page C210, line −7 (8/5/98)

| ⟨numeric token primary⟩

Page C210, line −2 (8/5/98)

⟨numeric token primary⟩ ⟶ ⟨numeric token⟩ / ⟨numeric token⟩

Page C211, line 16 (8/5/98)

| ⟨numeric token primary not followed by + or - or a numeric token⟩

Page C213, lines 17–27 (8/5/98)

⟨path primary⟩ ⟶ ⟨pair primary⟩ | ⟨path variable⟩ | ⟨path argument⟩ | ( ⟨path expression⟩) | begingroup ⟨statement list⟩⟨path expression⟩ endgroup | makepath ⟨pen primary⟩ | makepath ⟨future pen primary⟩ | reverse ⟨path primary⟩ | subpath ⟨pair expression⟩ of ⟨path primary⟩ ⟨path secondary⟩ ⟶ ⟨pair secondary⟩ | ⟨path primary⟩

| ⟨path secondary⟩⟨transformer⟩ ⟨path tertiary⟩ ⟶ ⟨pair tertiary⟩ | ⟨path secondary⟩ ⟨path subexpression⟩ ⟶ ⟨path expression⟩

| ⟨path subexpression⟩⟨path join⟩⟨path tertiary⟩

Page C213, line −4 (8/5/98)

⟨path expression⟩ ⟶ ⟨pair expression⟩ | ⟨path tertiary⟩

Page C246, line 5 of answer 14.15 (8/5/98)

/length(postcontrol t of p − point t of p) enddef;

Page C246, line 10 of answer 14.15 (8/5/98)

/length(precontrol t of p − point t of p) enddef;

Page C252, line −6 (8/5/98)

h + o and bot y_{4} = −o, so nothing needs to be done there. We should, however, say

Page C257, large display on line 5 (3/4/95)

\begin{cases}boolean \\ numeric \\ pair \\ path \\ pen \\ picture \\ string \\ transform \end{cases}\} ⟨expression⟩; \begin{cases}⟨boolean⟩ \\ ⟨numeric⟩ \\ ⟨pair⟩ \\ ⟨string⟩ \\ ⟨transform⟩ \end{cases}\} \begin{cases}< \\ <= \\ = \\ <> \\ >= \\ > \end{cases}\} \begin{cases}⟨boolean⟩ \\ ⟨numeric⟩ \\ ⟨pair⟩ \\ ⟨string⟩ \\ ⟨transform⟩ \end{cases}\};

Page C261, line −15 (8/5/98)

       Hacks: gobble, gobbled, killtext; capsule_def; numtok.

Page C286, line 15 (8/5/98)

isn’t entirely expanded by expandafter; only ’s first step in loop expansion

Page C299, swap lines 11 and 12 (8/5/98)

        def lbrack = hide(delimiters []) lookahead [ enddef;
        let [[[ = [; let ]]] = ]; let [ = lbrack;

Page C311, line 2 (8/5/98)

fine := 4 − eps , and breadth [1] := 4 − eps . (A small amount eps has been subtracted

Page C323, line −3 (8/5/98)

statement occurs, the special string ‘"title " & ⟨title⟩’ is output. (This is how the

Page C332, lines 22–24 (8/5/98)

be replicated so that the final proofs will be rep times bigger than usual, and the pattern will be clipped slightly at the edges so that discrete pixels can be seen plainly.

Page C341, line 23 (10/10/96)

\def\:{\setbox0=\hbox{\noboundary\char\n\noboundary}%

Page C346, and throughout the index (3/7/95)

(Many index entries for rules of syntax in chapters 25–26 should have been underlined)

Page C351, right column (9/22/97)

*intersectiontimes, \underline{136}, 178, 213, 265, 294, 298.

Page C353, right column (8/5/98)

⟨numeric token atom⟩, delete this entry. ⟨numeric token primary⟩, 72, \underline{210}.

Page C354, left column (7/26/98)

Orwell, George (= Blair, Eric Arthur), 85.

Page C355, right column (3/7/95)

rt, 23, 77, 80, 103, 147, 151, \underline{273}.

Page C361, lines 14–15 (4/29/97)

       email: {\tt TUG@tug.org}
       internet: {\tt http://www.tug.org/}
       }

Page C361, bottom five lines (4/29/97)

Don’t delay, subscribe today! That address again is TEX Users Group

                                                                 email: TUG@tug.org
                                                      internet: http://www.tug.org/

DONALD E. KNUTH, The TEXbook (1996)

Page Dxiv, line 13 (4/19/96) preprocessor converts these into numeric constants that are 256 or more. This Page Dxiv, line −1 (4/19/96)

This file contains one line per string, starting with string number 256, then number 257,

Page Dxv, lines 10 and 11 (4/19/96)

In this case, occurrences of "" in the WEB program will be replaced by 256; occurrences of "This longer string" will be replaced by 257. The symbol @$ stands for the numeric

Page D2, line −17 (8/7/98)

define banner ≡ ´ This␣is␣METAFONT,␣Version␣2.7182´ { printed when  starts }

Page D50, line 26 (8/7/98)

if b > 0 then

Page D138, line 14 from the bottom (3/6/95) 2′) Let Z_{k}^{(j+1)} = \frac{1}{2}(Z_{k}^{(j)} + Z_{k+1}^{(j)}), for 1 ≤ k ≤ n − j, for 1 ≤ j < n.

Page D190, D191, D194, D195 (3/8/95) ( bug 560 introduced extensive changes to the code on these four pages)

Page D289, lines 9 and 10 (3/8/95)

p ← dep list (p); r ← inf val ;

repeat if value(info(p)) ≥ value(r) then

Page D297, mini-index (6/6/98)

the meaning of loc should be ‘macro’

Page D310, line 7 (8/7/98)

if (loc = k + 1) ∧ (length (buffer [k]) = 1) then cur mod := buffer [k]

Page D363, lines 10 and 11 (3/1/95)

begin if (max c[dependent ] div ´ 10000 ≥ max c[proto dependent ]) then t ← dependent

Page D518, insert new material between lines 7 and 8 (3/20/95)

while input ptr > 0 do

if token state then end token list else end file reading ; while loop ptr ≠ null do stop iteration ;

Page D518, line 18 (3/20/95)

loop ptr ← cond ptr ; cond ptr ← link (cond ptr ); free node(loop ptr , if node size);

Page D546, left column (4/11/96)

Stern, Moritz Abraham: 526.

Page Exiii, lines 3 and 4 from the bottom (7/17/98)

“Metamarks: Preliminary studies for a Pandora’s Box of shapes” by Neenie Billawala, Stanford Computer Science report 1256 (Stanford, California,

Page E87, bottom line (6/4/98)

— JOHN SMITH, The Printer’s Grammar (1755)

Page E95, line 16 (8/8/98)

- - z_{1r} - - z_{1l} - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E95, line 11 from the bottom (8/8/98)

- - z_{1r} - - z_{1l} - - subpath (t, 0) of (z_{3r}{z_{9} − z_{3}} . . z_{5r})

Page E95, line 8 from the bottom (3/6/95)

cmchar "Extensible vertical arrow--extension module";

Page E97, line 8 from the bottom (3/6/95)

cmchar "Extensible double vertical arrow--extension module";

Page E113, line 9 (3/6/95)

x_{5} = .5[x_{4}, x_{6}]; x_{4} − x_{6} = 1.2u; lft x_{5r} = hround(.5w − .5curve);

Page E113, line 10 from the bottom (3/6/95)

x_{5} = .5[x_{4}, x_{6}]; x_{4} − x_{6} = 4.8u; lft x_{5r} = hround(.5w − .5max size);

Page E115, line 9 (3/6/95)

x_{5} = .5[x_{4}, x_{6}]; x_{4} − x_{6} = 1.2u; lft x_{5r} = hround(.5w − .5curve);

Page E115, line 12 from the bottom (3/6/95)

x_{5} = .5[x_{4}, x_{6}]; x_{4} − x_{6} = 4.8u; lft x_{5r} = hround(.5w − .5max size);

Page E147, lines 11–14 from the bottom (7/7/97)

pos_{3}(.8[hair , stem ], 0); pos_{4}(vair , −90); pos_{5}(hair , −180); pos_{6}(vair , −270); pos_{7}(stem , −360); pos_{8}(vair , −450); pos_{9}(hair , −540); x_{0} = x_{1} = x_{9}; lft x_{0l} = hround(1.5u − .5hair ); x_{2} = x_{4} = x_{6} = x_{8} = .5w − .25u; rt x_{3r} = hround(w − 1.75u); rt x_{7r} = hround(w − u);

Page E147, line 8 from the bottom (7/7/97)

y_{5} = .5[y_{4}, y_{6}]; top y_{6r} − bot y_{4r} = vstem + eps ; bot y_{8} = −oo; y_{7} = y_{9} = .55[y_{6}, y_{8}];

Page E165, line 6 (2/8/97)

y_{1} + .5hair = h; x_{1} = x_{2} + .75u; pos_{1}(hair + dw , angle(2(x_{1} − x_{2}), y_{1} − y_{2}) + 90);

Page E165, line 10 (2/8/97)

x_{3} = .5[x_{2}, x_{4}]; x_{7} − .25u = .5[x_{6}, x_{8}]; rt x_{8r} = hround(w − .5u);

Page E187, line 9 (3/6/95)

lft x_{1l} = lft x_{2l} = hround(.5w − .5shaved stem ); top y_{1} = h; bot y_{2} = 0;

Page E189, line 8 (3/6/95)

lft x_{1l} = lft x_{2l} = hround(.5w − .5shaved stem ); top y_{1} = h; bot y_{2} = 0;

Page E233, line 21 (3/6/95)

path p; {{interim superness := more super ; p = pulled super arc_{l}(3, 4)(pull )}};

Page E327, line 5 (8/6/98)

lft x_{1} = hround .5u; x_{2} = w − x_{1}; y_{1} = y_{2} = good .y .7[x height , asc height ];

Page E239, line 7 from the bottom (3/6/95)

lft x_{6r} = hround u; x_{7} = 3u; x_{8} = w − 3.5u; rt x_{9l} = hround(w − u);

Page E253, line 2 from the bottom (8/9/98)

. . z_{3e}{down } . . {z_{5l} − z_{4l}}z_{4e} - - z_{5e} - - z_{6e}; % stroke

Page E263, line 21 (5/10/98)

path p; {{interim superness := more super ; p = pulled super arc_{l}(3, 4)(pull )}};

Page E289, line 2 from the bottom (8/9/98)

. . z_{3e}{down } . . {z_{5l} − z_{4l}}z_{4e} - - z_{5e} - - z_{6e}; % stroke

Page E291, line 18 (3/6/95)

x_{4} = ^{1}/_{3}[x_{5}, x_{3l}]; z_{4} = z_{5} + whatever ∗ (15u, .1h);

Page E297, line 17 (5/10/98)

path p; {{interim superness := more super ; p = pulled super arc_{l}(3, 4)(pull )}};

Page E303, line 17 (5/10/98)

path p; {{interim superness := more super ; p = pulled super arc_{l}(3, 4)(pull )}};

Page E309, line 7 from the bottom (5/8/98)

y_{@0} = y_{@2l} − bracket − eps ;

Page E313, line 7 from the bottom (5/8/98)

y_{@0} = y_{@2l} + bracket + eps ;

Page E319, line 8 (5/11/98)

loop top = if serifs : Vround .77[vair , fudged.stem ] else: vair fi;

Page E373, lines 5 and 6 from the bottom (7/13/97)

top y_{1r} = vround .95h + oo; top y_{2r} = h + oo; y_{3} = .5h; bot y_{4r} = −oo; bot y_{5r} = vround .08h − oo; y_{5l} := good .y y_{5l}; x_{5l} := good .x x_{5l};

Page E381, lines 11 and 12 from the bottom (7/13/97)

top y_{1r} = vround .93h + oo; top y_{2r} = h + oo; y_{3} = .5h; bot y_{4r} = −oo; bot y_{5r} = vround .07h − oo;

Page E389, bottom two lines (8/7/98)

numeric aa , bb , cc ; bb = b/y; cc = c/y; aa = a ∗ a − bb ∗ bb ; (a ∗ (cc ++ sqrt aa ) − bb ∗ cc )/aa enddef;

Page E423, line 17 (8/8/98)

x_{13} = x_{11} −.5; top y_{14r} = min(^{10}/_{7}x height +.5bulb diam , h)+1; top y_{11} = x height ;

Page E427, line 21 (8/8/98)

x_{23} = x_{21} −.5; top y_{24r} = min(^{10}/_{7}x height +.5bulb diam , h)+1; top y_{21} = x height ;

Page E431, lines 18 and 19 (8/8/98)

filldraw z_{0} - - (x_{0}, y_{2l}) - - z_{1l}{right } . . {left }z_{1r} - - subpath (t, 0) of (z_{3r} . . {2(x_{0} − x_{3}), y_{0} − y_{3}}z_{5r})

Page E431, line 2 from the bottom (8/8/98)

- - z_{1l}{right } . . {left }z_{1r} - - (x_{0}, y_{2r}) - - cycle; % arrowhead and stem

Page E433, lines 13 and 14 (8/8/98)

filldraw z_{0} - - (x_{0}, y_{2l}) - - z_{1l}{left } . . {right }z_{1r} - - subpath (t, 0) of (z_{3l} . . {2(x_{0} − x_{3}), y_{0} − y_{3}}z_{5r})

Page E433, line 2 from the bottom (8/8/98)

- - z_{1l}{left } . . {right }z_{1r} - - (x_{0}, y_{2r}) - - cycle; % arrowhead and stem

Page E463, line 15 (8/8/98)

- - - z_{1r} . . z_{1l} - - - subpath (t, 0) of (z_{3r}{z_{9} − z_{3}} . . z_{5r})

Page E463, line 3 from the bottom (8/8/98)

- - - z_{1r} . . z_{1l} - - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E465, line 16 (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3r}{z_{9} − z_{3}} . . z_{5r})

Page E465, line 3 from the bottom (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E467, line 18 (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3r}{z_{9} − z_{3}} . . z_{5r})

Page E467, line 3 from the bottom (8/8/98)

- - - z_{11l} . . z_{12r} - - - subpath (t, 0) of (z_{13l}{z_{19} − z_{13}} . . z_{15r})

Page E483, lines 12–14 from the bottom (3/6/95)

beginarithchar(oct "004"); pickup fine.nib; pickup rule.nib; numeric del ; del = dot size − currentbreadth ; % currentbreadth = fine x_{3} − .5del = good .x(.5w − .5del ); center on (x_{3}); y_{3} + .5del = good .y(math axis + math spread [.5x height , .6x height ] + .5del );

Page E485, bottom line (6/4/98)

— JOHN SMITH, The Printer’s Grammar (1755)

Page E489, line 4 (8/8/98)

lft x_{6} = hround u; x_{2} = w − x_{6}; top y_{8} = h; y_{8} − y_{4} = x_{2} − x_{6};

Page E489, line 10 (8/8/98)

lft x_{6} = hround u; x_{2} = w − x_{6}; top y_{8} = h; y_{8} − y_{4} = x_{2} − x_{6}; circle points ;

Page E491, line 3 from the bottom (3/6/95)

spread := 2ceiling(spread^{#} ∗ hppp/2) + eps ; enddef;

Page E507, line 15 (8/8/98)

- - - z_{1r} . . z_{1l} - - - subpath (t, 0) of (z_{3r}{z_{9} − z_{3}} . . z_{5r})

Page E507, line 3 from the bottom (8/8/98)

- - - z_{11r} . . z_{11l} - - - subpath (t, 0) of (z_{13l}{z_{19} − z_{13}} . . z_{15r})

Page E509, line 17 (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E509, lines 3 and 4 from the bottom (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E511, line 17 (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E511, lines 3 and 4 from the bottom (8/8/98)

- - - z_{1l} . . z_{1r} - - - subpath (t, 0) of (z_{3l}{z_{9} − z_{3}} . . z_{5r})

Page E541, bottom line (2/27/97) labels(1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); endchar;

Page E568, the example of cmtex8 (4/18/96)

(The word ‘logician’ should not be hyphenated.)

Page E574, left column (3/6/95)

currentbreadth , 483, \underline{545}, 546.

Page E577, right column (6/4/98)

Delete the entry for Luckombe

Page E579, left column (6/4/98)

Smith, John, 87, 485.