parametr makra aktivnim znakem
Petr Olsak
olsak at math.feld.cvut.cz
Wed May 21 14:49:50 CEST 1997
On Wed, 21 May 1997, Karel Horak l.209 205 wrote:
> > Dobry den,
> > mam takovy dotaz:
> > Chtela bych neco jako
> >
> > \def\makro#1{
> > \catcode`#1=\active
> > \def #1{ delej neco }
> > ..neco dalsiho
> > }
> >
> > \makro{a}
> >
> > Jako ze abych mohla nejaky znak udelat aktivnim, ale jeste nevim ktery.
> > Ale nevim, jak to vprogramovat, je to furt dokola inaccesible nebo jine
> > hlasky.
> >
> Nejlepsi bude, kdyz si v plainu najdete, jak je definovano makro
> \obeylines!
>
> Mnoho uspechu preje
> Karel Horak
\obeylines s tim nema nic spolecneho. Jde o to udelat makro, ktere
pracuje s tokenem kategorie 13, ale dopredu nevi, jakou ASCII hodnotu
ten token bude mit (to se dozvi az z parametru).
Toto je pomerne zajimavy problem, ktery zde jiz vyresil pan Ginzel, ovsem
v zapise jeho reseni byl nejaky renonc, takze to uvedu znova:
\catcode`^^X=13
\def\makro#1{%
\catcode`#1=13 \uccode`^^X=`#1
\uppercase{\def^^X}{ delej neco, #1 je zde neaktivni znak }
..neco dalsiho
}
Vtip je v tom, ze \makro precte do #1 znak a jeho ascii hodnotu "zasune"
do pradne krabicky ^^X, ktera uz ma pripravenu kategorii 13. Toto
"zasunuti" se provede prostrednictvim nastaveni \uccode od ^^X a
primitivem \uppercase.
Petr Olsak
More information about the csTeX
mailing list