[tex-k] inconsistent use of "eye", "mouth", "gullet" in The TeXbook

胡亚捷 (Hu Yajie) 2500418497 at qq.com
Tue Apr 13 11:10:41 CEST 2021


I don't know if this has been reported before, but The TeXbook and The
METAFONTbook use the terms "eye", "mouth", and "gullet" inconsistently.
Sometimes they use "eye" and "mouth" for the tokenization process and
"gullet" for the expansion process:

Page A38, lines -6,-5:
    The individual lines of input in your files are seen only by
    TeX's "eye" and "mouth"

Page A46, lines 25,26:
    the current state refers to TeX's eyes and mouth as they take in
    characters of new text

Page A267, lines -16 thru -13:
    Chapter 7 has described the process by which input files are
    converted to lists of tokens in TeX's "mouth," and Chapter 20
    explained how expandable tokens are converted to unexpandable
    ones in TeX's "gullet" by a process similar to regurgitation.

Page C217, lines 10 thru 13:
    Chapter 6 describes the process by which input files are converted
    to lists of tokens in METAFONT's "mouth," and Chapters 18--20
    explain how expandable tokens are converted to unexpandable ones in
    METAFONT's "gullet" by a process similar to regurgitation.

But sometimes the "mouth" is the expansion process:

Page A373, lines 22,23:
    The expansion of expandable tokens takes place in TeX's "mouth,"

Page A373, line -10:
    since TeX handles \ifcase in its mouth.

Page A375, lines 10 thru 12
    All of the computation of \kslant is done in TeX's mouth; thus,
    the mouth can do some rather complicated things even though it
    cannot assign new values.

Page A379, lines 19,20:
    TeX's mouth is capable of doing recursive operations, given
    sufficiently tricky macros.

Page A385, line 24:
    TeX's mouth has two internal counting mechanisms to deal with nesting

Page C169, lines 20,21:
    They [conditions and loops] specify rules of token transformation
    that can be said to take place in METAFONT's "mouth"

Page C285, lines -20 thru -16:
    The expansion of expandable tokens takes place in METAFONT's "mouth,"
    but primitive statements (including equations, declarations, and
    the various types of commands) are done in METAFONT's "stomach."
    There's a communication between the two, since the stomach evaluates
    expressions that are needed as arguments to the mouth's macros;

Page C286, lines 17:
    Later on when METAFONT's mouth encounters 'ENDFOR'

I must confess that I don't actually have physical copies of these books,
so I don't know which view the opening illustrations of Appendix I takes.
But tex.web and mf.web take the former view in the explanation of get_next.
Which view should I take if I were to write another article for TUGboat?
(I want to explain that unlike TeX, METAFONT has two kinds of macros,
one handled in the mouth/gullet and one handled in the stomach.)

Incidentally, The TeXbook, exercise 8.1 asks

    What would be wrong with \def\%{\char`%}?

and the answer says

    The % would be treated as a comment character, because its category code
    is 14; thus, no % token or } token would get through to the gullet of TeX
    where numbers are treated.

but I think the truth is that no % token or } token would get through to the
_stomach_ of TeX where the definition is read. And numbers are not treated in
the gullet anyway, according to the scan_int procedure in tex.web module 440.



More information about the tex-k mailing list.