Что может пойти не так, если я не использую * в команде \hyperref?

Что может пойти не так, если я не использую * в команде \hyperref?

В руководстве Latex на wikibooks говорится, что команду следует использовать \hyperrefследующим образом:

We use \hyperref[mainlemma]{lemma \ref*{mainlemma} }.

Где "mainlemma" — это имя метки. Затем он говорит:

Обратите внимание на * after \ref, чтобы избежать вложенных гиперссылок.

Я реализовал эту строку в своем документе, один раз с , а другой без , *и не заметил никакой разницы.

Так какой же вред может быть в том, чтобы не использовать *?

решение1

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

Чтобы проиллюстрировать это, рассмотрим MWE:

\documentclass{article}

\usepackage{hyperref}

\begin{document}

\section{Sample}
\label{sample}

\section{Another Sample}

\hyperref[sample]{section~\ref{sample}}

\end{document}

В okularэтом отображается как:

Обе гиперссылки заключены в рамку

Использование hidelinksor colorlinksможет, по-видимому, решить эту проблему:

\documentclass{article}

\usepackage[colorlinks]{hyperref}

\begin{document}

\section{Sample}
\label{sample}

\section{Another Sample}

\hyperref[sample]{section~\ref{sample}}

\end{document}

Выглядит это okularпримерно так:

Ссылки красного цвета

Но если я изменю okularнастройки доступности так, чтобы ссылки были рамочными, то они будут отображаться как

текст ссылки красный обе ссылки в рамке

Поскольку и внутренняя, и внешняя ссылки указывают на одно и то же место, фактические гиперссылки в okularотправят вас в одно и то же место, но это может сбить с толку других пользователей, просматривающих PDF. Если внутренняя ссылка указывает на другое место, чем внешняя ссылка, то путаницы будет еще больше. Это может произойти, когда \refиспользуется в команде секционирования, которая попадает в оглавление.

Например:

\documentclass{article}

\usepackage[colorlinks]{hyperref}

\begin{document}

\tableofcontents

\section{Sample}
\label{sample}

\section{Another Sample Following on from section \ref{sample}}

\end{document}

Изображение документа с оглавлением

Теперь в оглавлении есть вложенная ссылка, но куда эта ссылка вас приведет, зависит от просмотрщика PDF и от того, использовали ли вы формат PDF или DVI для создания документа. Если я скомпилирую с помощью pdflatexи затем просматриваю документ с помощью , okularесли я нажму на внутреннюю ссылку, я буду отправлен в раздел 2, но если я просматриваю документ во evinceвнутренней ссылке, я буду отправлен в раздел 1. Если я создам документ с помощью latex++ dvips, ps2pdfпроизойдет обратное.

Связанный контент