我想直接指向文本中包含的一系列图表。所以我添加了类似
\pdfbookmark[1]{Figure 1}{fig:1}
但是它指向源文本中出现的相同点,而不是图形的确切位置。然后我尝试使用\pageref{fig:1}
,它运行完美。但是如何在不使用的情况下从目录中对其进行超链接\listoffigures
?
\documentclass{article}
\usepackage[hyperref,UTF8]{ctex}
\usepackage[unicode={true}]{hyperref}
\usepackage{graphicx}
\begin{document}
\pdfbookmark[1]{Figure 1}{fig:1}
\pdfbookmark[1]{Figure 2}{fig:2}
\pdfbookmark[1]{Figure 3}{fig:3}
\pdfbookmark[1]{Figure 4}{fig:4}
\begin{figure}[htbp]
\includegraphics{figure1}
\end{figure}
\begin{figure}[htbp]
\includegraphics{figure2}
\end{figure}
\begin{figure}[htbp]
\includegraphics{figure3}
\end{figure}
\begin{figure}[htbp]
\includegraphics{figure4}
\end{figure}
\end{document}
提前致谢。
答案1
书签必须在图形出现的地方完成,而不是在第一页,因此将它们单独添加到图形环境中。
一个更清洁的方法是修补figure
环境以自动执行此操作。
\documentclass{article}
%\usepackage[UTF8]{ctex}
\usepackage[demo]{graphicx}
\usepackage[unicode={true}]{hyperref}
\begin{document}
\begin{figure}[htbp]
\pdfbookmark[1]{Figure 1}{fig:1}
\includegraphics{figure1}
\end{figure}
\begin{figure}[htbp]
\pdfbookmark[1]{Figure 2}{fig:2}
\includegraphics{figure2}
\end{figure}
\begin{figure}[htbp]
\pdfbookmark[1]{Figure 3}{fig:3}
\includegraphics{figure3}
\end{figure}
\begin{figure}[htbp]
\pdfbookmark[1]{Figure 4}{fig:4}
\includegraphics{figure4}
\end{figure}
\end{document}
使用虚拟 ctr 自动添加
\documentclass{article}
%\usepackage[UTF8]{ctex}
\usepackage[draft,demo]{graphicx}
\usepackage{pgffor}
\usepackage{etoolbox}
\usepackage[unicode={true}]{hyperref}
\newcounter{pdffigurectr}
\AtBeginEnvironment{figure}{%
\refstepcounter{pdffigurectr}%
\pdfbookmark[1]{\figurename \number\value{pdffigurectr}}{fig:\number\value{pdffigurectr}}%
}
\begin{document}
\foreach \x in {1,...,20} {%
\clearpage
\begin{figure}[htbp]
\includegraphics{figure\x}
This is figure \x\ on page \thepage
\end{figure}
}
\end{document}