将 subfloat 与 hyperref 结合使用

将 subfloat 与 hyperref 结合使用

我有几个大图,我使用命令将它们分成几页\subfloat。我希望图中的每一页都显示图号,但完整的标题应该只显示在最后一页。只有完整的标题才应该出现在图列表中。以下代码显示了一个最小(不)工作示例:

\documentclass[a4paper,11pt,oneside,openany]{book}

\usepackage{graphicx}
\usepackage{float}
\usepackage{subfloat}
\usepackage{subfig}
\usepackage[hidelinks]{hyperref}


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

\begin{figure}[!htpb]
    \centering
        \subfloat[]{%
            \includegraphics[scale=1]{}
        }\\
        \subfloat[]{%
            \includegraphics[scale=1]{}
        }\\
        \caption{}
\end{figure}

\begin{figure}
    \centering
    \ContinuedFloat
    \subfloat[]{%
            \includegraphics[scale=1]{}
        }\\
        \subfloat[]{%
            \includegraphics[scale=1]{}
        }\\
        \caption{}
\end{figure}

\begin{figure}
    \centering
    \ContinuedFloat
        \subfloat[]{%
            \includegraphics[scale=1]{}
        }\\
\caption{}
\label{fig:intensitystructureplots}
\end{figure}

\end{document}

但是,在hyperref包含包的情况下,包含子浮点的图形的编号如下:组的第一个图形编号为图 2(正确),然后是图 1,然后是图 0。所有三个浮点在表格列表中都有一个条目。关闭hyperref解决了数字递减的问题,现在所有图形都标记为图 2,但是命令链接的三个图形\ContinuedFloat都在图形列表表中有一个条目,而实际上应该只列出最后一个,因为它们都是同一张图形的一部分。使用该\phantomcaption命令会从图形列表中删除条目,但也会从图形中删除标签。

答案1

不幸的是,hyperref内部支持subfig已中断。另请参阅:

subcaption 与 subfig:引用子图的最佳包

hyperref 和 subfloats 的问题

...

我知道的唯一解决方案是切换到我的包subcaption[1]:

\documentclass[a4paper,11pt,oneside,openany]{book}

\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage[hidelinks]{hyperref}

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

\begin{figure}[!htpb]
    \centering
        \subcaptionbox{}{%
            \includegraphics[scale=1]{}
        }\\
        \subcaptionbox{}{%
            \includegraphics[scale=1]{}
        }\\
        \caption[]{}
\end{figure}

\begin{figure}
    \centering
    \ContinuedFloat
    \subcaptionbox{}{%
            \includegraphics[scale=1]{}
        }\\
        \subcaptionbox{}{%
            \includegraphics[scale=1]{}
        }\\
        \caption[]{}
\end{figure}

\begin{figure}
    \centering
    \ContinuedFloat
        \subcaptionbox{}{%
            \includegraphics[scale=1]{}
        }\\caption{}
\label{fig:intensitystructureplots}
\end{figure}

\end{document}

(可以使用 来抑制 LOF 条目\caption[]{...}。)

[1] 很抱歉这么无耻地自我宣传,但hyperref中的支持中断subfig是我写这篇文章的主要原因之一subcaption

相关内容