我的问题是,当使用\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