Aktivni znaky

Michal Kubecek kubecek at karlin.mff.cuni.cz
Thu Oct 8 11:19:32 CEST 1998


>   tak jsem si trosku zacal hrat s TeXem a narazil jsem na jeden problem.
> Chtel jsem si udelat makro, ktere mi vysazi strucny obsah kapitoly. Melo
> se chovat asi takto. \strucne{blbla1 * blalba2 * blabla3}, pricemz
> blabla1-3 by byli strucne obsahy odstavcu. Makro melo vysazet text takto:

Snad 'byly', ne? Pratele, typograficka uroven dokumentu je sice
dulezita, gramaticka spravnost ale take neni zanedbatelna...

> blabla1 \oddelovatko blabla2 \oddelovatko blabla3, cili hlavne mi slo o to
> nahradit '*' nejakym mym makrem. Pokusil jsem se to udelat asi takto:
>
> {\catcode`\*=13
> \def\strucne#1{
>  \catcode`\*=13
>  \def*{---}
>  \bf #1
> }}
>
> To ovsem nefunguje. Zduvodnuji si to tim, ze pri predani parametru makru
> se substituuje ihned do kodu a ne az kdyz je kod pouzit - t.j. je
> hvezdicka zmenena na aktivni znak. A ja se ptam - lze to nejak zaridit,

Vidim tam jeste dva problemy: \strucne musi byt definovano
pomoci \gdef (jinak TeX po skonceni skupiny definici zase s klidem
zapomene). Druhy problem: jedna skupina by jeste mela byt uvnitr
definice \strucne - jinak naopak TeX nezapomene zmenu catcode
hvezdicky po expanzi makra (a od prvniho pouziti \strucne budete
mit hvezdicku aktivni az do konce). Jeste je tam zavlecena mezera
na radku '\def*{---}' a ze stejnych duvodu jako vyse bude zbytek
dokumentu od prvniho pouziti tucne.

Problem, ktery zminujete, by se obesel napriklad takto:

\def\strucne{\bgroup\catcode`\*=13 \strucnE}
{\catcode`\*=13
  \gdef\strucnE#1{%
    \def*{---}%
    {\bf #1}%
    \egroup
  }
}


> A jeste jeden dotaz - jednoduchy - jak nastavit velikost tiskoveho
> zrcadla v plainu a okraje na strance a jake jsou tyto hodnoty doporuceny
> pro cesky tisk?

\hoffset=... (sirka leveho okraje - 1in)
\hsize=...   (sirka zrcadla)
\voffset=... (vyska horniho okraje - 1in)
\vsize=...   (vyska zrcadla)

Hodnoty vam nedoporucim, to je vec osobniho vkusu - zalezi taky
hodne na tom, co na te strance ma byt (a samozrejme na velikosti
papiru).

                                                 Michal Kubecek



More information about the csTeX mailing list