[cstex] Generování obsahu v plainu

Stínovlas stinovlas at gmail.com
Wed Aug 3 17:03:09 CEST 2011


Mockrát díky, už to funguje :-)!

JM


2011/8/3 Zdenek Wagner <zdenek.wagner at gmail.com>:
> Dne 3. srpna 2011 16:33 Stínovlas <stinovlas at gmail.com> napsal(a):
>> Dobrý den,
>>
>> mám problém, se kterým si nevím rady. Snažím se o automatické generování obsahu
>> v plainTeXu (resp. csplainu). Relevantní část kódu je poměrně stručná:
>>
> \write musíte použít až po vysazení nadpisu kapitoly, tedy až za \par,
> nikoliv uprostřed nebo dokonce před. U kapitoly to není problém,
> protože začínáte na nové stránce. U podkapitoly nejprve máte \write,
> který vytvoří "whatsit". Pak zapíšete název, který se po jistých
> činnostech vkládá do MVL. Jestliže se vyvolá algoritmus plněni stránky
> a TeX zjistí, že nadpis podkapitoly je prvním elementem, který se na
> stránku již nevejde, provede stránkový zlom mezi whatsit (\write) a
> nadpisem. Správné pořadí je tedy: Nadpis \par \write
>
>> \def\bigsecti at n#1#2{
>>        \vfill\eject
>>        \removelastskip%
>>        \bigskip\bigskip%
>>        \noindent{\fontnadpisa #1}%
>>        \par%
>>        \xdef\chapmark{#2}
>> }
>>
>> \def\kapitola#1{%
>>        \bigsecti at n{\the\chapnum. #1}{Kapitola \the\chapnum. #1}%
>>        \tocadd{0}{\chapmark}
>>        \advance\chapnum by 1%
>> }
>>
>> \def\podkapitola#1{%
>>        \tocadd{1}{#1}%
>>        \removelastskip%
>>        \bigskip%
>>        {\fontnadpisb #1}%
>>        \par\nobreak%
>> }
>>
>> \newwrite\toc
>> \immediate\openout\toc=toc.tex
>>
>> \def\tocadd#1#2{
>>        \write\toc{\string\tocline{#1}{#2}{\the\pageno}}
>> }
>>
>> Což by mělo (podle TeXbooku naruby) fungovat, protože \write expanduje
>> až při \shipout.
>> Přesto mi ale nevychází čísla stránek -- začíná-li podkapitola na nové
>> stránce (hned za zlomem),
>> je jí v souboru toc.tex přiřazena ještě předchozí stránka. Dumal jsem,
>> hledal jsem, ale už vážně
>> nevím...
>>
>> Budu vděčný za jakoukoliv pomoc.
>>
>> Jan Musílek
>>
>> _______________________________________________
>> csTeX mailing list
>> csTeX at cs.felk.cvut.cz
>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>>
>
>
>
> --
> Zdeněk Wagner
> http://hroch486.icpf.cas.cz/wagner/
> http://icebearsoft.euweb.cz
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>




More information about the csTeX mailing list