[cstex] čára za itemize

Zdenek Wagner zdenek.wagner at gmail.com
Fri Feb 1 14:23:44 CET 2008


2008/2/1, Marek Nožka <tlapicka at centrum.cz>:
> Dobrý den
>
> můžete mi prosím pomoci s následujícím problémem?
>
> Mám následující definici nového prostředí:
>
> \newenvironment{cile}%
> {\par\noindent\textbf{Po prostudování této kapitoly byste měli být
> schopni:} \begin{itemize}\itemsep -2pt%
>   \let\i\item %
>   %     \catcode`\*=13\def*{\item}%
> }%
> {\end{itemize}\nobreak%
>   \hspace*{0.3\textwidth}\hrulefill\hspace*{0.3\textwidth}\medskip}
>
> Důležitý je ten poslední řádek. Jak to zařídit, aby mezi \end{itemize}
> a \hrulefill nenastal stránkový zlom?
>
Já se obávám, že ke stránkovému zlomu dochází spíš uvnitř
\end{itemize}. Nejspíš tam při expanzi vznikne \par, před nímž není
\nobreak. Také je tam nějaký \vspace, před nímž není \nobreak. Raději
bych to řešil tak, že bych si udělal vlastní prostředí úplně od nuly s
tím, že bych se inspiroval tím, jak je uděláno prostředí list a
trivlist (a pro své účely z toho můžete spoustu věcí vyhodit).

> Pokud by mi někdo poradil, proč mi nefunguje ten zapoznámkovaný řádek
> s \catcode, který by měl zařídit, že * se chová jako \item budu taky
> vděčný.
>
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

> Za všechny nápady předem díky.
>
> --
>  @ @ @     Marek Nožka
>  '****.@
>  :*****`@  email:  tlapicka zabalenéAčko centrum.cz
>  `*****'   jabber: karkulin zabalenéAčko njs.netlab.cz
>   :****:
>   `****'
>   `****'   Powered by Debian GNU/Linux
>   `.**'
>     ¨¨
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>


-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz


More information about the csTeX mailing list