\@ifnextchar a \input

Zdenek Wagner wagner at cesnet.cz
Wed Apr 5 10:11:28 CEST 2006


On Wed, 5 Apr 2006, Robert Marik wrote:

> V Tue, 04 Apr 2006 20:05:26 +0100, Petr Dusek napsal(a):
>
> >      Dobry den.
> >
> >    Vytvoril jsem si tridu, pro kterou predefinovavam nektera makra.
> > Potrebuju, aby se \part chovalo jinak, pokud je bezprostredne
> > nasledovano makrem \chapter. To jsem vyresil pomoci konstrukce
> > \ifnextchar. Jenze ten \chapter muze byt (presneji receno je temer vzdy)
> > v inputovanem souboru. Cili nasledujicim znakem neni \chapter, ale \input.
> >    Da se nejak donutit LaTeX, aby nejprve provedl ten input, a teprve
> > potom testoval ten \@ifnextchar? Predpokladam nejake zapojeni
> > \expandafter, ale nevim, jak to do te tridy zapsat (odlozeny prikaz je
> > ve tride, zatimco ten predbihajici je v hlavnim dokumentu).
> >
> >    Muzete mi, prosim, pomoci - aspon nasmerovat, kde to najdu?
> >
> >    Dekuju,
> >  PD.
>
> Mozna by pomohlo testovat nejdriv, jestli to co nasleduje neni \input nebo
> \include, pokud ano tak to provest a potom teprve testovat, jestli to co
> nasleduje neni \chapter.
>
Ja bych radeji nedelal vlastni cinnost v \part, jen bych si nastavil
nejaky prepinac a kod, ktery by se provadel pri nepritomnosit \chapter,
bych dal do \everypar. Dale bych predefinoval \chapter, kde by se vymazal
\everypar a pri zapnutem prepinaci provedl \part v prislusne variante.
Nesmite vsak zapomenout, ze muze nasledovat napr. centrovany odstavec nebo
vycet, takze \everypar se bude volat uvnitr skupiny s jinak nastavenymi
parametry odstavce. Musite si tedy jeste predefinovat vyctova prostredi a
mnoha jina, ktera se mohou vyskytnout...


Zdenek Wagner
e-mail: wagner at cesnet.cz

see also http://hroch486.icpf.cas.cz/wagner/
         http://icebearsoft.euweb.cz




More information about the csTeX mailing list