Kapitola "na zlom stranky" <-> obsah - cislo stranky - vyreseno

Hans Ginzel hans at kolej.mff.cuni.cz
Thu Sep 19 22:56:18 CEST 2002


> TBN bohuzel nevlastnim, ale budu si ho muset konecne nekde sehnat.

	http://math.feld.cvut.cz/olsak/tbn.html, možná se dá ještě někde
koupit (U Marečka na MUNI v Brně ?).

> Mam nastudovany jen Jemny uvod do TeXu.

   Ideální stav pro pokračování četbou TBN.

   Můžete se přímo podívejte do zdrojového kódu, kterými byly knihy
Typografický systém TeX a TeXbook naryby vysázeny:
ftp://math.feld.cvut.cz/pub/olsak/tst/
ftp://math.feld.cvut.cz/pub/olsak/tbn/

   Já používám pro generování obsahu:

\let\ea=\expandafter

%% TBN [191] Vhodná alternativa k definici \, z plainu
\def\,{\relax \ifmmode \mskip\thinmuskip \else \leavevmode\thinspace \fi}

\def\filskip{\vskip0pt plus 5\baselineskip \penalty-100
	\vskip0p plus-5\baselineskip}

\def\subkapitola #1 \par{\par
	\removelastskip \filskip \bigskip \vskip\parskip
	\advance\secno by1
	\noindent {\bf \the\kapno.\the\secno. #1}\par
	\iftoc \tocwrite\sectocline{\the\kapno.\the\secno}{#1}\fi
	\nobreak\medskip}
%...

\newwrite\tocout
\newif\iftoc
\newbox\tocbox \setbox\tocbox=\hbox{\kaptocfont 88}

\def\maketoc{\openout\tocout=\jobname.toc \toctrue}

\def\tocwrite#1#2#3{\edef\temp{\noexpand#1{#2}}%
	\write \ea \tocout \ea {\temp{#3}{\the\pageno}}}

\def\sectocline#1#2#3{\line{\sectocfont
		#1~#2\,\leaders\hbox to8pt{\hfil.\hfil}\hfill
		\,\hbox to\wd\tocbox{\hss #3}}}

A nerobustní sekvence \reaxuji až ve výstupní rutině.

	\let\oriplainoutput=\plainoutpout
	\output={\let~=\relax ... \oriplainoutput}


   Kód lze samozřejmě zjednodušit, odstránkovává-li se před nadpisem a
nemusí se pozdržet zápis \the\pageno až do výstupní rutiny, ale nestojí
to za to, tohle funguje vždy.

	Zdraví
--
					Hans Ginzel

http://interviews.slashdot.org/article.pl?sid=02/09/06/1343222
http://www.infoworld.com/articles/op/xml/02/08/26/020826opsource.xml
http://www.manualy.sk/archiv/a534k701.htm






More information about the csTeX mailing list