我需要为文档报告添加自定义订单书签:目前,我正在使用来自图片列表下的书签
我需要一个像这样的自定义书签:
- 内容列表
- 第1章 .......
- 第2章 ......
- 第3章 .....
- 图片列表
- 图 1.1.......
- 图 2.4..........
- 表格列表
- 表 2.5......
- 表 2.7 ......
答案1
链接的帖子(其中也有我的回答)不是问题的解决方案,但可以用作启动器。
主要问题是\bookmark
命令将在书签树的当前级别输入相关信息,这意味着图形书签将出现在或chapter
书签之间section
,但没有排序或形成自己的树。
可以通过将书签操作推迟到其他地方并伪造一些列表figure bookmark
等来解决此问题,如果在最后调用,则会在最后执行正确的书签条目\listoffiguresbookmarks
。 (同样如此\listoftablesbookmarks
。)
\documentclass{article}
\usepackage{caption}
\usepackage{etoolbox}
\usepackage[notlof,notlot]{tocbibind}
\usepackage[bookmarksnumbered,bookmarksopen=true]{hyperref}
\hypersetup{colorlinks,
linkcolor=blue,
linktoc=page}
\usepackage{bookmark}
\makeatletter
\newcommand{\listoffiguresbookmarks}{%
\pdfbookmark[0]{\listfigurename}{listoffiguresbookmark}
\bookmarksetup{level=1}
\@starttoc{lofb}
}
\newcommand{\listoftablesbookmarks}{%
\pdfbookmark[0]{\listtablename}{listoftablesbookmark}
\bookmarksetup{level=1}
\@starttoc{lotb}
}
\makeatother
%%% Generate bookmarks for all figures and tables
\makeatletter
\pretocmd\endfigure{%
\addtocontents{lofb}{%
\protect{%
\bookmark[
rellevel=1,
keeplevel,
dest=\@currentHref,
]{Figure \thefigure: \@currentlabelname}}}%
}{}{\errmessage{Patching \noexpand\endfigure failed}}
\pretocmd\endtable{%
\addtocontents{lotb}{%
\protect{%
\bookmark[
rellevel=1,
keeplevel,
dest=\@currentHref,
]{Table \thetable: \@currentlabelname}}}%
}{}{\errmessage{Patching \noexpand\endtable failed}}
\makeatother
\AtEndDocument{%
\listoffiguresbookmarks
\listoftablesbookmarks
}
\begin{document}
\tableofcontents
\listoffigures
\newpage
\section{The document}
\begin{figure}[ht]
\centering
\rule{6cm}{3cm}
\caption{Figure caption text}
\end{figure}
\newpage
\section{Different section}
\begin{figure}[ht]
\centering
\rule{6cm}{3cm}
\caption{Figure caption text 2}
\end{figure}
\clearpage
\begin{table}[ht]
\centering
\caption{Table caption No. 1}
\end{table}
\end{document}
答案2
这是另一种方法。您可以根据需要进行修改。示例在单个图形环境中使用了两个标题。
\documentclass{article}
\usepackage{xcolor}
\usepackage{caption,subcaption}
\usepackage[nottoc]{tocbibind}
\usepackage[]{hyperref}
\hypersetup{colorlinks,linkcolor=blue,linktoc=page}
\usepackage{bookmark}
\bookmarksetup{numbered, open, color=blue}
\makeatletter
\renewcommand{\listoffigures}{%
\begingroup
\let\SAVEDcontentsline\contentsline
\def\contentsline##1##2##3##4{%
\SAVEDcontentsline{##1}{##2}{##3}{##4}%
\begingroup
\def\numberline####1####2{####1:~####2}
\bookmark[rellevel=1,keeplevel,dest=##4,]{\figurename~##2}%
\endgroup
}%
\tocfile{\listfigurename}{lof}%
\endgroup
}
\makeatother
\begin{document}
\tableofcontents
\listoffigures
\clearpage
\section{The document}
\subsection{the fist subsection}
\begin{figure}[ht]
\centering
\begin{minipage}{0.49\linewidth}
\rule{6cm}{3cm}
\caption{Figure caption text 1}
\end{minipage}\hfill%
\begin{minipage}{0.49\linewidth}
\rule{6cm}{3cm}
\caption[Short form figrue 2]{long long long long long long long long long Figure caption text 2}
\end{minipage}
\end{figure}
\clearpage
\begin{figure}[ht]
\centering
\subcaptionbox{A cat\label{cat}}
{\rule{3cm}{3cm}}
\subcaptionbox{An elephant\label{elephant}}
{\rule{3cm}{3cm}}
\caption{Two animals}\label{animals}
\end{figure}
\section{The second section}
\subsection{the second subsection}
\end{document}