考虑以下 MWE
\documentclass{article}
\usepackage[paperwidth=5cm,paperheight=5cm]{geometry}
\usepackage{hyperref}
\begin{document}
a\footnote{\href{http://texnique.fr}{Lorem ipsum dolor sit amet Lorem ipsum dolor sit ametLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco}}aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa
\end{document}
超链接也设置到脚注的正文上,而不仅限于脚注文本。
有什么办法可以解决这个问题吗?
答案1
\pdfstartlink
这并不奇怪,因为第 1 页上有一个\pdfendlink
,第 2 页底部有一个,所以整个第 2 页都是一个链接。您可能将文本主体和脚注视为单独的流,但 pdf 并非如此看待它们。虽然很容易看到哪里出了问题,但很难修复,因为拆分插入发生在 tex 深处,因此没有简单的方法可以自定义它以\pdfendlink
在第 1 页末尾和\pdfstartlink
第 2 页拆分脚注的开头插入一个。
一个解决方法是不允许拆分超链接,而是单独链接每个单词,这样脚注仍然可以拆分。当然,不允许单词拆分会对排版产生一些影响,但可能是可以接受的。
以下有两个版本,一个被注释掉,链接里面有空白,所以整个脚注就像一个活动区域,但空白不会拉伸。第二个在脚注中有正常的可拉伸单词空间,但空格没有超链接,所以读者可以明显看到每个单词都是单独链接的。
\documentclass{article}
\usepackage[paperwidth=5cm,paperheight=5cm]{geometry}
\usepackage{hyperref}
\makeatletter
\def\xhref#1#2{\def\tmp{#1}\xxhref#2 \^ }
\def\xxhref#1 {%
\ifx\^#1\expandafter\@gobble\else\expandafter\@firstofone\fi
% {\mbox{\href{\tmp}{#1} }\linebreak[0]\xxhref}}
{\mbox{\href{\tmp}{#1}} \xxhref}}
\makeatother
\begin{document}
a\footnote{\xhref{http://texnique.fr}{Lorem ipsum dolor sit amet Lorem ipsum dolor sit ametLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco}}aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa
\end{document}