ajcd@cs.ed.ac.uk (Angus Duggan) (08/11/90)
I'm flummoxed. I've searched through the TeXbook for an answer to this
problem, and tried everything I can think of, but I can't find an answer. I
want to make a character active, and define a macro for it, with only the
number of the character specified (in a count register).
What I'm trying to do is to set up a lot of the character codes from 128--255
to call a common macro, with the number of the character code as a parameter.
I'd prefer to have a loop, something like:
\bgroup % localise \count0
\count0=161
\loop
\expandafter\global\expandafter\catcode\count0=\active
% \edef active character number \count0 to expand to:
% {\noexpand\macro{\the\count0}}
\advance\count0 by 1
\ifnum\count0<255\repeat
\egroup
The only way I can see of doing this is writing out an auxiliary file, and
re-reading it. Somebody please show me that I'm wrong.
A.
==
Angus Duggan, Department of Computer Science, | Ignorance of the manual is
University of Edinburgh, JCMB, | no excuse.
The King's Buildings, Mayfield Road, | JANET: ajcd@uk.ac.ed.lfcs
Edinburgh, EH9 3JZ, Scotland. | OR: ajcd%lfcs.ed.ac.uk@nsfnet-relay.ac.ukdhosek@sif.claremont.edu (Hosek, Donald A.) (08/11/90)
In article <157@skye.cs.ed.ac.uk>, ajcd@cs.ed.ac.uk (Angus Duggan) writes... >I'm flummoxed. I've searched through the TeXbook for an answer to this >problem, and tried everything I can think of, but I can't find an answer. I >want to make a character active, and define a macro for it, with only the >number of the character specified (in a count register). >What I'm trying to do is to set up a lot of the character codes from 128--255 >to call a common macro, with the number of the character code as a parameter. >I'd prefer to have a loop, something like: >\bgroup % localise \count0 > \count0=161 > \loop > \expandafter\global\expandafter\catcode\count0=\active > % \edef active character number \count0 to expand to: > % {\noexpand\macro{\the\count0}} > \advance\count0 by 1 > \ifnum\count0<255\repeat >\egroup >The only way I can see of doing this is writing out an auxiliary file, and >re-reading it. Somebody please show me that I'm wrong. The following ought to work. \uccode`\~=\count0 \uppercase{\catcode`\~=\active \xdef~{\noexpand\macro{\the\count0}}} I haven't tried it though so I'd appreciate it if someone could let me know how close I've come. -dh --- Don Hosek TeX, LaTeX, and Metafont support, consulting dhosek@ymir.claremont.edu installation and production work. dhosek@ymir.bitnet Free Estimates. uunet!jarthur!ymir Phone: 714-625-0147 finger dhosek@ymir.claremont.edu for more info