我正在准备一份revtex4-1
包含图片的文档(类)。我想为 PDF 中的每个图片添加书签,因此我使用hyperref
以下命令插入图片:
\newcommand{\AddFigureLabelContentCaption}[3]{{
\clearpage
\begin{figure}[t]
\currentpdfbookmark{Figure \arabic{figure}}{name:#1}
{#2}
\caption{#3}
\label{#1}
%\currentpdfbookmark{Figure \thefigure~[++]}{name:#1}
\end{figure}
}}
一切正常,但图号从零开始。当我将命令移到命令\currentpdfbookmark
之后时label
,PDF 书签中的图号正常。但单击书签会将我直接发送到图之后,这不好。
是否可以不输出figure
计数器,但是figure+1
?我不想弄乱计数器figure
,我只想输出一个figure+1
。
答案1
\thefigure
可以打印复杂的数字,并且不能用于一般计算(例如1.4
,,(a)
...)。一个技巧是更新figure
计数器,然后重置它:
\stepcounter{figure}%
\currentpdfbookmark{Figure \thefigure}{name:#1}%
\addtocounter{figure}{-1}%
包裹bookmark
- 如果使用包,则生成的目标
\caption
可用于书签。内部将其存储在宏中。(当前包不提供从标签中提取目标名称的功能。)bookmark
hyperref
\@currentHref
bookmark
- 另外,我会将图形书签放在比当前级别更深的级别,而不会随后改变当前级别。
- 包
caption
(或hypcap
)将锚点放在图形的顶部,而不是\caption
通常位于实际图形下方的位置。
例子:
\documentclass{article}
\usepackage{hyperref}
\usepackage{caption}
\usepackage{bookmark}
\bookmarksetup{
numbered,
open,
}
\begin{document}
\section{Hello World}
\begin{figure}
\centering
\fbox{\phantom{\rule{50mm}{10mm}}}
\caption{My caption}
\label{fig:my}
\bookmark[
rellevel=1,
keeplevel=false,
dest=\csname @currentHref\endcsname,
]{Figure \thefigure: My caption}
\end{figure}
\end{document}