Hyperref 可点击区域太小,无法自动引用和超级引用

Hyperref 可点击区域太小,无法自动引用和超级引用

我的问题是,当使用\autocite{}\supercite使用 hyperref 时,链接区域非常小,它不会接触上标的任何地方,并且位于行的中间,而不是上标的高度。我正在使用 BibLaTeX。

\documentclass[]{article}

\usepackage[autocite=superscript,
    backend=biber,
    hyperref=true,
    url=false,
    isbn=false,
    doi=false,
    maxnames=4]{biblatex}
\usepackage[colorlinks=true]{hyperref}

\addbibresource{Wald.bib}


\begin{document}
Text\autocite{Wald}
\printbibliography
\end{document}

我的虚拟 Wald.bib 文件:

@Article{Wald,
  author  = {Walter Ewald},
  title   = {Walten im Wald},
  journal = {Waldwerke},
  year    = {1208},
  date    = {1208-12-12},
}

@Comment{jabref-meta: databaseType:biblatex;}

我目前使用的是 Windows 10,MiKTeX 2.9.7250 64 位,pdfTeX 版本 3.14159265-2.6-1.40.20。正常的快速编译是 pdfTeX -> Biber -> 2x pdfTeX -> divps -> ps2pdf,但只使用 pdftex 时问题仍然存在。下图中,可点击区域以蓝色突出显示(与 colorlinks=false 相同,因此我没有为此添加图片)

输出时突出显示链接区域。

答案1

问题是 \textsuperscript设置\baselineskip为 0pt( \z@):

\def\@textsuperscript#1{%
  {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}

另一方面\hyper@linkend用途\baselineskip

\def\hyper@linkend{%
  \literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.L}%

设置\baselineskip为正值例如可以\textsuperscript解决问题:

\documentclass[]{article}

\usepackage[autocite=superscript]{biblatex}
\usepackage{hyperref}

\addbibresource{biblatex-examples.bib}


\begin{document}
Text\autocite{doody}

\makeatletter
\def\@textsuperscript#1{%
  {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\sf@size#1}}}}}
\makeatother  

Text\autocite{doody}
\end{document}

在此处输入图片描述

但主要的问题是,这最好在哪里进行。另请参阅https://github.com/latex3/hyperref/issues/115

相关内容