[cstex] Jak skryt obsah prostredi
Jan Sustek
Jan.Sustek at seznam.cz
Tue Mar 3 09:18:57 CET 2009
Dobry den,
nedavno jsem delal neco podobneho. Udelal jsem si makro \ignoreenv, ktere definuje prostredi #1, ktere skryje svuj obsah:
\def\ignoreenv#1{\newenvironment{#1}{\setbox0=\vbox\bgroup}{\egroup}}
Trik je v tom, ze se argument vlozi do boxu 0, ktery se nikde nepouzije. Jelikoz se obsah prostredi neuklada do argumentu, ale sazi se do boxu, je mozne pouzit i verbatim. Pouziti tohoto makra muze byt nasledujici.
\ifshowanswers
\newenvironment{solution}{(klasicka definice Vaseho prostredi)}{}
\else
\ignoreenv{solution}
\fi
Zdravi
Jan Sustek
> ------------ Původní zpráva ------------
> Od: Antonin Kral <A.Kral at bobek.cz>
> Předmět: [cstex] Jak skryt obsah prostredi
> Datum: 03.3.2009 07:55:02
> ----------------------------------------
> Dobry den,
>
> potreboval bych udelat prostredi, ktere neposle na vystup svuj obsah,
> pokud je nastavena nejaka promenna. Na zaklade probsoln jsem zkoncil s
> necim takovym:
>
> \newif\ifshowanswers
>
> \newenvironment{solution}{%
> \long at collect@body\do at onlysolution
> }{}
> \newcommand{\do at onlysolution}[1]{%
> \ifshowanswers
> \par\noindent\textbf{\solutionname:}%
> #1%
> \fi}
>
> Kde \long at collect@body je obdoba collect at body. Vsechno funguje dobre, az
> na to, kdyz se do prostredi solution pokusim zavrit verbatim, lstlisting
> apod. Typicky to pak konci s
>
> Paragraph ended before \@xverbatim was complete.
>
> apod. Nemate prosim napad, jak tento problem resit?
>
> Dekuji, s pozdravem,
>
> Tonda Kral
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
>
More information about the csTeX
mailing list