Potize s generovanim obsahu

Zdenek Wagner wagner at cesnet.cz
Tue Jan 18 14:29:05 CET 2005


On Tue, 18 Jan 2005, Matous Jan Fialka wrote:

> Dobry den,
>
> inspirovan TBN jsem si napsal (opsal) makra na generovani obsahu, ale kdyz
> se stane, ze se nadpis sekce ocitne jako prvni vec na strance po strankovem
> zlomu, tak je tam cislo z minule strany. Nechapu proc. Nasledujici makro je
> to, ktere, kdyz je na zacatku stranky, tak vypise (viz DEBUG: \the\pageno)
> spatne cislo strany a tudis se mi spatne cislo strany dostane i do obsahu.
>
> Makro \toc#1#2#3{...} jen zapisuje do souboru nejakou tu
> \tocline{...}{...}{\the\pageno}, ale neuvadim jej, nebot chyba neni zjevne v
> nem.
>
Musite nejprve vytisknout nadpis a az potom zavolat makro pro zapis
informaci do obsahu. Pak se Vam nedostane strankovy zlom mezi \write a
nadpis a cislo stranky bde spravne.

> ---CUT---
> \catcode`@=11
>
> \def\n at par{\everypar{\setbox0=\lastbox\everypar{}}}
>
> \newcount\chapternum \chapternum=0
> \newcount\subchapternum \subchapternum=0
> \newcount\subsubchapternum \subsubchapternum=0
> \newtoks\varsubsubchapter \varsubsubchapter={}
>
> \def\subsubchapter #1 \par{
>   \advance\subsubchapternum by1
>   \varsubsubchapter={#1}
>   \toc
>     {\the\chapternum.\the\subchapternum.\the\subsubchapternum}
>     {\the\varsubsubchapter}
>     {\the\pageno}
>   \basevskip\baselineskip
>   \noindent
>   \bgroup
>     \b\the\chapternum.\the\subchapternum.\the\subsubchapternum\ifczech.\fi
>     \space
>     \the\varsubsubchapter DEBUG: \the\pageno
>   \egroup
>   \hfil\break
>   \n at par
>   \nobreak
> }
>
> % Jen pro doplneni i ten \basevskip
>
> \def\basevskip{%
>   \par\ifdim\prevdepth>\z@%
>   \vskip-\prevdepth\fi\begingroup\afterassignment\bas at vskip\skip@=}
> \def\bas at vskip{\vskip\skip@\endgroup\prevdepth\z@}
>
> \catcode`@=12
> ---CUT---
>
> Nasledujici makra by na to snad mohla mit vliv, ale nevim. Nemuzu na to
> vubec prijit (\ifthishead a \ifthistail jsou moje interni promenne, nemely
> by mit vliv na dany problem).
>
> ---CUT---
> \def\plainoutput{\shipout\vbox{%
>   \ifodd\pageno\moveright\else\moveleft\fi-\hpush%
>   \vbox{\makeheadline\pagebody\makefootline}}%
>   \global\thisheadtrue\global\thistailtrue%
>   \advancepageno\ifnum\outputpenalty>-20000\else\dosupereject\fi}
> ---CUT---
>
> Nemuzu na to prijit uz neprirozene dlouho, asi jsem musel oslepnout, ze tu
> nejpis banalni chybu nevidim. Budu opravdu vdecny, kdyz mi nekdo sunda ty
> klapky z oci.
>
> S pozdravem a s diky,
>
> --
> Matou\v{s} Jan Fialka aka Nakladatelstv\'{i} Ligatura
> -----------------------------------------------------
> Private E-Mail:       < mjf [at] ligatura [dot] org >
> Home Page:               [ http://www.ligatura.org/ ]
> Linux User Number:    308523 Peace, TeX and GNU/Linux
> -----------------------------------------------------
>

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