调整超链接脚注链接周围的框

调整超链接脚注链接周围的框

是否可以调整 生成的脚注链接周围的框的大小hyperref?具体来说,我想将框的底部移近内部对象的底部。

\documentclass[12pt]{article}
\usepackage{hyperref}
\begin{document}
The quick brown fox jumps over the lazy dog\footnote{and lands on a spike}.
\end{document}

脚注链接

答案1

您可以尝试使用 处理文件xelatex。当我使用您的 MWE 执行此操作时,hyperref会在脚注周围形成一个紧密的框。当我尝试使用 时pdflatex,我收到的输出与您附加的图像相同。

答案2

pdflatex“你可以[...]通过[...]黑客技术对其进行调整hyperref”(Lars Kotthoff,https://tex.stackexchange.com/a/44032/6865), 因此:

在此处输入图片描述

\documentclass{article}
\usepackage{hyperref}

% If you like footnotesymbols instead of numbers:
%\def\thefootnote{\fnsymbol{footnote}}

\usepackage{ltxcmds}

\makeatletter

\renewcommand{\footnote}[2][\empty]{%
  \nolinebreak%
  \addtocounter{footnote}{+1}%
  \xdef\sfootnote@number{\arabic{footnote}}%
  \ltx@ifpackageloaded{hyperref}{% hyperref loaded
    \ifHy@hyperfootnotes% option hyperfootnotes=true
      \addtocounter{Hfootnote}{+1}%
      % Code from the hyperref package
        \global\let\Hy@saved@currentHref\@currentHref%
        \hyper@makecurrent{Hfootnote}%
        \global\let\Hy@footnote@currentHref\@currentHref%
        \global\let\@currentHref\Hy@saved@currentHref%
      % End of code form the hyperref package
    \fi%
   }{% hyperref not loaded, nothing to be done here
   }%
  \xdef\sfootnote@opt{#1}% contains the optional argument
  \xdef\sfootnote@arabic{\arabic{footnote}}% is the Arabic footnotenumber
  \edef\sfootnote@formated{\thefootnote}% could also be * or dagger
  \ifx\sfootnote@opt\empty% i.e. no optional argument used
    \footnotetext{\label{fnr:\sfootnote@arabic}#2}%
  \else%
    \ltx@ifpackageloaded{hyperref}{% hyperref loaded
      \footnotetext[#1]{\phantomsection\label{fnr:\sfootnote@arabic}#2}%
     }{% hyperref not loaded
      \footnotetext[#1]{\label{fnr:\sfootnote@arabic}#2}%
     }%
  \fi%
  \ltx@ifpackageloaded{hyperref}{% hyperref package loaded
    \ifHy@hyperfootnotes% option hyperfootnotes=true
      \hbox {\@textsuperscript {\normalfont \ref{fnr:\sfootnote@arabic}}}%
    \else% option hyperfootnotes=false
      \hbox {\@textsuperscript {\normalfont \ref*{fnr:\sfootnote@arabic}}}%
    \fi%
  }{% hyperref package not loaded
    \hbox {\@textsuperscript {\normalfont \ref{fnr:\sfootnote@arabic}}}%
   }%
}

\makeatother

\begin{document}
The quick\footnote{really fast} brown\footnote{maybe more like a dark red} fox
jumps over the\footnote[1]{custom footnote number: 1} lazy
dog\footnote{and escapes the hunt}.

\newpage

It is easier to test the hyperlinks when there is a second page!

\end{document}

脚注具有挑战性 -https://tex.stackexchange.com/search?q=footnote目前列出了近 400 个问题。因此,不能保证这适用于更复杂的情况,或适用于处理脚注的众多软件包中的某个。

答案3

pdflatex如果不进行修改,您无法对其进行调整hyperref。它使用 PDF 注释来显示链接,并且框的大小由Rect ...PDF 内部的 定义。生成该框的代码是

/H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def

即它使用由 确定的边界框坐标pdflatex。您需要解决这个问题并调整不正确的边界框。

我建议您接受这个xelatex答案。

相关内容