使用 hypreref/hypcap 超调表链接到表格

使用 hypreref/hypcap 超调表链接到表格

我从这个社区自学了一切,因此首先向大家表示感谢。

我使用一个稍微修改过的 sphinx 版本来生成我的 tex 文件,然后使用 XeLaTex 来编译它。我使用它来制作出色的报告,这些报告教会了我很多重要的印刷元素,而这些元素我以前并没有意识到。

话虽如此,我终其一生都无法获得表格链接,也无法真正在查看软件中找到表格。这是我的 MWE:

\documentclass[a4paper,11pt,twoside]{report}

\usepackage{lipsum}

% Formatting of colours ______________________________________________________
\usepackage{color}
\definecolor{ClrRed}{RGB}{          255,  0, 0}


% Formatting of links ________________________________________________________
\usepackage[breaklinks]{hyperref}

\usepackage[all]{hypcap}


% Formatting of tables _______________________________________________________
\usepackage{booktabs}
\usepackage{colortbl}
\setlength{\aboverulesep}{0pt}
\setlength{\belowrulesep}{0pt}
\setlength{\extrarowheight}{.75ex}


\begin{document}

\chapter{Summary}

Suspendisse vel felis. Ut lorem lorem, interdum eu, tincidunt sit amet, laoreet
vitae, arcu. Aenean faucibus pede eu ante. Praesent enim
\hyperref[Ch01Tab0101]{Table} \ref{Ch01Tab0101}.
sapien mattis porttitor. Vestibulum porttitor. Nulla facilisi. Sed a turpis eu
lacus commodo facilisis. Morbi fringilla, wisi in dignissim interdum, justo
lectus sagittis dui, et vehicula libero dui cursus dui. Mauris tempor ligula
sed lacus. Duis cursus enim ut augue. Cras ac magna. Cras nulla. Nulla egestas.
Curabitur a leo. Quisque egestas wisi eget nunc. Nam feugiat lacus vel est.
Curabitur consectetuer.

\lipsum[4-6]


\lipsum[14-16]


\begin{table}[!htbp]

\small

%\capstart - Thanks Ulrike, I have taken this command out.

\begin{center}

\noindent\begin{tabular}{>{\raggedright\arraybackslash}p{0.08\textwidth}
>{\raggedleft\arraybackslash}p{0.18\textwidth}
>{\raggedleft\arraybackslash}p{0.18\textwidth}
>{\raggedleft\arraybackslash}p{0.18\textwidth}
>{\raggedleft\arraybackslash}p{0.12\textwidth}}

\arrayrulecolor{ClrRed}
\toprule
\textbf{\relax
Year
\unskip}\relax &\textbf{\relax
Gross
\unskip}\relax &\textbf{\relax
Net
\unskip}\relax &\textbf{\relax
Random
\unskip}\relax &\textbf{\relax
Total {[}daily{]}
\unskip}\relax \\
\midrule
2017 & 446 & 431 & 4956 & 78 \\
2018 & 260 & 247 & 3025  & 46 \\
2019 & 60 & 57 &  760 & 11 \\
\bottomrule

\end{tabular}
\end{center}
\caption[Annualised Data]{Annualised Data.}\phantomsection\label{\detokenize{Ch01Tab0101}}

\end{table}


\lipsum[2-4]


\end{document}

如果您单击正文第二行“表 1.1”上的链接,它将带您进入第三页(或多或少取决于您的软件)。

我不介意将表格名称放在表格上方的解决方案。但从类似主题的问答来看,我尝试了很多次 \capstart,但无法让它工作。

我怀疑问题出在我身上,但通常我通过反复试验 Tex 解决方案能够找到答案,但在这种情况下我却做不到。

谢谢!

更新一: 即使我删除了虚假和冲突的行,我仍然遇到问题。唯一可行的方法是在 Safari 中查看最终的 PDF。其他一切都超出了表格范围(我已经在 Mac、Win 和 Linux 软件上测试过了)。

让我附上一张合成图,说明哪些方法有效,哪些方法无效。请注意,我的评论以浅蓝色显示,我试图解释发生了什么。

点击超链接后使用不同软件查看的最小(非?)工作示例的合成图像。

相关内容