[cstex] čára za itemize

Zdenek Wagner zdenek.wagner at gmail.com
Fri Feb 1 14:35:46 CET 2008


1.2.08, Zdenek Wagner <zdenek.wagner at gmail.com>:
> > ...
> Kategorie se přiřazuje znakům jednou provždy v okamžiku, kdy se načítá
> text. Při načítání definice prostředí se tedy hvězdičce nastaví
> kategorie 12. Když se prostředí použije, změní se sice uvnitř
> kategorie hvězdičky na 13, ale v konstrukci \def* bude stále mít
> kategorii 12. To způsobí chybu a každá hvězdička použitá v textu
> ohlásí, že * není definovaná. Dá se to řešit např. krásným trikem,
> který popsal Petr Olšák v TBN (nepotřebujete \gdef, což někdy vadí).
> Někam na začátek souboru dáte:
>
> {\catcode`\*=13
> \expandafter}\expandafter\def\noexpand*{\item}
>
> V definici svého prostředí pak pouze za \begin{itemize} přidáte \catcode`\*=13
>
Ještě jsem zapomněl napsat, že tento trik umožňuje, aby v definici
aktivní hvězdičky byla použita neaktivní hvězdička. zkuste si
následující příklad:

\documentclass{article}
{\catcode`\*=13
\expandafter}\expandafter\def\noexpand*{\item[\raisebox{-.5ex}{*}]}
\begin{document}
\noindent Itemize:
\begin{itemize}\catcode`\*=13
*text 1
* text 2
*   text 3
\end{itemize}
\end{document}

Makro \item má v sobě pevnou mezeru a \ignorespaces, proto bude vše "zařezávat".
-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz


More information about the csTeX mailing list