[texhax] Some puzzling TeX

Uwe Lueck uwe.lueck at web.de
Tue Feb 22 14:09:06 CET 2011


"Donald Arseneau" <asnd at triumf.ca> wrote 22.02.2011 13:24:54:
>"Uwe Lueck"  writes:
>> >On Sun, Feb 20, 2011 at 8:13 AM, Uwe Lueck  wrote:
>> >> I am unable to get a catcode of \relax or \bgroup by \showthe\catcode.
>
> This betrays a subtle misunderstanding.  There is no catcode of
> \relax; only character tokens have category codes.
> 
> However \catcode does not tell the category of a character token!
> It only reports contents of the look-up table TeX uses to interpret
> raw characters as they are input (or as they are re-scanned, in eTeX).
> This has to be so since the argument for \catcode is a number, not
> a token! 

Indeed just missed TeXbook p. 271: \catcode expects "8-bit number".

I wonder at this point how this is with XeTeX and LuaTeX ... 
and cannot afford right now browsing their documentations ...

> Therefore the concept of "get a catcode of" some token, any token, 
> by \showthe\catcode is without hope.
>
> TeX provides no way to report the category code for a token except
> by a deeply nested series of \ifcat comparisons.

Interesting!

>> > Whew...  so, it looks like this myth of "control sequences have
>> > catcode 16" can finally be put to rest.  The catcode of a control
>> > sequence is, in fact, 0.  But since there's no way to ever get a naked
>> > escape token (catcode 0) into the input stream, the fact that it has
>> > the same catcode is irrelevant.

It should be clear that this was Steve Hicks' conclusion of his analysis.

> Interesting.  I wonder why DEK says 16 then.  Laziness? Simplicity
> (avoid explaining why 0 is safe)? Forgetfulness?

Cheers, 

    Uwe.



More information about the texhax mailing list