这是我第一次在这个论坛上提问,不过我已经读了很久了,所以请耐心等待。
我目前有一个文档,属于书籍类别,我一直在使用 hypref 包来将目录 (toc) 条目链接到相应的部分,我已经对其进行了设置,以便我可以单击各个部分的标题,然后它们会带我回到目录页面。
我也有图表列表(lof)、表格列表(lot)和参考书目(bib)的条目,并且在目录中,指向相应页面的链接可以很好地将我带到相关页面,但是,我希望能够将 lof、lot 和 bib 的标题作为返回目录的链接。
我找不到任何方法来访问它们的标题,我也尝试创建一个章节并将 \listoffigures 放在其中,然后插入该章节并将章节标题链接到目录,这种方法可行,但目录中有两个 lof 条目,而 lof 会自动跳转到新页面,因此我最终得到一个标题链接到目录的章节,然后是新页面,然后是 lof 生成的内容。
一段时间以来,我一直在网上寻找类似的问题,但还没有找到任何有用的信息,所以我创建了这个帐户,希望能解决这个问题。如果有人知道有人问过类似的问题,或者知道如何解决这个问题,我将不胜感激。
TLDR:尝试链接 lof、lot 和 bib标题返回目录
这是 MWE
\documentclass[11pt,twoside,openany]{book}
\usepackage[nottoc,numbib]{tocbibind}
\usepackage{hyperref}
\begin{document}
\addtocontents{toc}{\protect\hypertarget{TOC}{}}
{\hypersetup{linkcolor=black} \tableofcontents}
\listoffigures
\chapter[Introduction]{\hyperlink{TOC}{Introduction}}
text here
\end{document}
我找到了这个讨论他们采用了不同的 toc 链接和返回方法,我可能最终会使用这种方法,但是 lof 仍然没有链接回 toc,下面是经过修改的 MWE
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{blindtext}
\usepackage{hyperref}
\usepackage[nottoc,numbib]{tocbibind}
\makeatletter
\patchcmd{\addcontentsline}{{#2}{#3}{\thepage }}%
{{#2}{#3}{\protect\Hy@raisedlink{\protect\hypertarget{back\@currentHref}{}}{\thepage}} }%
{\typeout{** patch \string\addcontentsline\space success}}%
{\typeout{** patch \string\addcontentsline\space failure}}%
\AtBeginDocument{\renewcommand{\Sectionformat}[2]%
{\ifnum #2>\c@secnumdepth {#1}\else\hyperlink{back\@currentHref}{#1}\fi}}
\patchcmd{\@makechapterhead}{\bfseries #1\par}{\bfseries\hyperlink{back\@currentHref}{#1}\par}%
{\typeout{** patch \string\@makechapterhead\space success}}%
{\typeout{** patch \string\@makechapterhead\space failure}}
\makeatother
%\hypersetup{colorlinks=true,linkcolor=black}
\begin{document}
\tableofcontents
\listoffigures
\Blinddocument
\end{document}
答案1
这应该适合你。请注意,我稍微简化了代码。这样你就不必\hyperlink
为每个章节输入:
\documentclass[11pt,twoside,openany]{book}
\usepackage[nottoc,numbib]{tocbibind}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}{#1}{\hyperlink{TOC}{#1}}{}{}
\patchcmd{\toc@chapter}{\chapter*{#1}}{\chapter*{\hyperlink{TOC}{#1}}}{}{}
\makeatother
\usepackage{hyperref}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\chapter{Introduction}
\end{document}