parametr makra aktivnim znakem

Hans Ginzel hans at mail.kolej.mff.cuni.cz
Fri May 16 16:27:07 CEST 1997



On Fri, 16 May 1997, Miroslava Misakova wrote:
>
> Dobry den,
> mam takovy dotaz:
> Chtela bych neco jako
>
> \def\makro#1{
> \catcode`#1=\active
> \def #1{ delej neco }
> ..neco dalsiho
> }
>
> \makro{a}
>
> Predpokladam, ze to souvisi s hlubinnymi fundamentalnostmi expand procesoru.
Kdyz chcete neco definovat, musi to byt bud controlni sekvence, nebo
aktivni znak. Jednou nacteny znak (=uz prosel token procesorem) svoji
kategorii menit nemuze.
>
> pokusnych textu. Umi to nekdo?
Inspiroval jsem se v definici \newif a obesel jsem to trikem pres
\uppercase:

{\catcode`9=\active
 \global\def\makro#1{\catcode`#1=\active % *)
    {\uppercase{\global\def 9{neco}}}neco dalsiho}}

Jak to funguje? Primitiv \uppercase pri prvnim pruchodu zmeni vsechny
tokeny, kt. nejsou ridicimi sekvencemi, na tokeny podle jejich \ucode.
Nezmeni vsak jejich kategorii! Proto jsem lokalne rek, ze velkym znakem
od devitky je #1.

*) timhle rikam jen, ze dalsim znakum, kt. budou nacitany po pouziti makra
\makro, token procesor priradi kategorii 13 (active).

Prijemne hrani s algoritmy TeXu preje
                                          Hans GINZEL




More information about the csTeX mailing list