definice makra -- znovu
Pavel Mach
mach at utia.cas.cz
Tue Jul 22 12:54:45 CEST 1997
> chtel bych mit moznost psat neco jako \lv{text} kde se v textu ceske "t"
> (myslim t s hackem) nahradi sekvenci "\c{k}", dlouhe "i" se stane
> "\={\i}" a pod. Nasledujici makro mi ale nefunguje a ja jsem nedokazal
> vymyslet proc:
> \def\lv#1{
> \catcode`\t=\active
> \catcode`\i=\active
> \deft{\c{k}}
> \defi{\={\i}}
> #1}
>
Snad se moc nemylim; v dobe definice makra se prikazy v jeho tele
neprovadi, proto je pri poslednich dvou definicich \catcode znaku ,t' a
,i' stale stejny jako pred radky \catcode... (pravdepodobne 11).
Resenim je docasne nastavit \catcode potrebnych znaku a pote definovat
makro. Pro delsi texty je lepe pouzit \beglv <text> \endlv. Je treba take
dat pozor pokud nastavujeme jako aktivni znaky vyskytujici se v makrech,
ktera pri definici pouzivame (napr. \catcode, \letm \def ...):
(T, I znamena ,t' s hackem, ,i' s carkou) :
{\catcode`T=13\catcode`I=13
\gdef\beglv{\bgroup
\def\thacek{\c{k}}%
\def\icarka{\={\i}}%
\catcode`T=13\catcode`I=13
\let T=\th \let I=\ic}
\def\endlv{\egroup}
\def\lv#1{\beglv#1\endlv}
Pavel Mach
mach at utia.cas.cz
_________________________________________________________________________
| tel: (4202) 66052283 | Institute of Information Theory and Automation |
| fax: (4202) 6684677 | Czech Academy of Sciences |
-------------------------------------------------------------------------
More information about the csTeX
mailing list