[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

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 ...
>   ... defined ...

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