Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить поддержку гиперссылок #33

Open
egormkn opened this issue Jun 5, 2019 · 8 comments
Open

Добавить поддержку гиперссылок #33

egormkn opened this issue Jun 5, 2019 · 8 comments
Assignees
Milestone

Comments

@egormkn
Copy link

egormkn commented Jun 5, 2019

Было бы неплохо добавить поддержку гиперссылок для содержания и источников.
Я добавил в класс \RequirePackage[hidelinks]{hyperref}, и ссылки на главы и разделы обрабатываются корректно, но ссылки на литературу у меня почему-то ведут на первую главу. Может, это как-то можно исправить? И, наверное, стоит добавить в шаблон - визуально ссылки не выделяются, но читать pdf с ними удобнее.

@mbuzdalov
Copy link
Owner

mbuzdalov commented Jun 6, 2019

Справляется ли с задачей \usepackage[hidelinks]{hyperref} в преамбуле непосредственно пояснительной записки? (Возможно, надо также включить хак, описанный в README, так как \RequirePackage срабатывает до переопределения стандартных команд, связанных с титульной страницей, а \usepackage уже после).

Если да, а вроде бы должно, я бы не включал это в класс. Причин этому много - например, первая же формула в названии раздела сгенерирует, при использовании hyperref, как минимум кучу предупреждений.

Почему ссылки на литературу ведут в веселые места, попробую разобраться, но не прямо сейчас.

@egormkn
Copy link
Author

egormkn commented Jun 8, 2019

О, не замечал раньше этот пункт в README. Сейчас проверил (на версии 1.3.b6), добавление в преамбулу \usepackage[hidelinks]{hyperref} выдаёт ClassError при компиляции.

Хак \usepackage[unicode=true,implicit=false]{hyperref} в преамбуле компилируется, но:

  • не обрабатывает ссылки на разделы в тексте и табличке с ПО
  • не обрабатывает содержание
  • часть ссылок на источники ведёт на конец первой главы (== конец обзора), хотя некоторые правильно ведут на список источников

У \RequirePackage[hidelinks]{hyperref} только последняя проблема.

Хотя это, конечно, не критично, пока и так сойдёт, но на будущее было бы неплохо исправить

@mbuzdalov
Copy link
Owner

часть ссылок на источники ведёт на конец первой главы (== конец обзора), хотя некоторые правильно ведут на список источников

Однако ж. Возможно, это те ссылки, которые появляются в обзоре и только в нем; интересно, так ли это.

В общем, я понял - предстоит много интересного. Если Вам несложно, прицепите к этому issue какой-нибудь пример, на котором можно будет все это отлаживать.

@mbuzdalov mbuzdalov self-assigned this Jun 8, 2019
@egormkn
Copy link
Author

egormkn commented Jun 11, 2019

Я разобрался, в чём проблема. Там счётчик ссылок в обзоре для подсчёта "печатает" библиографию, и hyperref проставляет ссылки туда. Пока не очень понятно, как это исправить. Получилось только отключить эти сломанные ссылки, чтобы они не работали совсем:

%%% Считаем в счетчик #2 число ссылок, удовлетворяющих фильтру #1
\newcommand{\@countsourceswhere}[2]{%
\setcounter{@bibliocounter}{0}%
\begin{NoHyper}%
\printbibliography[env=@fillbibliocounter,heading=reallynone,#1]%
\end{NoHyper}%
\setcounter{#2}{\arabic{@bibliocounter}}}

Соответственно, с источниками, ссылок на которые нет в relatedwork, всё ок

@egormkn
Copy link
Author

egormkn commented Jun 11, 2019

@mbuzdalov
Copy link
Owner

Посмотрите, работает ли для Вас эта версия:

https://github.com/mbuzdalov/latex-styles/tree/hyperref-multibib

@egormkn
Copy link
Author

egormkn commented Jun 11, 2019

Да, всё отлично, работает. Спасибо!
\RequirePackage[hidelinks]{hyperref} добавил после \RequirePackage{titletoc}

@mbuzdalov mbuzdalov added this to the 1.5.0 milestone Jun 4, 2020
@GoPavel
Copy link
Contributor

GoPavel commented Jun 20, 2020

hyperref-сслыки на таблицы и листинги по-прежнему ведут на первую страницу :(
Пример ссылки:
\hyperref[tab:compare_algebras]{Таблицы \ref{tab:compare_algebras}}
В преамбуле:
\usepackage[unicode=true,implicit=false, hidelinks]{hyperref}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants