[cstex] reference na vlastní seznamy

Zdenek Wagner zdenek.wagner at gmail.com
Mon Feb 11 22:07:34 CET 2013


Dne 11. února 2013 20:21 nonsense <nonsense at volny.cz> napsal(a):
> 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.
>
Přemýšlím o tom již několik let, ale chybí čas k realizaci.

> Listy papíru s vašimi texty by byly určitě velmi ohmatané...
>
> Ještě jednou díky
>
>
> L.Vlček
>
>
>
>
> _______________________________________________
> 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




More information about the csTeX mailing list