character redefinition environment
Hi list, I want to assign Metapost graphics to single letters (in a newly defined evironment, that take care of these assignments). The purpose is being able to rapidly build huge tables containing lots of these symbols. Everything works fine if I assign these graphics to non-letters, e.g. "|", but somehow it doesn't work with normal letters. Here is what I tried (with a simple Foo instead of Metapost graphics): \definesymbol[foosymbol][{\tt Foo}] \def\startmychars{% \bgroup\catcode`\|=\active\def|{\symbol[foosymbol]}} \def\stopmychars{\egroup} This works with | as reassigned character without any problems. But, we want to have normal characters in the table, no punctuation marks, etc. Does anyone know what to do to reassign a special definition for a letter e.g. like uppercase B or else? I got this error: (/usr/local/share/texmf/tex/context/base/pdfr-ec.tex) ! Undefined control sequence. \startmychars ...up \catcode `\B=\active \defB {\symbol[foosymbol]} l.24 \startmychars which seems to indicate that B is not recognized as active character in the "\defB"? Any hints very welcome, Enzo.
Enzo Cordes wrote:
Hi list,
I want to assign Metapost graphics to single letters (in a newly defined evironment, that take care of these assignments). The purpose is being able to rapidly build huge tables containing lots of these symbols.
Everything works fine if I assign these graphics to non-letters, e.g. "|", but somehow it doesn't work with normal letters.
Here is what I tried (with a simple Foo instead of Metapost graphics):
\definesymbol[foosymbol][{\tt Foo}] \def\startmychars{% \bgroup\catcode`\|=\active\def|{\symbol[foosymbol]}} \def\stopmychars{\egroup}
This works with | as reassigned character without any problems. But, we want to have normal characters in the table, no punctuation marks, etc. Does anyone know what to do to reassign a special definition for a letter e.g. like uppercase B or else?
I got this error: (/usr/local/share/texmf/tex/context/base/pdfr-ec.tex) ! Undefined control sequence. \startmychars ...up \catcode `\B=\active \defB {\symbol[foosymbol]} l.24 \startmychars
which seems to indicate that B is not recognized as active character in the "\defB"?
| is already active, but not b \bgroup \catcode`B=\active \def\start... \egroup otherwise a 'character B' and not an 'active character B' ends up in the definition This may be easier: \def\Whatever {\defineactivecharacter B {[oeps]}} bla bla \start \Whatever B \stop ble bla -- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Many thanks, Hans! I wasn't sure I made myself clear, but defineactivecharacter does the job very very nicely. One day I understand one of its many definitions - especially the \uccode tilde business, which is probably necessary for the TeX mastication process ;-) Enzo Hans Hagen wrote:
| is already active, but not b
\bgroup \catcode`B=\active \def\start...
\egroup
otherwise a 'character B' and not an 'active character B' ends up in the definition
This may be easier:
\def\Whatever {\defineactivecharacter B {[oeps]}}
bla bla \start \Whatever B \stop ble bla
participants (2)
-
Enzo Cordes
-
Hans Hagen