diff options
Diffstat (limited to 'info/examples/tex-in-practice/namedef.tip')
-rw-r--r-- | info/examples/tex-in-practice/namedef.tip | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/info/examples/tex-in-practice/namedef.tip b/info/examples/tex-in-practice/namedef.tip new file mode 100644 index 0000000000..bc3906875a --- /dev/null +++ b/info/examples/tex-in-practice/namedef.tip @@ -0,0 +1,64 @@ +% This macro source file is from the four volume series +% "TeX in Practice" by Stephan von Bechtolsheim, published +% 1993 by Springer-Verlag, New York. +% Copyright 1993 Stephan von Bechtolsheim. +% No warranty or liability is assumed. +% This macro may be copied freely if no fees other than +% media cost or shipping charges are charged and as long +% as this copyright and the following source code itself +% is not changed. Please see the series for further information. +% +% Version: 1.0 +% Date: May 1, 1993 +% +% +% This source code is documented in 19.1.8, p. III-73. +% Original source in file "tokens2.TEX", starting line 414. +\wlog{L: "namedef.tip" ["tokens2.TEX," l. 414, p. III-73]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\NameDef #1{% + \expandafter\def\csname #1\endcsname +} +\def\NameEdef #1{% + \expandafter\edef\csname #1\endcsname +} +\def\NameGdef #1{% + \expandafter\gdef\csname #1\endcsname +} +\def\NameXdef #1{% + \expandafter\xdef\csname #1\endcsname +} +\def\NameNewDef #1{% + \if\NameDefinedConditional{#1}% + \errmessage{\string\NameNewDef: "#1" already defined.}% + \fi + \NameDef{#1}% +} +\def\NameReDef #1{% + \if\NameDefinedConditional{#1}% + \else + \errmessage{\string\NameReDef: "#1" never defined before.}% + \fi + \NameDef{#1}% +} +\def\NameUse #1{\csname #1\endcsname} +\def\NameUseFlagUndefined #1{% + \if\NameDefinedConditional{#1}% + \NameUse{#1}% + \else + \errmessage{\string\NameUseFlagUndefined: token "#1" + is undefined.}% + \fi +} +\newif\if@NameDefined +\def\NameDefinedConditional #1{% + TT\fi + \expandafter\ifx\csname #1\endcsname \relax + \@NameDefinedfalse + \else + \@NameDefinedtrue + \fi + \if@NameDefined +} +\catcode`\@ = 12 |