代码如下:
\documentclass[12pt,letterpaper]{article}
\usepackage{array}
\newcommand{\fntxt}[1]{\footnotetext{#1}}
\newcommand{\fnstep}{\stepcounter{footnote}}
\newcommand{\fnmark}{\footnotemark}
\usepackage{hyperref}
\begin{document}
\begin{tabular}{| c | c |}
\hline
Test1\fnmark & Test2\fnmark \\ \hline
\end{tabular}
\addtocounter{footnote}{-1}
\fntxt{Footnote 1}
\fnstep
\fntxt{Footnote 2}
\end{document}
我pdflatex
点击了两次。问题是:(1) 当我点击第一个脚注时,我被“转移”到同一页面,而不是指向第一个脚注文本;(2) 当我点击第二个脚注时,我被正确地指向第二个脚注文本。
我也尝试在表格中添加两个以上的脚注。结果发现只有最后一个引用有效。
这背后的原因是什么?如何解决?
多谢。
答案1
对脚注的支持hyperref
很容易被破坏;以下是hyperref
文档中关于该hyperfootnotes
选项的说明:
Makes the footnote marks into hyperlinks to the footnote text. Easily broken...
在此主题在压缩文本.tex,Heiko Oberdiek 说(指的是这里讨论的同一问题):
hyperref
它超出了脚注支持的范围。因此,您可以禁用它:hyperfootnotes=false
或者您必须摆弄内部宏。
以下是他宣布的适合您特定情况的演奏方法(并通过示例进行说明):
\documentclass[12pt,letterpaper]{article}
\usepackage{hyperref}
\begin{document}
\makeatletter
\begin{tabular}{cc}
Test1\footnotemark
\global\let\saved@Href@A\Hy@footnote@currentHref
&
Test2\footnotemark
\global\let\saved@Href@B\Hy@footnote@currentHref
\end{tabular}
\addtocounter{footnote}{-1}%
\let\Hy@footnote@currentHref\saved@Href@A
\footnotetext{Footnote text}%
\addtocounter{footnote}{1}%
\let\Hy@footnote@currentHref\saved@Href@B
\footnotetext{Footnote text}%
\makeatother
\end{document}
答案2
如果你可以在表格环境中使用表格,那么你可以使用表脚注打包并在表格中使用\tablefootnote{ ... }
。(您也可以选择将表格居中并添加标题。)
\documentclass[12pt,letterpaper]{article}
\usepackage{array}
\usepackage{hyperref}
\usepackage{tablefootnote}
\begin{document}
\begin{table}
%\centering
\begin{tabular}{| c | c |}
\hline
Test1\tablefootnote{Footnote 1} & Test2\tablefootnote{Footnote 2} \\ \hline
\end{tabular}
%\caption{This is a table.\label{FirstTable}}
\end{table}
A pagebreak:
\pagebreak
and a second page, so that you can see that the hyperlinks really work.
\end{document}