[cstex] reference na vlastní seznamy
nonsense
nonsense at volny.cz
Mon Feb 11 20:21:11 CET 2013
Dne 11.2.2013 00:39, Zdenek Wagner napsal(a):
> Dobrý večer,
>
> takhle to nemůže fungovat. Představte si následující případ:
>
> \documentclass{article}
> % definice
> \begin{document}
> \section{První}
>
> Podrobnější vysvětlení bude v kapitole \ref{dva} na straně \pageref{dva}.
>
> \section{Druhá}
>
> Nějaký text
>
> \ukazka{...}{...}
>
> Zde začne vysvětlení\label{dva}
>
> \pageref{dva} bude odkazovat na správné číslo strany, ale \ref{dva}
> nebude mít očekávanou hodnotu 2, ale hodnotu 1. Co se stalo? Makro
> \ukazka obsahuje makro \refstepcounter, které inkrementuje čítač, ale
> současně určí, že od tohoto okamžiku se (lokálně) tanto čítač používá
> pro všechna následující makra \label. Proto \label{dva} neodkazuje na
> kapitolu, ale na ukázku, i když bude třeba o několik stran za ukázkou.
> Napraví to až další \section.
>
> Musíte proto udělat následující:
>
> 1. Makro \refstepcounter musí být voláno uvnitř skupiny a \label musí
> být až po \refstepcounter, ale uvnitř téže skupiny.
> 2. Makro \theukazka musí být korektně definováno, např:
> \newcommand\theukazka{\thesection.\arabic{ukazka}}.
>
> Standardní LaTeXová prostředí jsou definována jako prostředí právě
> proto, že prostředí je skupina. \refstepcounter se provede při expanzi
> \caption, proto musí být \label až za \caption, jinak odkazuje na
> kapitolu.
Děkuji mnohokrát za pomoc.
A jen mě tak napadlo,
neuvažoval jste někdy o sepsání takovýchto návodů v nějaké ucelenější
podobě ?
Spolu s p.Olšákem máte nepříliš rozšířený dar relativně složité věci
vysvětlit tak, že jsou pochopitelné.
Skoro to vypadá, že od vašeho vysvětlení byly vlastně jasné odjakživa.
Listy papíru s vašimi texty by byly určitě velmi ohmatané...
Ještě jednou díky
L.Vlček
More information about the csTeX
mailing list