Mailing List CyrTeX-ru@vsu.ru Message #2150
From: <CyrTeX-ru@vsu.ru>
Subject: Re: Проблема в работе пакета hyperref (Продолжение)
Date: Tue, 22 Jun 2010 12:01:50 +0400 (MSD)
To: Юра Полищук <CyrTeX-ru@vsu.ru>
On Tue, 22 Jun 2010, Юра Полищук wrote:

Я использую MikTex 2.8 Portable. Это для Win.
В моем документе три ссылки на фрагмент текста:
bline
vekd
test - создал для тестирования.
Получается такая ситуация: ссылка на test работает нормально, а
ссылки на bline и vekd осуществляют неправильный переход! Т.е.
в тексте написан правильный номер страницы, а переход при
нажатии происходит на 2 стр раньше!!!
Мне кажется, что ошибка начинается для меток вставленных после 20 стр.
Вчера я обновил все пакеты в MikTex. hyperref обновился тоже. Не помогло.
У меня просьба: откомпилируйте мой документ на Ваших дистрибутивах, может
у меня MikTex глючит, а результат мне пришлите.
Если у меня в документе, что-то не так, то жду критику в свой адрес.

Заранее благодарен.


 Проверил на LiveTex 2009. Всё то же самое.

 У меня в hyperref была проблема с плавающими включениями.
 Я её решил следующим трюком:
 1) заводится какой-то счётчик перед \begin{document}, скажем
 \newcounter{dummy}
 2) Перед label которые используются для pageref вызываем
    refstepcounter с этим счётчиком.
    {\refstepcounter{dummy}\label{vekd}}

 Это работает.

 Как я понимаю, label вызывает refstepcounter с каким-то счетчиком.
 В monograph.aux можно проверить, что для vekd это
 почему-то счётчик equation.1.1, а для bline -- equation.2.13
 Вот на них и переходит.

 Ага, вот и ответ. label на произвольное место в тексте просто
 так поставить нельзя. Надо использовать \phantomsection

 http://en.wikibooks.org/wiki/LaTeX/Labels_and_Cross-referencing

 То есть, пишем
 {\phantomsection \label{vekd}}
 и всё работает.

 Ю.
Subscribe (FEED) Subscribe (DIGEST) Subscribe (INDEX) Unsubscribe Mail to Listmaster