[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