[cstex] Mechanizmus \AtEndDocument a zalomení stránky v appendixu

Zdenek Wagner zdenek.wagner at gmail.com
Mon May 20 12:14:11 CEST 2019


Jsou stránky číslovány i jinak než jen arabskými číslicemi? Pokud ne,
dal bych na poslední stránku \label a počet stran se spočítá jako
\pageref. Podle toho, že se používá \thepage, soudím, že se nic jiného
než arabské číslice nepoužívá. Do preambule bych tedy dal:

\let\spocitejstranky\relax
\def\pocetstran{\pageref{konec}}

A těsně před \end{document} \label{konec}. Hook \AtEndDocument může
někdy být spuštěn v okamžiku, kdy je na zápis do aux již pozdě a
systém \label + \pageref by měl fungovat spolehlivě.

Zdeněk Wagner
http://ttsm.icpf.cas.cz/team/wagner.shtml
http://icebearsoft.euweb.cz

po 20. 5. 2019 v 11:29 odesílatel Jan Sustek <Jan.Sustek at seznam.cz> napsal:
>
> Bez konkretniho zdrojaku s minimal example a zdrojaku classu tezko rict, kde je chyba. V tuto chvili navrhuji natvrdo po nacteni classu dat napr.
> \def\pocetstran{63}
> Honza
> ---------- Původní e-mail ----------
> Od: Jaroslav Hajtmar <hajtmar at gyza.cz>
> Komu: Czech and Slovak TeX-related mailing list <csTeX at cs.felk.cvut.cz>
> Datum: 20. 5. 2019 11:02:00
> Předmět: [cstex] Mechanizmus \AtEndDocument a zalomení stránky v appendixu
>
> Dobrý den.
> Ještě něco ve stylu: “Vy nás ale zásobujete, pane Karfík….” :-)
>
> Finálně zápasím se sazbou příloh LuaLaTeXem v rámci pomoci bývalému studentovi se sazbou diplomky. Pokouším se zjistit záhadné chování LuaLaTeXu, které je zřejmě způsobeno:
>
> a) buď mou neznalostí LaTexu
> b) nebo chybou v předložené šabloně pro sazbu diplomových či bakalářských prací
> c) nebo nějakou kolizí mnou přidaných balíčků
> d) kombinací výše uvedeného
>
> V šabloně je část kódu, který automaticky sází v úvodu diplomky text, ve kterém je mj uveden počet stránek diplomové práce.
>
>
> Závěrečné řádky šablony, které jsou odpovědné za tuto činnost jsou podle mne tyto:
>
> \makeatletter
> \def\spocitejstranky{
> \protected at write\@auxout{}{\string\gdef\string\pocetstran{\thepage}}%
> }
> \makeatother
>
> \AtEndDocument{\spocitejstranky}
>
>
> Vše fungovalo správně do doby, než jsem se pokoušel přidat vysázení příloh. Zkoušel jsem řadu variant:
>
> - Pokud sázím přílohy makrem \appendix bez použití makra \appendixpage, výpočet počtu stran proběhne OK.
> - Pokud se pokouším použít prostředí \begin{appendices} … \end{appendices}, tak výpočet počtu stran se nekoná...
> - Pokud použiji \appendix s makrem \appendixpage pro sazbu prázdné stránky s nadpisem uprostřed “Přílohy”, tak počítání stránek přestane fungovat (test existence makra \pocetstran v šabloně vysází dva otazníky).
> - Když už jsem se rozhodl, že oželím stranu sázenou pomocí \appendixpage a udělám ji “ručně”, tak jsem zjistil, že jakékoliv použití \newpage, \pagebreak, \clearpage, \cleardoublepage atd… způsobí, že se počet stran nespočítá….
>
> V tuto chvílii jsem rozhodnutý, že asi “prasácky” natvrdo do šablony zapíšu celkový počet stránek diplomky a nebudu se s tím párat, nicméně by mne zajímalo, jaký je vztah maker pro zalomení stránky s makrem \AtEndDocument, které se evidentně správně nevolá a tím pádem se počet stránek nespočítá…
>
> Doufám, že již na další překvapení nenarazím :-)
> Ještě jednou se omlouvám za začátečnické dotazy...
>
> Díky mnohokrát
> Jarda Hajtmar
>
>
>
>
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex



More information about the csTeX mailing list