longtable 中的 Hyperref + footnotebackref

longtable 中的 Hyperref + footnotebackref

虽然我知道超链接不支持脚注,我引用:

hyperfootnotes boolean true
将脚注标记变成脚注文本的超链接。容易被破坏……

我想知道是否有人找到了类似以下方法的解决方法:

\documentclass{article}

\usepackage[stable,perpage,multiple,bottom]{footmisc} 
\usepackage[hyperfootnotes=true]{hyperref}
\usepackage{footnotebackref} % connect note back to table
\usepackage{longtable}
\usepackage{blindtext} 

\begin{document}

\blindtext
\newpage
\blindtext

\begin{longtable}{c c p{3cm} c}
  & centered \footnote{Here's a note from a
    centered column} & \\
  &  & paragraph \footnote{This note is } & \\

\end{longtable}

\end{document}

这使在此处输入图片描述

在这里,我们可以看到居中列的注释按预期工作(即,单击脚注标签会将用户带到脚注,然后他们可以单击标签并返回到表格),而段落格式的列则不太好用(它会将用户带回到文档顶部)。我正在使用脚注返回参考回到桌子,但这种行为不是必需的......

\usepackage{}(我经过多次尝试解决这个问题后,使用了上面的 s - 这似乎是我能想到的最接近的办法了)。

我之所以问这个问题,是因为我有一个跨越多页的表格,如果段落格式的列可以超链接到同一页的脚注,效果会更好。

或者目前这是不可能的?

答案1

需要做一些额外的工作,以便所使用的相应标签footnotebackref在被调用时仍然可用。以下方法似乎有效:

\documentclass{article}

\usepackage{longtable}
\usepackage{array}

\usepackage{hyperref}
\usepackage{footnotebackref}
\usepackage{etoolbox}
\patchcmd{\footnote}{\edef}{\xdef}{}{\errmessage{failed to patch}}

\makeatletter
\renewcommand\@makefntext[1]{%
    \edef\@makefnmark{%
        \noexpand\mbox{\noexpand\textsuperscript{\noexpand\normalfont%
        \noexpand\hyperref[\BackrefFootnoteTag]{\noexpand\@thefnmark}}}\noexpand\,}%
    \BHFN@OldMakefntext{#1}}%
\makeatother


\begin{document}

\begin{longtable}{
    c
    >{\raggedright}p{3cm}
  }
  % start of table cells:
  centered \footnote{Here's a note from a
    centered column} \tabularnewline
  & paragraph \footnote{This note is from paragraph } \tabularnewline
\end{longtable}

\end{document}

答案2

@David Carlisle 一如既往地正确,但看起来它们footnotebackref配合longtable得并不好。下面是一个最小示例,它实现了我最初希望的行为。

\documentclass{article}

\usepackage{longtable}
\usepackage{array}

%\usepackage{footnotebackref}
\usepackage{hyperref}

\begin{document}

\begin{longtable}{
    c
    >{\raggedright}p{3cm}
  }
  % start of table cells:
  centered \footnote{Here's a note from a
    centered column} \tabularnewline
  & paragraph \footnote{This note is from paragraph } \tabularnewline
\end{longtable}

\end{document}

给予(抱歉质量不佳)在此处输入图片描述

最好能将footnote链接返回,longtable因此暂时将这个链接保持打开状态,以防万一有办法做到这一点。

相关内容