为什么 hyperref 会使用 ContinuedFload 破坏子图的标签?

为什么 hyperref 会使用 ContinuedFload 破坏子图的标签?

这是此处的后续内容:https://tex.stackexchange.com/a/130629/32245

当我将其插入\usepackage{hyperref}为序言的最后一行时。主图(或两个后续图)标记为“0”,但子图标记为“1a - 1h”。为什么会这样?

在链接帖子的评论中,提到由于加载了 -package,所以\usepackage[all]{hypcap}不需要。但是,我无法成功超链接到所有子图的顶部,而不是第二页的标题。我甚至尝试了加载之前和之后。captionsubfig\usepackage[hypcap=true]{caption}subfig


% arara: pdflatex
% arara: pdflatex

\documentclass{article}
\usepackage[%
    ,demo
    ]{graphicx}
%\usepackage[hypcap=true]{caption}    
\usepackage{subfig}
%\usepackage{hyperref}

\begin{document}
\listoffigures
\begin{figure}[!htb] 
\centering   
\subfloat[][opt. caption]{\includegraphics[width=0.49\linewidth]{a}\label{fig:Figurea}} \hfill
\subfloat[][]{\includegraphics[width=0.49\linewidth]{b}\label{fig:Figureb}} \\
\subfloat[][]{\includegraphics[width=0.49\linewidth]{c}\label{fig:Figurec}} \hfill
\subfloat[][]{\includegraphics[width=0.49\linewidth]{d}\label{fig:Figured}}  \\ 
\subfloat[][]{\includegraphics[width=0.49\linewidth]{e}\label{fig:Figuree}} \hfill
\subfloat[][]{\includegraphics[width=0.49\linewidth]{f}\label{fig:Figuref}}    
\phantomcaption % for caption version 3.2 or higher. Not needed if not used with subfig.  
\end{figure}  
% The figure continues on the next page  
\begin{figure}  
\centering
\ContinuedFloat  
\subfloat[][opt. caption]{\includegraphics[width=0.49\linewidth]{g}\label{fig:Figureg}} \hfill
\subfloat[][]{\includegraphics[width=0.49\linewidth]{h}\label{fig:Figureh}}    
\caption{These are figures 1 a-h}  
\label{fig:fig1}  
\end{figure}  

This is figure \ref{fig:fig1} and its subfigure \ref{fig:Figureh}.
\end{document}

答案1

您的问题可以简化很多:

\documentclass{article}
\usepackage{caption}
\usepackage{subfig}
\usepackage{hyperref}

\begin{document}
\begin{figure}
\caption{abc}
\end{figure}

\begin{figure}
\ContinuedFloat
\caption{cde}
\end{figure}
\end{document}

我会把责任归咎于 subfig(它在文档开头重新定义了一些重要的命令,因此破坏了命令\ContinuedFloat)但可能只有 caption 的作者可以做些什么。

我个人会避免使用 subfig 而使用subcaption包。

相关内容