hyperref:新书签,全页浮动

hyperref:新书签,全页浮动

hyperref软件包会自动创建一个“Acrobat 书签”列表——一个目录树,它不是打印文档的一部分,但可以在 PDF 阅读器中访问(通常显示在文档旁边的侧面板中)。

所有章节、子章节等都会自动添加到列表中。但是,我想添加其他条目。

我遇到了一个有点棘手的情况:在我的文档的最末尾,有\clearpage,后面跟着一些全页浮动figure环境(没有其他内容)。我想要一个看起来像 的书签\subsection,并将我带到第一页带有全页浮动的环境(紧接着 的页面\clearpage)。

我怎样才能做到这一点?

如果我在和第一个整页浮动内容\phantomsection \addcontentsline{toc}{subsection}{Figures} \null之间添加一些内容,我的文档中就会有一个额外的空白页。\clearpage

答案1

我不明白为什么这样做不起作用,或者为什么把\addcontentslinea 放在里面\AtNextShipout不起作用。话虽如此,如果你把它放在图中,它似乎有效。

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\section{asdf}
asdf
\section{qwer}
\clearpage
\begin{figure}[p]
\phantomsection
\addcontentsline{toc}{subsection}{Figures}
\noindent
\rule{4in}{6in}%
\caption{X}
\end{figure}
\begin{figure}[p]
\noindent
\rule{4in}{6in}%
\caption{Y}
\end{figure}
\begin{figure}[p]
\noindent
\rule{4in}{6in}%
\caption{Z}
\end{figure}
\end{document}

编辑:
实际上,在我发布这篇文章后,我就有了个想法。 它\write会被放在主垂直列表中,但永远不会被发送出去。 是的。\clearpage adsf在最后一个图后添加一个,在\phantom\addcontentsline...图前添加一个,果然,书签就在图后的文本上。

我仍然不确定为什么它不起作用\AtNextShipout。我必须再次检查包裹,但我很确定它会做一些类似于改变的事情\shipout\afterassignment\shipouthook\setbox0=然后将\shipouthook材料插入盒子并在入口关闭后用于执行真正\aftergroup的发货。\vbox\shipout\vbox{...}\@outputpage

答案2

使用书签带您到达目标。

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{hyperref}
\begin{document}
\section{foo}
bar
\newpage
\section{Another Section}
\clearpage
\begin{figure}
\hypertarget{figures}{}
\pdfbookmark[2]{Figures}{figures}
\includegraphics[width=\textwidth,height=0.8\textheight]{foobar}
\caption{my caption}
\end{figure}

\begin{figure}
\includegraphics[width=\textwidth,height=0.8\textheight]{foobar}
\caption{my caption}
\end{figure}

\begin{figure}
\includegraphics[width=\textwidth,height=0.8\textheight]{foobar}
\caption{my caption}
\end{figure}
\end{document}

相关内容