[tex-k] Bug-report for the TeXbook: Not all non-primitive control-sequences are defined, ultimately, in terms of the primitive ones.
Paul Vojta
vojta at math.berkeley.edu
Tue Dec 13 09:13:16 CET 2022
On Sun, Dec 11, 2022 at 03:27:23PM +0100, ud.usenetcorrespondence at web.de wrote:
> Laurence.Finston at gmx.net wrote.
>
> > I am quite certain that the use of \def, \edef, \xdef or \let was not meant,
> > but rather that the expansion of the macros was meant. The passage is a
> > restatement of how macro languages in general work: tokens are expanded
> > until they can't be expanded anymore and the remaining primitives or "terminal
> > symbols" are then passed to the compiler.
> > Ulrich is correct, primitives are not only control sequences, they are also
> > plain characters, the beginning-of-group and end-of-group tokens, the
> > enter-math-mode and exit-math-mode characters, etc. It's another way of
> > putting what he otherwise describes as TeX's "mouth" and "stomach" (perhaps
> > not his most appetizing image) --- what other people call scanning and parsing.
[snip]
I believe that the sentence in question might have been written more
precisely as:
All other control sequences are defined, ultimately, such that
the only control sequences are the primitive ones.
Or, more pedantically, as:
All other control sequences ultimately expand to a token string
in which the only control sequences are the primitive ones.
However, I don't believe that a change is warranted.
Chapter 3 is all about control sequences, so "in terms of" is implicitly
restricted to control sequences. This is supported by (and communicated by)
the last sentence:
For example, \input is a primitive operation, but \’ and \" are not;
the latter are defined in terms of an \accent primitive.
Note that (from plain.tex):
\def\'#1{{\accent19 #1}}
\def\"#1{{\accent"7F #1}}
so the characters 1, 9, 7, F, etc. occurring in the definitions of \' and \"
are excluded from consideration.
Sincerely,
Paul Vojta
More information about the tex-k
mailing list.