On 2017-04-16, Zdenek Wagner <[email protected]> wrote:
> 2017-04-16 10:08 GMT+02:00 Julian Bradfield <[email protected]>:
....
>> Definitely a bug. The TeXbook defines the behaviour of \if and \ifcat,
>> and all control sequences are considered to have character code 256
>> and category code 16, unless \let equal to a non-active character, in
>> which case they have the value of that character.
>>
>> Not all control sequences but primitives. Unlike \ifx, \if and \ifcat
> perform full expansion.
(a) Yes, they do perform expansion. That's irrelevant to the point at
hand, since expansion happens before the comparison.
(b) All control sequences, not just primitives:
\ifcat\noexpand\foo\noexpand\baz true\else false \fi
\ifcat\noexpand\foo\halign true\else false \fi
As Philip pointed out, I was reporting Knuth's words, which are by
definition authoritative.
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex