wikibooks 上的 Latex 手冊說你應該使用\hyperref
以下指令:
We use \hyperref[mainlemma]{lemma \ref*{mainlemma} }.
其中“mainlemma”是標籤名稱。然後它說:
請注意
*
後面的內容\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
此顯示為:
使用hidelinks
orcolorlinks
似乎可以解決這個問題:
\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
將latex
我發送到第 1 部分。文檔,則相反發生。dvips
ps2pdf