Posted By: demagog (saman) on 'CZTeX'
Title:     Re: Jak psat zdrojaky ? :)
Date:      Mon Oct 22 17:16:33 2001

> Ahojda, no rad bych to psal asi v tom latexu, ale nebranim se v zasade ani 
> plainu. Nejlepsi by bylo, kdybych nemusel rucne sazet obsah a treba index 
> slov a treba i odkazy na literaturu nebo tak neco. 
> Zkousel jste to nekdo ? 
> Zdravi Michal

Nerikam, ze je to idealni, ale nekdy v historicky ne uplne davne dobe jsem 
delal toto. Pouzity myslenky z knih: Libor Olsak - TeXbook naruby, Donald 
Knuth - The TeXbook.

%%%%%% obsah

defcvak{ifdimdimen0<6pt dimen0=9pt else dimen0=3pt fi}

defkaptocline#1#2{%
  bigskip
  line{bf #1 hfil #2}}

defpodkaptocline#1#2{%
  line{qquad #1 leadershbox to12pt{kerndimen0.hss}hfil #2}cvak}

newboxobsbox
setboxobsboxvbox{begingroupcatcode`@=11input jobname.tocendgroup}

defobsah{bgroupdimen0=3ptrelaxunvboxobsboxegroup}

newwritetoc
immediateopenouttoc=jobname.toc

%%%%%% titulkovani kapitol atd.

newboxodsazeni
defneodsad{globaleverypar={setboxodsazenilastboxunhboxodsazeniunskip
                               globaleverypar={}}}

newcountkapcount
newcountpodkapcount
kapcount=0
podkapcount=0

newtokspagetoks pagetoks={thepageno}

defnalevo{hyphencharfont=-1rightskip0pt plus2em relax}

defkap#1par{%
   advancekapcount by 1
   podkapcount=0
   vetnum=0
   dfnum=0
   writetoc{stringkaptocline{thekapcount #1}{folio}}
   {BiGGbfnalevonoindentthekapcount #1}parnobreakbigskipneodsad}

defkapnecis#1par{%
   writetoc{stringkaptocline{#1}{folio}}
   {raggedrightnoindentBiGGbf #1}parnobreakbigskipneodsad}

defpodkap#1par{
   advancepodkapcount by 1
   bigbreak
   edefact{writetoc{noexpandstringnoexpandpodkaptocline
   {thekapcount.thepodkapcount #1}{thepagetoks}}}act
   {noindentbigbfthekapcount.thepodkapcount #1}par
   nobreakmedskipneodsad}

%%%%%% seznam literatuuuuury

input jobname.ref
newwriteref
immediateopenoutref=jobname.ref

newcountliteranum
literanum=0

defbeglit#1{begingroup
  setbox0=hbox{[#1] }
  advanceleftskip by wd0
  parskip=smallskipamount
  defodr##1##2par{%
  advanceliteranum by 1
  noindentllap{[theliteranum] }ignorespaces ##2par
  immediatewriteref
    {stringexpandafterstringedefstringcsnamespace
    lit:##1endcsname{theliteranum}}}}

defendlit{endgroup}

deflitodkaz#1{csname lit:#1endcsname}

 

Search the boards