[texhax] Finding ascii value of a parameter
Ross Moore
ross at ics.mq.edu.au
Fri Oct 24 16:58:30 CEST 2003
Hello Michael,
On Thu, 23 Oct 2003, Michael Barr wrote:
> The code
> \newcount \temp
> \temp`\a
^-------- this \ is redundant
> \showthe\temp
>
> will produce 97, the ascii code for a. Is there any way to define a macro
> \ascii with the property that
> \ascii a
> \showthe\temp
> will produce the number 97 in the same way?
Yes, very easily.
You don't even need to use \newcount , which wastes a \count register;
--- anyway, it's probably more convenient to have a text representation
of the character-code, accessible within a macro:
\def\ascii#1{\bgroup
\count0`#1\relax
\xdef\asciicode{\the\count0}%
\egroup}
\ascii a
\show\asciicode
\ascii &
\show\asciicode
However to get the \mathcode of mathematical symbols
is trickier; e.g. \show\alpha
gives \alpha=\mathchar"10B
To get that hex value "10B you'll need something like:
{\let\z\catcode \let\y\gdef \global\let\zz\count
\z`m=12 \z`a=12 \z`t=12 \z`h=12 \z`c=12 \z`r=12
\y\zzz#1mathchar#2@!@{\zz0=#2}%
}
\def\mathscii#1{{\expandafter\zzz\meaning#1@!@%
\xdef\mathsciicode{\the\count0}}}
\mathscii\alpha
\show\mathsciicode
should give you 276 as the \mathcode value.
Hope this helps,
Ross Moore
>
>
> _______________________________________________
> TeX FAQ: http://faq.tug.org/
> TeX newsgroup: http://groups.google.com/groups?group=comp.text.tex
> Mailing list archives: http://tug.org/pipermail/texhax/
> More links: http://tug.org/begin.html
>
> Automated subscription management: http://tug.org/mailman/listinfo/texhax
> Human mailing list managers: postmaster at tug.org
>
More information about the texhax
mailing list