书签与图表和参考书目没有正确链接

书签与图表和参考书目没有正确链接

我一直在尝试让该bookmark软件包与我的论文配合使用,而且大部分情况下我对结果感到满意;但是,我在图表和参考书目表的链接方面遇到了一些问题。下面是我针对各个章节等编写的代码的相当广泛的 MWE。我已将论文中使用的所有软件包(到目前为止)都包括在内,以防万一出现任何可能导致冲突的情况。

编译 TeX 文件并打开 pdf 后,各种书签都已存在,但是当我单击图表目录的书签时,它会带我进入目录页面。同样,当我单击参考书目的书签时,它会带我进入第 6 章中的子节 6.1.1。

有人能解释一下这里出了什么问题吗?

非常感谢!

\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{setspace}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{lscape}
\usepackage[round,colon]{natbib}
\usepackage{caption}
\usepackage{array,booktabs,threeparttable}
\usepackage{chemformula}
\usepackage{url}
\usepackage[intoc]{nomencl}
\usepackage{bookmark}
\usepackage{lipsum}
\bookmarksetup{bold=false}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
  @book{Knu86,
    author = {Knuth, Donald E.},
    year = {1986},
    title = {The \TeX book},
  }
\end{filecontents}

\begin{document}

\begin{titlepage}
\begin{center}
\vspace*{1in}
{\LARGE Quantifying rates of landscape evolution in carbonate terrains using U-Pb dating of speleothems}
\par
\vspace{1.5in}
{\large Christopher James Martin Smith}
\par
\vfill
A dissertation submitted to the University of Bristol in accordance with the requirements for award of the degree of Doctor of Philosophy in the Faculty of Science.
\par
\vspace{0.5in}
School of Geographical Sciences
\par
\vspace{0.5in}
University of Bristol
\par
\vspace{0.5in}
September 2014
\end{center}
\end{titlepage}

\pagenumbering{roman}
\chapter*{Declaration}
\addcontentsline{toc}{chapter}{Declaration}
\lipsum[1]

\chapter*{Acknowledgements}
\addcontentsline{toc}{chapter}{Acknowledgements}
\lipsum[1]

\chapter*{Abstract}
\addcontentsline{toc}{chapter}{Abstract}
\lipsum[1]

\label{Table of Contents}
\cleardoublepage
\pdfbookmark{\contentsname}{Contents}
\tableofcontents
\newpage

\label{List of Figures}
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
\newpage

\label{Lits of Tables}
\addcontentsline{toc}{chapter}{List of Tables}
\listoftables
\newpage

\label{Nomenclature}
\printnomenclature
\newpage

\pagenumbering{arabic}
\chapter{Introduction}
\section{Section}
\lipsum[1]\citep{Knu86}
\subsection{Subsection}
\lipsum[1]

\chapter{Literature Review}
\section{Section}
\lipsum[1]
\subsection{Subsection}
\lipsum[1]

\chapter{Methodology}
\section{Section}
\lipsum[1]
\subsection{Subsection}
\lipsum[1]

\chapter{Results}
\section{Section}
\lipsum[1]
\subsection{Subsection}
\lipsum[1]

\chapter{Discussion}
\section{Section}
\lipsum[1]
\subsection{Subsection}
\lipsum[1]

\chapter{Conclusion}
\section{Section}
\lipsum[1]
\subsection{Subsection}
\lipsum[1]

\addcontentsline{toc}{chapter}{Bibliography} 
\bibliographystyle{plainnat}
\bibliography{\jobname}

\end{document}

答案1

书签链接到使用的锚点\addcontentsline。因为它来自图表或参考书目,它链接到之前的某个事件(目录/最后一个小节)。\phantomsection可用于创建新的锚点:

\cleardoublepage
\pdfbookmark{\contentsname}{Contents}
\label{Table of Contents}
\tableofcontents
\newpage

\phantomsection
\label{List of Figures}
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
\newpage

\phantomsection
\label{List of Tables}
\addcontentsline{toc}{chapter}{List of Tables}
\listoftables
\newpage
...

\clearpage
\phantomsection
\addcontentsline{toc}{chapter}{Bibliography} 
\bibliographystyle{plainnat}
\bibliography{\jobname}

标准列表的替代方案

\addcontentsline应该转到列表的最开始处。\addtocontents允许这样的放置:

In the preamble (or right after `\begin{document}`:

\AtBeginDocument{%
  \addtocontents{toc}{\protect\label{Table of Contents}}%
  \addtocontents{lof}{%
    \protect\addcontentsline{toc}{chapter}{\protect\listfigurename}%
    \protect\label{List of Figures}%
  }%
  \addtocontents{lot}{%
    \protect\addcontentsline{toc}{chapter}{\protect\listtablename}%
    \protect\label{List of Tables}%
  }%
}

然后\addcontentsline\label参考列表的章节标题。文档中的代码简化为

\cleardoublepage
\pdfbookmark{\contentsname}{Contents}
\tableofcontents
\newpage

\listoffigures
\newpage

\listoftables
\newpage

缺点:需要多次运行,因为第一次运行\addcontentsline进入.toc文件,第二次运行进入.lof.lot文件,第三次运行将条目设置在图形/表格列表中。

相关内容