[texhax] Swapping the meaning of _ and \_
Suresh Govindachar
sgovindachar at yahoo.com
Tue Apr 24 00:49:35 CEST 2012
Hello,
The context for this question is plain TeX:
Goal: In my source .tex file and in my own macros, I would like to use _ as
an ordinary character and use \_ for subscripts in math mode.
What I tried: Following some ideas in David Solomon's The Advanced TeXbook,
I toyed with the idea of starting and ending all my files with the following
blocks of code:
\chardef\catcount=\catcode`_% store current meaning of _
\ifnum\catcode`\_=\catcode`A\else%
\catcode`_=11%
\fi%
\catcode`_=\catcount % reset meaning of _
However, the preceding is _not_ a complete solution, for the following
reasons:
1) Using un-escaped _ results in a raised dot -- why doesn't it result in
just the _?
2) Getting a _ with escaped _ is a tad bit more complicated than it used to
be because now TeX needs to know when the control sequence \_ ends.
3) What more needs to be done so that the un-escaped _ results in _?
4) Couldn't figure out how to get subscripts in math mode.
5) I understand that whenever I include anybody else's code, I would need to
change the meaning of _ to its default value before doing the \input. After
the \input line, I can redefine _ to be what I want it to be. What I don't
know if the preceding suffices to allow me to use macros from that file, or
if I need to set _ to its default value before using macros from that file
too? I don't think so, but I am not sure.
So what's a good way to swap the meaning of _ and \_?
Thanks,
--Suresh
More information about the texhax
mailing list