[tex-k] another bug in METAFONT syntax & errors in Appendix I of The METAFONTbook

胡亚捷 (Hu Yajie) 2500418497 at qq.com
Sat Jul 11 18:24:55 CEST 2020

Page C187, line -11
Page C214, line -6
    | substring <pair primary> of <string primary>
    | substring <pair expression> of <string primary>
since section 893 of volume D labels `substring' as a primary_binary, which
scan_primary (section 823 -> 839) handles by doing a scan_expression before
the `of' and another scan_primary. Indeed, my computer (MiKTeX) is able to
    *show substring 2*(1,2) of "abcd";
    >> "cd"
    *show substring fullcircle intersectiontimes unitsquare of "abcd";
    >> "a"
    *show substring (1,2) rotated directiontime (1,1) of fullcircle of "abcd";
    >> "b"

(Kinda surprised nobody noticed this before 2014.)

Appendix I
When the same syntax appears twice across the MFbook, the parts of speech and
primitives are generally indexed in both places. Here are a few exceptions
as well as some other kinds of errors.

    Add `129' and `187'.

`(' and `)'
    Add `115', `129', `148', `170', and `187' (since 71--73 are indexed)?

`[', `]', and `brackets'
    Add `57' and `73'. (These primitives take on many meanings but there is
    only place for the underline.)

    Add `211--213' and `218' (since pages 72 and 73 are indexed).

`... (bounded join)'
    Perhaps change `127' to `127--129', to align with `--' and `---'.

`<addto command>'
    Add `118'.

    Add `106' and `220', since these pages mention both `chardx' and `chardy'.

    Underline `56', not `171'. (On page 171 it is discussed, not defined.)

`<display command>'
    Add `191'.

    Add `71', to align with `<primary>', `<secondary>' and `<tertiary>'.

    Add `220'.

`<keep or drop>'
    Change `120' to `220'. (Page 120 belongs to `keeping' and `dropping'.)

    Add `219' (since `tracingonline' and `tracingcapsules' are indexed)?

`<vardef heading>'
    Align with `<leveldef heading>' (or vice versa).

`<with clause>'
    Change `120' to `220' (although page 120 has an example of `withweight').

In general
    When a primitive has a corresponding part of speech entry of the same name
    (e.g. `cull' and `<cull command>', `display' and `<display command>'),
    Knuth sometimes indexes the primitive and sometimes not. 


My earlier reports:

More information about the tex-k mailing list.