Pending bugs for original TeX

This page lists bugs in the original (Knuthian) TeX distribution which have been received since the last tune-up (2021). They have been accepted by Knuth's vetters, but are not expected to be seen by Knuth until the next tune-up. If and when he does see them, there is no guarantee that he will consider them to be bugs, or take any particular action.

The original reports and answers have been edited or paraphrased for presentation here.

The page and module numbers are just an initial hint about a relevant location; typically more than one place in the code is involved. The initial letter (A, B, …) refers to the Computers & Typesetting volume.

A list of non-bugs is also available. These (plausible) reports have already been deemed not a bug by Knuth or his vetters.

For any discussion about these issues, or further reports, please use the contact information on the main TeX bugs page here.


Volume A: The TeXbook

A044, line 11 2021-07-26, Hu Yajie: The temporary definition “\def\%{\char`\%}” lacks a space at the end, so the input “50\% of” (with this definition) will not have a space in the output: “50%of”. The idea of an optional space after a constant being ignored was introduced on the previous page.

A123, line -11 2021-03-13, Wolfgang Helbig: The last line reads “First compute the largest amount $v$ such that height plus depth of $v$”, but an amount does not have a height or depth, not being a box. What's intended is the sum of the height and depth of box n.

A143,A152 2021-01-20, Barbara Beeton: The descriptions of \above and \abovewithdelims don't mention that the given <dimen> affects the spacing above and below the fraction rule, as well as specifying the height of the rule. Appendix G rule 15d gives the computation, but the visual effect is hard to infer. Indeed, the typeset results are undesirable for any <dimen> larger than 1pt or so; the fraction appears too spacey (but of course the behavior cannot be changed at this late date).

A158, line -12 2021-03-20, Hu Yajie: The math symbol ) is said to be character "28 of family 0, but plain.tex (line 90) assigns \mathcode`\)="5029, so "28 should be "29.

A254, line 11 2021-05-28, Udo Wermuth: “\tracingoutput is nonzero” should be “\tracingoutput is positive” (as on page 273). If \tracingoutput is less than zero, TeX doesn't write this tracing data.

A210, exercise 20.13 2021-05-25, Hu Yajie: The second-to-last-item, \ifx\ifx\ifx, should presumably be followed by a semicolon, not a period.

A219, line -9 2021-03-02, Hu Yajie: The \length macro does not “expand” to 8, since assignments are involved. Similarly on A218, line 21, “expanding the \primes macro” is technically incorrect, though perhaps there the informality is acceptable.

A267, line -16 2021-04-13, Hu Yajie: Use “eyes and mouth” rather than just "mouth", since this is about reading from input files. Also on C217, line 10.

A274, line 4 2021-04-05, Hu Yajie: in the description of \overfullrule, “width of rules appended to overfull boxes”, change “boxes” to “hboxes”.

A280, second and fourth bullets 2021-05-27, Udo Wermuth: \closeout is specified to take a <4-bit number>, but in fact it takes a general <number>. A \closeout<number> argument outside the 4-bit range 0–15 still produces a whatsit item (but, as described in The TeXbook, has no other effect; for example, \closeout-1 does not close the log file). In the long past, David Fuchs suggested changing the \closeout implementation to syntactically recognize only a <4-bit number>, as with \openout, \openin, and \closein, but Knuth decided not to do this.

A297, line -10 2021-07-11, Wolfgang Helbig: TeX will usually notice a missing ‘}’ at the end of the current paragraph, not “the end of the next paragraph”. Perhaps “the next end of paragraph”.

A315, line 10 (answer to exercise 14.16) 2021-04-07, Ruixi Zhang: There should be a \relax between “\rightskip=1pt” and “<text>” to avoid misparsing of following text starting with plus or minus. \relax is similarly needed in other places:

Two other cases where \relax following a glue assignment might be desirable for clarity and consistency, but since these assignments are followed by tokens that stop parsing of a glue specification, the \relax is not technically needed:

A332, line 14 2021-02-26, Wolfgang Helbig: Replace “exercuted” by “executed”. [Typo made in 2021, handling a report from 2017.]

A373, line -2 2021-06-29, Igor Liferenko: In texbook.tex, page 373 has \t* (no space), while page 374 (line -7) has \t *. They are consistent (both have spaces) in the 34th printing; the discrepancy was created at the 2014 tuneup.


Volume B: TeX: The Program

Bvi, The TeXbook entry; Dvi, The Metafontbook entry; E020, line 4 2021-06-05, Hu Yajie: Change “Computers and Typesetting” to “Computers \& Typesetting”. [The series seems to be otherwise referred to consistently with the ampersand.]

B558, index 2021-06-22, Hu Yajie: in entry Extra \right., delete the period for consistency.


Volume C: The Metafontbook

C077, line -8 (exercise 9.1) 2021-07-02, Igor Liferenko: part (c) asks about “lft z21 = rt z20 + 1” but this gives the error “Not implemented: (pair)+(known numeric)”. Presumably “lft z21 = rt z20 + (1,0)” is intended.

C210, line -13 2021-02-14, Hu Yajie: The implication is that the <argument>s in the syntaxes of Chapter 25 stand for expr arguments, but they actually stand for arguments of any kind. Knuth added a <future pen argument> in the 2021 tuneup, so he clearly had arguments of any kind (primary/secondary/tertiary/expr/to-a-for-loop/etc.) in mind.

C250, line 1 2021-03-01, Hu Yajie: “hide(<statement list>)” does not allow for omitting the final semicolon in the argument to hide, since <statement list> (per C217) requires a semicolon. The semicolon to hide is optional because the replacement text (as given) provides it. The informal <statements> would apparently work, since it's used in the definition of hide on C259. (By the way, other bugs in the statement-related syntax rules were fixed in the 2020 tune-up.)


Volume D: Metafont: The Program

D040, module 101, @d quarter_unit 2021-04-10, Hu Yajie: “represents 0.250000” should perhaps be “represents 0.25000”, since all the other items in the list have five decimal places.

D042, module 1072021-06-25, Igor Liferenko: In |@t$(2^{29}$@>*p+q), the left paren should be before the @t, to match the q). [Typo made in the 2021 tune-up.]

D131, module 289, line 2 2021-04-03, Hu Yajie: The comma at the end of the displayed fraction should not be in the denominator. That is, the whole display should be in braces except for the comma: “{...\over...},”.

D538, index 2021-06-22, Hu Yajie: in entry Missing # (to module 1113, on page 478), the # is the web macro argument, not the character that's missing. Presumably should be merged with the entries for Missing : and Missing ,.


Volume E: Computer Modern Typefaces

E012, line -4 (before table) 2021-05-28, Udo Wermuth: The text says “All of the Computer Modern parameter files look like cmr10.mf, … the other 73 files …”. But there are 74 files besides cmr10; see, for example, page 10, line 1.

E012ff., parameter values 2021-05-26, Hu Yajie:

Page  ColumnRow TypoFix
12 cmr17letter_fit -0.1-3.6
21 cmssqi8notch_cut 23/26 23/36
21 cmssqi8cap_notch_cut  23/2623/36
21 cmssq8notch_cut 23/2623/36
21 cmssq8cap_notch_cut 23/2623/36
22 cmb10cap_height 246247
22 cmbxsl10 bar_height 8785
22 cmbxsl10tiny 813
23 cmfib8cap_stem 4334
26 cmmi8fig_height 185.8185.6
26 cmmi10thin_join 7.57
28 cmu10cap_height 247246
29 cmfi10notch_cut 22/36
29 cmitt10vair_corr 1.50

E020, line 12 2021-06-05, Hu Yajie: Change the “in” in “1in#” from roman to text italic, for consistency with other sharped units.

E046, line 17 2021-06-07, Hu Yajie: 36*sqrt(2) is 50.9…; the stated approximation of 52.3 seems unusually imprecise.

E193, line 7 2021-06-09, Hu Yajie: The stated “copy of the program for `0' in romand” is not quite correct. romand.mf's 0 contains the equation x2r=hround max(.7u,1.45u-.5curve), whereas itald.mf's 0 has x2r=hround(1.5u-.5curve).

Similarly, E543-544 state various greekl programs are copied in tsetsl.mf, but there are differences in the source files.

E571ff. (index) 2021-06-07, Hu Yajie.

  1. cap_notch_cut: en-dash instead of em-dash in 411—417.
  2. cmbsy10: omit page 35, which lists all the font names, but is not included in the index entries for any others, e.g., cmr10.
  3. curve: en-dash instead of em-dash in 363—449.
  4. min_Vround: perhaps sort after min_breadth.
  5. rule: spurious comma before en-dash in 521,–541.

E584, line -1 2021-07-12, Hu Yajie: Change “the csc driver file” to “the csc driver file when ligs=1”. When the font layout depends on the ligs parameter, this has generally been indicated (cf. E581, E582, E585), so E584 should probably do the same.


Other WEB programs and sources

gftodvi.web, line 3523, section 160 2021-04-27, Hu Yajie: The first Pascal comment should be |"/".."8"| rather than |"/"..."8"|, since Pascal ranges are specified with two dots (as in section 181).

gftype.web, line 943, section 43 2021-06-14, Hu Yajie: The index entry “@.This pixel's upper@>” should be “@.This pixel's upper...@>”, since the message is truncated, just like the index entry “@.This pixel's lower...@>” at line 925 just above.

tangle.web, line 640, section 31 2021-06-01, Hu Yajie: The first Pascal comment should be |`\..'| rather than |'\..'|.

errata.tex, entry for B21 2021-06-28, Hu Yajie: The entry for B21 in errata.tex uses a right arrow (\to), but the source uses “..”.

errata.tex, entry for C251 2021-03-01, Hu Yajie: The entry for C251 in errata.tex lacks a period after 22.1 following other errata entries. Thus: “{\bf 22.1.}\enspace”. (Also, the output from manmac's \ansno macro has the \enspace inside the \bf group, as in “{\bf 22.1.\enspace}”, but errata.tex consistently puts the \enspace outside the group. Fine.)

mfman.mf, figure 14e labels 2021-05-30, Hu Yajie: mfman.mf, lines 1272 and 1274:

labels.top(2r,2,2l, ...
labels.bot(2r,2,2l, ...

As a result, the top middle of Figure 14e has these points labeled twice. The figure is printed on page C139; it's correct there. So the error is only that mfman.mf hasn't been updated.

plain.mft, updates 2021-05-29, Hu Yajie: plain.mft misspells plain Metafont's nodisplays as nodisplay. It is also incomplete. In addition to the table here, the tokens range and thru could be either in bold or roman font, but italic seems wrong.

The token should be formatted like
bye end
rotatedabout rotatedaround
div mod
define_good_x_pixels define_pixels
define_good_y_pixels define_pixels
define_whole_vertical_blacker_pixels  define_pixels
define_horizontal_corrected_pixels define_pixels
cutdraw, cutoff filldraw
pensquare, penrazor, penspeck pencircle
proofrule, makelabel, makegrid screenrule
mode_def mode_setup
penlabels labels
gfcorners screenchars

For any discussion about these issues, or further reports to be listed here, please use the contact information on the main TeX bugs page here.


$Date: 2021/08/05 17:44:23 $;
TUG home page; webmaster; facebook; twitter;   (via DuckDuckGo)