[tex-k] Bug-report for the TeXbook: Not all non-primitive control-sequences are defined, ultimately, in terms of the primitive ones.
Doug McKenna
doug at mathemaesthetics.com
Wed Dec 14 18:30:37 CET 2022
I agree I was missing something, and as Heiko corrected, whatever is between \csname and \endcsname, even if empty, is equivalent to a \relax.
But ... TeX's source code, contains the following:
@<Basic printing...@>=
procedure print_cs(@!p:integer); {prints a purported control sequence}
begin if p<hash_base then {single character}
if p>=single_base then
if p=null_cs then
begin print_esc("csname"); print_esc("endcsname"); print_char(" ");
...
and similar tests elsewhere.
In other words, the control sequence |null_cs| with no characters to its name is always output to the world as the two primitive CSes, "\csname\endcsname". So I guess the pertinent question is, can |null_cs|'s meaning be redefined? If not, isn't it "a primitive" CS?
Hence my confusion and the dangers of concluding that all the wording in The TeXbook can easily be made self-consistent without a whole lot of lengthy qualifications that likely would likely affect the book's pagination.
Doug McKenna
More information about the tex-k
mailing list.