Problem pri teste parnej a neparnej strany

Zdenek Wagner wagner at cesnet.cz
Mon Mar 1 10:41:46 CET 2004


On Sun, 29 Feb 2004 Jan.Busa at tuke.sk wrote:

>    Dobry den,
>
> zaznamenal som nasledujuci problem:
>
> Do stylu som zaradil nasledujuce "makro" (v uvodzovkach, pretoze neviem,
> ci sa to moze nazvat makro, ale nechcelo sa mi velmi studovat):
>
> \newcommand\zaver{\par\medskip{\unitlength=1mm%
> \ifodd\arabic{page} \begin{picture}(0,0)(0,0)%
> \put(\l@,0){\makebox(0,0)[r]{\includegraphics[height=\h@]{\pict at k}}}%
> \end{picture}%
> \else
> \begin{picture}(0,0)(0,0)%
> \put(\l@,0){\makebox(0,0)[r]{\includegraphics[height=\h@]{\pict at k}}}%
> \end{picture}%
> \fi}\textbf{Záver}\par\medskip}
>
> Myslienka je taka, aby napisal bolo vypisane "Zaver" a zaroven aby sa
> pridal obrazok, bud napravo alebo nalavo podla (ne)parnosti strany.
>
> Vcelku dobre to funguje, ale obcas sa stava, ze to dopadne naopak.
>
Potiz je v tom, ze v okamziku, kdy se Vase makro expanduje, neni jeste
jasne, na kterou stranku prijde. TeX nejprve sestavuje horizontalni
seznam, tan nalame na radky, ktere nasklada do vartikalniho seznamu.
Jakmile je ve vertikalnim seznamu vice materialu, nez se na stranku vejde,
zaplni se stranka a nepouzity zbytek zustane ve vertikalnim seznamu
(presne je to v TBN a v TeXbooku). Musite proto pred svym makrem prejit na
novou stranku pomoci \clearpage. Nestaci \newpage, protoze nevynuti tisk
plovoucich objektu, ktere jeste nenasly sve misto, a mohou zase Vas
obrazek odsunout o stranku dale. Jina moznost je zasah do \output tim, ze
vlozite zapornou penaltu mensi nez -10001, tu odchytite a postarate se o
vlozeni obrazku na spravnou stranu. Tak to dela napr. balik floatfig. Neni
prilis slozity, jeho makra lze celkem snadno pochopit.

Krome toho, \arabic{page} je makro, jeho vystupem je text, ktery se musi
znovu prevest na typ number. Mnohem rychlejsi je test \ifodd\c at page (a
samozrejme musi byt bud ve stylovem souboru nebo nezapomente
\makeatletter).

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