[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