Predefinovani podtrzitka?

David Necas (Yeti) yeti at physics.muni.cz
Fri Jul 23 19:55:22 CEST 2004


On Fri, Jul 23, 2004 at 07:11:55PM +0200, Tomas Zahradnicky wrote:
>
> pisu jmena funkci, ve kterych se vyskutyji hodne _ a ty se samozrejme
> pisi typewriterem. problem byl v tom, ze se to nacitalo jako token
> jine kategorie --- proto inaccessible. po pul hodine jsem dal
> dohromady fungujici verzi:

To me mohlo napadnout, ze pisete \tt, kde \char95 funguje
<sigh>.

> \let\theSubscript=_
> \catcode`\_=13
> \def_{\ifmmode\expandafter\theSubscript\else\if\the\fam7\char95\relax\else\_\fi\fi}
>
> \def\fun#1{{\tt #1}}
>
> udelal jsem to aby to fungovalo takto: pokud jsme v matematickem
> modu, funguje _ jako kdy pred tim. pokud jsme v horizontalnim nebo
> vertikalnim modu, zjisti se jaky se pouziva font. pokud je to
> typewriter (family 7) tak se vykresli podtrzitko nativni tomuto fontu
> a v jinem pripade se pouzije \_, ikdyz ja preferuji \underbar{ }.

Mozna by to slo trochu vycistit -- \theSubscript je
opakovani definice \sb z plainu, kterou staci pouzit;
\if\the\fam7 bych radeji testoval \ifnum\fam=7; namisto
\relax postacuje mezera, kterou TeX spolkne v ramci
syntaktickeho pravidla <number>; \expandafter zde IMHO nema
vyznam (ale mozna mam jen prilis malou predstavivost ;-)

Tedy neco jako

  \def_{\ifmmode\sb\else\ifnum\fam=7 \char95 \else\_\fi\fi}

Yeti


--
Do not use tab characters. Their effect is not predictable.



More information about the csTeX mailing list