[Fontinst] eTeX and fontinst -- incompatible?
Lars Hellström
Lars.Hellstrom at math.umu.se
Wed Dec 10 15:40:03 CET 2003
At 17.39 +0100 2003-12-09, Bernd Raichle wrote:
>On Tuesday, 9 December 2003 12:45:24 +0100,
>Lars Hellström <Lars.Hellstrom at math.umu.se> writes:
>[...]
>\csname ...\endcsname has always the side effect to assign \relax to
>an undefined token, i.e., creating a new entry in TeX's internal table
>of equivalents.
Ah, yes, the curious special case in which TeX's mouth can make
assignments. :-)
>If \csname is heavily used it is filling the eqtb
>table probably causing an overflow.
Yes, this is what the macros try to prevent.
>e-TeX's primitive \ifcsname does not have this side effect, i.e., no
>assignment is done, the token is left undefined and no eqtb entry is
>created.
But on the other hand it distinguishes between tokens truly undefined and
tokens that are only assigned by the \csname.
>To implement LaTeX's \ifundefined in a compatible way you have to use
>something like
>
>\ifcsname #1\endcsname
> ... undefined ...
>\else \expandafter\ifx\csname #1\endcsname\relax
> ... undefined ...
>\else
> ... defined ...
>\fi\fi
Yes, it seems I will have to do something like this. Ideally the \ifcsname
test should be sufficient, but many of the fontinst \unset... commands are
really implemented as a \let ...=\relax, and changing all of these will
take quite some time.
Lars Hellström
More information about the fontinst
mailing list