[texhax] macro help

Aditya Mahajan adityam at umich.edu
Wed Aug 9 23:14:13 CEST 2006

On Wed, 9 Aug 2006, John R. Culleton wrote:

> On Wednesday 09 August 2006 10:35, Tom Sgouros wrote:
>> Hello all:
>> The problem I have is that in a huge list of XML tags, there are a
>> few whose names have digits: STREET1 and STREET2, for example.  The
>> only digits in use are 1 and 2, and they only occur at the end of the
>> tags.  I haven't quite been able to come up with a macro definition that
>> could translate STREET1 into \STREETONE or \STREETA, and I wonder if
>> anyone here could lend a hand, or tell me definitely that I'm wasting
>> time.
>> Many thanks all,
>>  -tom
> I can only confirm that TeX treats a numeric at the end of a tag
> not as part of the tag but as a parameter. This is primitive TeX,
> not LaTeX or Context or even plain. So I don't know a way aorund
> it.

I was testing whether it is possible to have macro name with numbers 
and came across something surprising. The following works in plain tex

\def\csname street1\endcsname{First street}
\def\tagentry#1{#1 \quad \csname #1\endcsname}



But the corresponding latex code

\def\csname street1\endcsname{First street}
\def\tagentry#1{#1 \quad \csname #1\endcsname}



! Use of \csname doesn't match its definition.
<argument> d
l.6 \begin{document}


The corresponding context code

\def{\csname street1\endcsname}{First street}
\def\tagentry#1{#1 \quad \csname #1\endcsname}



! Use of \csname doesn't match its definition.
\doprocesscommalist ...after \def \csname \s!next
                                                   \the \commalevel 

\loadtwopassdata ...passlists ]\doloadtwopassdata
<inserted text> \loadtwopassdata
                                  \resetutilities \globallet 

\doateverystarttext ->\the \everystarttext
                                            \global \everystarttext 
\starttext ->\doateverystarttext
                                  \ifnum \textlevel =\zerocount 
l.4 \starttext

Do latex and context redefine the meaning of \def or \csname?


More information about the texhax mailing list