Digital Typography

by Donald E. Knuth (Stanford, California: Center for the Study of Language and Information, 1999), xvi+685pp.
(CSLI Lecture Notes, no. 78.)
ISBN 1-57586-010-4
Russian translation (Moscow: Mir), in preparation.

This is the third in a series of eight volumes that contain archival forms of my published papers, together with new material. (The first book in the series was Literate Programming; the second was Selected Papers on Computer Science.) The Digital Typography volume is characterized by the following remarks quoted from its preface.

This book brings together more than 30 articles and notes that I have written about the subject of digital typography, popularly called ``desktop publishing.'' It was my privilege to be present at a time when a significant revolution was taking place in the way words, symbols, and images were being rendered in printed documents, as analog methods gave way to digital methods that are amenable to computer processing.
I guess I must have ink in my veins: When I first learned about the potential of digital printing technology, I couldn't resist putting the rest of my life on hold while I tried to adapt the typographic wisdom of previous centuries to the possibilities of the present day. I hope the reader will be able to share some of the excitement of my decades-long quest to produce beautiful books with the help of computers.
Leonardo da Vinci made a sweeping statement in his notebooks: ``Let no one who is not a mathematician read my works.'' In fact, he said it twice, so he probably meant it. But, thank goodness, a lot of people failed to heed his injunction; non-mathematicians are quite capable of dealing with mathematical concepts, when the description isn't beclouded with too much jargon. So I would like to reverse Leonardo's dictum and say, ``Let everyone who is not a mathematician read my works.'' (Furthermore, mathematicians are invited too.)
Every author likes to be read, of course; I've quoted Leonardo chiefly as a sort of apology for the fact that some chapters of this book were originally addressed to professional mathematicians, while others were addressed to graphic artists or to people from other disciplines. My hope is that by keeping jargon to a necessary minimum I can communicate some significant ideas that cut across many specialized fields. Indeed, the study of printing is probably as interdisciplinary as any subject can be.

It has lots of cool graphics and the following chapters:

  1. Digital Typography [R59]
  2. Mathematical Typography [P91]
  3. Breaking Paragraphs into Lines [P98]
  4. Mixing Right-to-Left Texts with Left-to-Right Texts [Q88]
  5. Recipes and Fractions [Q75]
  6. The TeX Logo in Various Fonts [Q90]
  7. Printing Out Selected Pages [Q98]
  8. Macros for Jill [Q91]
  9. Problem for a Saturday Morning [Q92]
  10. Exercises for TeX: The Program [Q96]
  11. Mini-Indexes for Literate Programs [P144]
  12. Virtual Fonts: More Fun for Grand Wizards [Q113]
  13. The Letter S [P96]
  14. My First Experience with Indian Scripts [Q70]
  15. The Concept of a Meta-Font [P100]
  16. Lessons Learned from METAFONT [P110]
  17. AMS Euler---A New Typeface for Mathematics [P125]
  18. Typesetting Concrete Mathematics [Q107]
  19. A Course on METAFONT Programming [Q74]
  20. A Punk Meta-Font [Q94]
  21. Fonts for Digital Halftones [Q93]
  22. Digital Halftones by Dot Diffusion [P116]
  23. A Note on Digitized Angles [P136]
  24. TEXDR.AFT [written in 1977, never before published]
  25. TEX.ONE [written in 1977, never before published]
  26. TeX Incunabula [Q69]
  27. Icons for TeX and METAFONT [Q130]
  28. Computers and Typesetting [Q86]
  29. The New Versions of TeX and METAFONT [Q112]
  30. The Future of TeX and METAFONT [Q118]
  31. Questions and Answers, I [Q153]
  32. Questions and Answers, II [Q156]
  33. Questions and Answers, III [Q155]
  34. The final errors of TeX [written in 1998, not published elsewhere]

(Numbers like P91 and Q69 in this list refer to the corresponding papers in my list of publications.)

This book first arrived at Stanford on February 18, 1999; then, its glorious second printing arrived on May 26, 2012. It can be ordered from the publisher (CSLI), and also from the distributor (University of Chicago Press).

This is an electrifying book. The essays collected here helped lead typography from its mechanical and photographic past into its electronic, digital future. ... In Knuth's illuminating vision, mathematical typography took its proper place in the history of ideas, not as a niche subject, but as a broad and richly fascinating field that deserved and invited deep investigation. ... In addition to their scientific content, these essays often reveal the personable, quizzical, and humorous characteristics of the man behind the mathematics, qualities which those of us who were privileged to work with him remember with fondness. -- Charles A. Bigelow (1998)
The author of the monumental The Art of Computer Programming has outdone himself with this remarkable book. It is not often that a book dealing with a dry, esoteric topic elicits adjectives such as engrossing, engaging, and illuminating. Knuth shows convincingly how mathematics is put to use to produce better typesetting tools and fonts, while improved typesetting produces a much more elegant display of intricate mathematical formulas.
Even though the book is primarily a collection of essays, speeches, scholarly papers, and user-group articles spanning two decades, it has a seamless air. Knuth explains why the quality of typesetting of mathematics declined drastically during this century, to the extent that he set aside his main mathematical efforts for over ten years to set about remedying the situation. He details why he created TeX, and why he found it necessary to create METAFONT as well. Parts of the book read like a good mystery, and parts really put your mathematical background to the test. This book is itself an exemplar of typesetting at its best. If readers are not acquainted with Knuth's other works, after reading this book they will become converts.
In the many years I have been reviewing for this publication, I think this is the first time I can say ``This is an enjoyable book.'' Many books I have reviewed were well written, informative and useful; this one is all of the above, and enjoyable. -- E.J. Desautels (Computing Reviews, September 1999, page 433)
I have found this book a wonderful source of both information and knowledge. Whether you're new to type or you've been using it for 20 years or more, there's something here you didn't know. Go and buy it now. -- Peter Flynn (TUGboat, December 1999, page 365)
... full of the qualities for which Knuth is famed: original analyses, careful and deeply researched scholarship, explications which show how much he wants people to understand what he has found out, and unusual but apt quotations and humor. ... There is an enormous amount of material in this book, and you don't have to be fascinated by all of it to find it attractive, although quite a few will be. Of course, the care shown in the book production is exemplary, and the price remarkably low for it. -- Patrick Ion (Math Reviews, November 2002)
... He being a great writer, a dedicated typesetter and a rather meticulous font shaper, made this book an extreme pleasure to read. Every article, every page, contain interesting observations relevant to everybody who has ever been involved in writing books or articles.
--J. G. Groote, in Zentralblatt Math

Errata to the First Printing (1999)

page vii, bottom line
change 'Digital' to 'Digitized'
page xiv, line 7
change 'Reproduced with' to 'Reprinted by'
page xiv, lines 23 and 24
change 'permission of ... Incorporated' by 'permission'
page 6, lines 18 and 19 from the bottom
change 'invented in England about 1961' to 'invented during the 60s'
page 6, line 17 from the bottom
change 'but the dots weren't very small.' to 'which in those days weren't very small:'
page 18, line 18 from the bottom
change 'Chapter 17' to 'Chapter 16'
page 18, lines 7 and 9 from the bottom
change 'Slide 24' to 'Slide 25' and 'Slide 25' to 'Slide 24'
page 21, line 2 from the bottom
change 'not the' to 'note the'
page 23, top line
change 'tended' to 'tends'
page 33, bottom line
change '``monotype'' machines' to 'Monotype metal-casting machines'
page 37, line 4 from the bottom
change 'about 1550' to 'between 1540 and 1580'
page 43, line 22
change 'three parts per million' to 'one part in 3500'
page 59, lines 14 and 15 from the bottom
don't hyphenate the name 'Fischer'
page 59, line 9 from the bottom
change 'Dick' to 'Dirk'
page 59, line 7 from the bottom
use \ss (German sharp s) in the word 'Preussischer'
page 60, lines 12 and 13
change en-dashes to hyphens in the grant numbers
page 73, line 4 from the bottom
change ' Grimm's ' to ' Grimms' '
page 76, line 3 from the bottom
change '$L = j - l_j$' to '$L_j = l_j$'
page 79, line 4 of Figure 2
change '-.235' to '-.500'
pages 79 and 81, line 12 of each Figure
change ' it;' to 'it;'
page 82, in Figure 4
change 'First fit' to '(a) First fit', 'Best fit' to '(b) Best fit', and 'Total fit' to '(c) Total fit'
page 82, line 18
change '.-.320' to '-.320'
page 101, line 9
change '999--point penalty' to '999-point penalty'
page 101, line 17
change 'glue$(6,0,2)$' to 'glue$(w_2,18,0)$'
page 110, line 12 from the bottom
change 'erimetric' to 'perimetric'
page 117, line 22
change 'r:=\infty' to 'r:=-\infty'
page 118, line 23
change 'node a' to 'node $a$' (the 'a' should be in italics)
page 119, line 14 from the bottom
change '$A = d$' to '$A := s$'
page 119, insert new line before line 11 from the bottom
end. (should be indented to match begin and for above it)
page 119, line 9 from the bottom
change 'loop;' to 'loop:'
page 119, line 17; also page 119, bottom line; also page 120, line 4
change 'end;' to 'end.'
page 120, line 8
change 'begin if' to 'begin
page 123, line 8
change ' Grimm's ' to ' Grimms' '
page 123, line 11 from the bottom
change $6 + \root 3 \of 2$ to $6 + 3 \root 3 \of 2$
page 125, line 8 from the bottom
change 'his own' to 'reprinting his own'
page 125, line 6 from the bottom
change 'sent to me' to 'sent me'
page 139, line 7
change 'cluster as' to 'cluster as in'
page 143, line 12 from the bottom
change 'at present' to 'at present [1980]'
page 149, line 11
change 'loop' to 'loop:'
page 152, line 17
change 'Alteste' to 'älteste'
page 152, line 11 from the bottom
change 'PAGE--3' to 'PAGE-3'
page 152, lines 6 and 7 from the bottom
change 'Pascal User Manual and Report' to 'PASCAL User Manual and Report, second edition'
page 154, line 5 from the bottom
change '1991' to '1992'
page 155, line 4
change '1991' to '1992'
page 158, line 1
change 'conventions' to 'Conventions'
page 158, line 16
change 'simplest case' to 'Simplest Case'
page 159, line 1
change 'texts' to 'Texts'
page 160, line 12
change 'approach to implementation' to 'Approach to Implementation'
page 161, line 6
change 'bugs' to 'Bugs'
page 161, line 12 from the bottom
change 'L-chauvinism' to 'L-Chauvinism'
page 163, line 12
change 'Multi-level mixing' to 'Multi-Level Mixing'
page 179, line 15
change 'may    use cherries' to 'may use cherries'
page 183, line 7
change 'Volumes A and E' to 'Volumes A and C'
page 184, line 6
change 'printing out selected pages' to 'Printing Out Selected Pages'
page 198, line 6
change 'would printed' to 'would be printed'
page 200, line 1
change 'that will' to 'that will be'
page 201, line 9
change '21' to '20'
page 205, line 1
change 'problem 31' to 'problem 31 is'
page 207, line 19 from the bottom
change 'is need' to 'is needed'
page 216, line 1
change 'awhile' to 'a while'
page 219, line 8
change '255' to '65535'
page 226, lines 1, 5, and 23
change [11], [12], [13] respectively to [12], [13], [14]
page 226, line 4 from the bottom
change 'circuits' to 'cycles'
page 229, line 16
change 'operation' to 'Operation'
page 240, lines 4, 8, and 13
change 'labrea' to 'ftp.cs'
page 240, lines 4, 8, and 13
change '~ftp/pub' to 'pub'
page 240, line 6
change '1993' to '1994'
page 240, lines 9, 11, and 14
change [11], [12], [13] respectively to [12], [13], [14]
page 240, add a new reference
[11] Kasper Østerbye, ``Literate Smalltalk programming using hypertext,'' IEEE Transactions on Software Engineering SE-21 (1995), 138--145.
page 241, left column, lines 2, 4, 22
change 'circuits' to 'cycles'
page 241, left column, line 24
change 'circuits' to 'such cycles'
page 242, right column, line 8
change 'circuit' to 'cycle'
page 252, line 9
use bold typewriter type for 'VPtoVF.web'
page 263, line 15 from the bottom
change '[3, part 3]).' to '[3, part 3].)'
page 264, line 12 from the bottom
change '$(1-\sqrt3/2$' to '$(1-\sqrt3)/2$'
page 268, Figure 3
point 18 should be indicated too
page 272, Figure 7
remove the three '@' signs that appear in subscripts
page 273, lines 6--8 from the bottom
the = signs should be aligned
page 275, Figure 8
remove the three '@' signs that appear in subscripts
page 280, line 11
change the first double-quote from '' to ``
page 280, lines 11 and 13 from the bottom
change $s.$ to $s\cdot$
page 282, lines 18 and 19
change en-dashes to hyphens in the grant numbers
page 287, bottom line
change '1997' to '1998'
pages 299 through 308 (except 301)
the spacing between words of the headline is too wide
page 309, bottom line
change 'represents    the first' to 'represents the first'
page 311, line 4 from the bottom
change 'neé' to 'née'
page 312, line 13
change '759,499,667,966,482' to '759,499,667,166,482'
page 313, line 1
change 'the the' to 'the'
page 313, line 11
change 'Information Processing' to 'Information Processing 68'
page 313, line 12
change '1968' to '1969'
page 329, Fig. 16
label the two parts (a) and (b)
page 333, lines 13--17
delete the repeated material: 'This determines ... from a1.'
page 335, line 11 from the bottom
insert a semicolon after $y_{i+200}]$
page 336, line 23
change `{\it tau}' to `{\sl tau}' (three times)
page 337, line 21
change the first subscript from '$r' to '$$r'
page 338, line 11
change 'Internal' to 'International'
page 338, line 12
change 'Set(Tokyo:' to 'Set (Tokyo:'
page 346, bottom line
change ').' to '.'
page 353, line 7 from the bottom
change 'unaminous' to 'unanimous'
page 357, line 6
change '26 August' to '16 August'
pages 361, 363, and 365
there should be a running headline, as on page 359
page 364, lines 6 and 7
change 'Math-ematik' to 'Mathe-matik'
page 364, line 3 of reference [8]
change '(printed' to 'printed'
page 370, line 2 from the bottom
this paragraph should not be indented
page 371, line 21
the \leq character in '\sum_{0\leq k\lt n}' is too large
page 371, just before line 14 from the bottom
change 'for the themselves' to 'for themselves'
page 371, lines 5 and 13 from the bottom
the \geq character in '\sum_{k\geq 1}' is too large
page 372, line 3
change 'font_ident' to 'font_identifier'
page 373, line 2 from the bottom
change 'not 8' to 'not 8, and its math_fitting is false'
page 373, line 2 from the bottom
change 'font_ident' to 'font_identifier'
page 374, lines 17 and 19
the infinity signs in the integral limits should be 7 point size, not 10 point size
page 378, line 11
change 'labrea' to 'ftp.cs'
page 388, bottom line
change 'one of those students' to 'another grad student'
page 389, top line
change 'written his own' to 'helped to develop a suitable'
pages 392--394, also page 400
inexplicably, all the commas in the PUNK samples are screwed up; see page 396 for an example of the real thing
page 396, line 7 from the bottom
change 'print at' to 'print out'
page 397, line 6
change 'wondering' to 'wandering'
page 414, new copy for bottom of the page
And Peter Flynn points out that similar letterforms were developed by the British cartoonist Norman Thelwell, who signed his name [thelwell in punkish style]. Thelwell was a frequent contributor to Punch, beginning in the 1950s---a magazine whose name is curiously similar to Punk.
page 421, line 10
change 'Hotice' to 'Notice'
page 432, line 3 from the bottom
change '(horizontal' to '(horizontal)'
page 434, line 3
change 'image data' to 'Image Data'
page 435, line 22
change '}' to '; }'
page 437, 5th row of the matrix on line 3
change 'e' to 'E'
page 437, line 4
change 'h, h' to 'h'
page 440, line 7 from the bottom
change 'optimization' to 'Optimization'
page 458, line 2 from the bottom
change 'Figure 9' to 'Figure 8'
page 469, line 4
change '[8]' to '[9]'
page 469, line 5 from the bottom
change 'CCR--8610181' to 'CCR-8610181'
page 470, lines 4 and 5 from the bottom
change 'Ninke, A survey ... displays. Com-' to 'Ninke, ``A survey ... displays,'' Com-'
page 471, line 5
change '1993' to '1994'
page 474, first displayed figure
change '$(x_0+2t,y_0-t)$' to '$(x_0-t,y_0-2t)$'
page 475, line 4 from the bottom
change '=(' to '= ('
page 479, bottom line
change 'CCR--8610181' to 'CCR-8610181'
page 490, line 15 from the bottom
change '23, 35' to '23, 37'
page 491, line 17
change 'empahsized' to 'emphasized'
page 491, line 22
change 'line 35' to 'line 37'
page 492, line 12
change 'Line 46' to 'Line 48'
page 495, line 14
change '{#1{X-Y}{X-Y}} D' to '{#1 {X-y} {X-y}}D'
page 495, line 21
change '{#1{X-Y}{X-Y}}D' to '{#1 {X-y} {X-y}} D'
page 495, line 18 from the bottom
change 'expreienced' to 'experienced'
page 495, line 14 from the bottom
change 'means means' to 'means'
page 499, line 15
change 'Footnotes:I' to 'Footnotes: I'
page 507, line 7 from the bottom
change 'returns('15)' to 'returns ('15)'
page 515, line 14
change '23, 35' to '23, 37'
page 516, line 6
change 'line 35' to 'line 37'
page 518, line 1
change 'line 152' to 'line 153'
page 524, line 4
change 'which is set' to 'which is sent'
page 524, line 18 from the bottom
change 'accomodate' to 'accommodate'
page 525, line 20
change 'methematical' to 'mathematical'
page 526, line 24
line up the word 'Uses'
page 527, line 4 from the bottom
change 'lines,is' to 'lines, is'
page 528, line 12
change 'Footnotes:I' to 'Footnotes: I'
page 532, line 10 from the bottom
change '26/pt' to '26/9 pt'
page 540, line 2
change 'of Computing' to 'on Computing'
page 544, line 19
change '444 pp.],' to '444 pp.,'
page 553, lines 2 and 8
change '~ftp/pub' to 'pub'
page 553, lines 2 and 8
change 'labrea' to 'ftp.cs'
page 553, line 13
change '1993' to '1994'
page 556, line 2 before footnote 2
change 'Albert' to 'Albrecht'
page 558, beginning of line 18
change 'nation' to 'national'
page 569, line 15 from the bottom
change 'here.)' to 'here.'
page 574, line 19
change '414 and 415' to '413 and 414'
page 574, second displayed equation
change 'NOT!' to 'Not!'
page 575, second line of first footnote
change '142' to '141'
page 587, line 21
change '\smallsum' to '\smsum'
page 587, line 14 from the bottom
change '...etc.' to '... etc.'
page 588, line 1 of Figure 7
change '2.ix' to '2.xi'
page 592, line 14
change 'EM\TeX' to 'em\TeX'
page 602, line 11 from the bottom
change 'acknowledgement' to 'acknowledgment
page 623, line 2 from the bottom
change 'H.A.' to 'H. A.'
page 624, line 13 from the bottom
change 'Apocalyse' to 'Apocalypse'
page 627, line 13
change 'Matsumasa' to 'Mitsumasa'
page 630, line 16 from the bottom
change 'TeX' to the TeX logo
page 632, line 25
change 'went though' to 'went through'
page 634, line 12
change 'looks look' to 'looks'
page 642, line 9
change '$x^2\!/3' to '$x^2\!/3$'
page 644, line 18
change 'books' to 'hooks'
page 644, line 20
change 'Knuth:' to 'Don:'
page 644, line 7 from the bottom
change '$x_-$' to '$x^-$'
page 645, line 2 from the bottom
change 'leftarrowfill' to '\leftarrowfill'
page 646, line 12
change 'an lowercase' to 'a lowercase'
page 650, line 3 from the bottom
change '1991' to '1992'
page 651, line 2 from the bottom
change 'Software Concepts' to 'Software---Concepts'
page 652, line 4 from the bottom
change 'Utretcht' to 'Utrecht'
page 655, line 24 from the bottom
change 'September 1998' to 'September 1988'
page 655, line 7 from the bottom
change 'were published' to 'was published'
page 658, line 3
change 'final bug' to 'Final Bug'
page 658, line 8 from the bottom
change 'to that' to 'so that'
page 658, line 3 from the bottom
change 'Non-bugs, but close' to 'Non-Bugs, But Close'
page 660, line 9 from the bottom
change 'flaws' to 'Flaws'
page 661, line 10 from the bottom
change 'would have' to 'would have done'
page 662, line 9
change ' (CSLI' to ', CSLI'
page 662, new copy to follow the references
Addendum (December 2002)
In 1998, TeX became certifiably Y2K-safe by printing the current year with four digits instead of two.
A bug in \xleaders was found in 1999; some tricky ways to defeat TeX's alignments were defeated in 2001; the rounding of glue was improved in 2002.
But I remain optimistic that no further changes will be needed.
Addendum (March 2008)
Following a substantial analysis of the entire program by David Fuchs, eight more changes were made in TeX version 3.1415926---one each of Types B, F, I; two of Type E; and three of Type R. No major errors were found, but we wanted to make the program more robust and consistent. The most significant problem to be corrected was the fact that leaders with \mskip glue had never worked properly; that feature, which nobody could actually have used, is now disallowed. Further details about the changes, which bring the total number up to 946, appear in my note ``The TeX tuneup of 2008,'' TUGboat 29 (2008), 233--238.
I remain optimistic that no further changes will be needed.
page 663, right column, Allebach entry
change '470' to '463, 470'
page 664, line 20 of the left column
change 'Matsumasa' to 'Mitsumasa'
page 664, right column
change 'Auble, J. Woodard' to 'Auble, John Woodard'
page 665, right column
change 'Blanchard, André R.' to 'Blanchard, André René'
page 667, line 4 of the left column
change 'Gregory M.' to 'Gregory Mark'
page 667, line 10 of the right column
change 'P. I.' to 'Patrick Ian'
page 667, line 11 from the bottom of the right column
change '42--25' to '42--45'
page 668, line 3 of the left column
change 'John C.' to 'John Carl'
page 668, right column, Dalton entry
change '470' to '463, 470'
page 668, in the entry from Descartes
change 'René' to `René du Perron'
page 668, line 17 of the right column
change 'Wijbe' to 'Wybe'
page 668, line 2 from the bottom of the right column
change 'TeX' to '\TeX'
page 669, line 15 from the bottom of the right column
change 'TeX' to '\TeX'
page 670, left column, new entry
Flynn, Thomas Peter, 414.
page 670, right column
add page 662 to the entry for David Fuchs
page 671, left column, Gutenberg entry
change 'Johann Gensfleish' to 'Gensfleisch, Johann'
page 671, right column
change 'Hamiltonian circuits' to 'Hamiltonian cycles'
page 673, right column
Kew, Jonathan Francis, 18.
page 674, left column, line 10
change '179--180, 1--2' to '1--2, 179--180'
page 674, left column, line 13
change '506' to '504, 506'
page 676, right column, new entry
Minion typefaces, 612.
page 677, left column, new entry
Myriad typefaces, 612.
page 678, right column, bottom line
change 'Ruiz y' to 'Ruiz'
pages 678 and 679
use blank line and boldface letter to introduce the first entries starting with P and Q
page 679, right column
change 'Raymond, François H.' to 'Raymond, François Henri'
page 680, right column, line 24
change 'Albert' to 'Albrecht'
page 681, line 20 from the bottom of the right column
change '42--25' to '42--45'
page 683, left column
change 'Thanh, Han The' to 'Thành, Hàn Thê´'
page 683, left column, new entry
Thelwell, Norman, 414.
page 685, right column, line 9
change 'Andres' to 'Andrés'

Errata to the Second Printing (2012)

As usual, I promise to deposit 0x$1.00 ($2.56) to the account of the first person who finds and reports anything that remains technically, historically, typographically, or politically incorrect. Here is a list of all nits that have been picked so far by the typographic fanatics who have pored over the text of the second printing:

page 166, line 9 from the bottom
change '100' to '101'
page 208, bottom line
change '96' to '97'
page 614, footnote
change 'Pierre Arnoul' to 'Pierre-Arnoul' and 'Programming' to 'Programming: A Survey'
page 664, right column
change 'Bafour, Georges P.' to 'Bafour, Georges Pierre'
page 668, left column
change 'de Marneffe, Pierre Arnoul' to 'de Marneffe, Pierre-Arnoul Frédéric Guy Donat'
page 676, left column
change 'Marneffe, Pierre-Arnoul de' to 'Marneffe, Pierre-Arnoul Frédéric Guy Donat de'
back cover, line 20
change 'historicans' to 'historians'

I hope the book is otherwise error-free; but (sigh) it probably isn't, because each page presented me with hundreds of opportunities to make mistakes. Please send suggested corrections to knuth-bug@cs.stanford.edu, or send snail mail to Prof. D. Knuth, Computer Science Department, Gates Building 4B, Stanford University, Stanford, CA 94305-9045 USA. In either case please include your postal address, so that I can mail an official certificate of deposit as a token of thanks for any improvements to which you have contributed.

I may not be able to read your message until many months have gone by, because I'm working intensively on The Art of Computer Programming. However, I promise to reply in due time.

DO NOT SEND EMAIL TO KNUTH-BUG EXCEPT TO REPORT ERRORS IN BOOKS! And if you do report an error via email, please do not include attachments of any kind; your message should be readable on brand-X operating systems for all values of X.

Don Knuth's home page

Don Knuth's other books

Valid HTML 4.01 Transitional