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