escape-nutie verbatim-u

Zdenek Wagner wagner at cesnet.cz
Wed Dec 27 16:26:44 CET 2006


2006/12/17, David Nečas (Yeti) <yeti at physics.muni.cz>:
> On Sun, Dec 17, 2006 at 04:02:54PM +0100, kosik at fiit.stuba.sk wrote:
> >
> > Uz len tomu dat nejaky pekny LaTeXovsky kabatik vo forme nejakeho
> > prostredia. Problem ale s verbatim prostredim je, ze sa takemuto
> > zaobaleniu vzpiera. To, co by som potreboval je, aby sa
> >
> >    \begin{verbatim}
> >
> > vyskytaval v ramci druheho parametra `newenvironment' prikazu a aby
> >
> >    \end{verbatim}
> >
> > bol umiesteny v tretom `newenvironment' prikaze. Zial, toto LaTeX to
> > tam predcasne prozvinie. Existuje nejaka moznost ako
> >
> >    \begin{verbatim}
> >
> > a
> >
> >    \end{verbatim}
> >
> > nejako "zaquotovat"?
>
> Jelikož to \end{verbatim} je delimiter argumentů makra
> \@xverbatim, musel byste zařídit, aby ho TeX viděl při
> hledání konce argumentů -- tj. aby se ta věc, v níž by byl
> schovaný, expandovala ještě předtím. Což jde špatně.
>
> Já bych okopíroval definici prostředí verbatim z latex.ltx
> (je to <60 řádků včetně \verb a hvězdičkových variant)
> a vytvořil nové prostředí jeho úpravou -- budete tak mít
> zároveň kontrolu nad tím, co se děje se speciálními znaky
> a nebudete muset spoléhat na to, že jim \begin{verbatim}
> nenastaví kategorii na 11.
>
> Kód verbatimu není zrovna průzračný, ale naštěstí mu
> nemusíte detailně rozumět, stačí s/verb/colorverb/g,
> dopsat do \def\colorverbatim své značkovací znaky (ty musí
> být aktivní také v době čtení definice makra, viz TBN str.
> 25 a dále), a chcete-li použít pro značkování nějaký znak,
> který stantadní verbatim znormálňuje, změnit v definici
> \dospecials na analogické makro, které požadované speciální
> znaky vynechává.
>
Misto aktivnigho znaku, jak jiz bylo v jedne z odpovedi uvedeno,
muzete znaku pridelit kategorii 0, tj. bude se chovat jako backslash.
Pak jeste potrebujete zmenit kategorii znaku pro simulaci zavorek
kvuli zadavani parametru. Po \catcode`\!=0 \catcode`\<=1 \catcode`\>=2
muzete napsat napr. !color<blue>

Krome toho pro LaTeX existuji balicky, ktere mo6nosti prostredi
verbatim velmi rozsiruji, napr. fancyvrb

> Yeti
>
>
> --
> Whatever.
>


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




More information about the csTeX mailing list