hyperref 和 subfloats 的问题

hyperref 和 subfloats 的问题

我使用得subfloats相当广泛,并且想用 来hyperref指代subfloats

在某种程度上,它是有效的。在下面的例子中,当单击第一个图的超链接时, 会pdf顺利地移动到图的左上角。但是,当单击第二个图的引用时, 会pdf移动到第二个图的底部附近,这样图的大部分就看不见了。

截屏

Hyperref转到浅绿色十字,这对于来说很好1.1a),但我希望它转到蓝色十字,表示`1.1b)

下面是我的 MWE,它是我通过运行pdflatex两次来构建的texlive 2012

\documentclass[a4paper,11pt]{report}

\usepackage{chngcntr}
\counterwithin{figure}{chapter}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{hyperref}

\begin{document}
\chapter{First chapter}

This will be a reference to the first part of Figure~\ref{fig:firstfigure}

This will be a reference to the second part of Figure~\ref{fig:secondfigure}

\begin{figure}[ht]
\centering
    \subfloat[Some subfloat caption for the first figure goes here.]{\label{fig:firstfigure}\includegraphics[width=0.4\textwidth]{./placeholder}}\hspace{0.15\textwidth}              
    \subfloat[And some other caption for the second subfigure goes here.]{\label{fig:secondfigure}\includegraphics[width=0.4\textwidth]{./placeholder}}
\caption{\protect\subref{fig:firstfigure} is the first figure. \protect\subref{fig:secondfigure} is the second figure.}\label{fig:somefigures}
\end{figure}

\end{document}

非常感谢您对如何解决hyperref第二种行为的见解!subfigure

答案1

我设法找到了解决方案,即放弃该subfig方案而采用该subcaption方案,这也是 Axel Sommerfeldt 所建议的。

我的解决方案的 MWE 是

\documentclass[a4paper,11pt]{report}

\usepackage{chngcntr}
\counterwithin{figure}{chapter}
\usepackage{graphicx}
\usepackage[hypcap=true]{caption}
\usepackage[hypcap=true]{subcaption}
\usepackage{hyperref}

\begin{document}
\chapter{First chapter}

This will be a reference to the first part of Figure~\ref{fig:firstfigure}

This will be a reference to the second part of Figure~\ref{fig:secondfigure}

\begin{figure}[h]
\centering
    \subcaptionbox{Some subfloat caption for the first figure goes here.\label{fig:firstfigure}}{\includegraphics[width=0.4\linewidth]{./placeholder}}\hspace{0.15\textwidth}
    \subcaptionbox{And some other caption for the second subfigure goes here.\label{fig:secondfigure}}{\includegraphics[width=0.4\linewidth]{./placeholder}}
\caption{\protect\subref{fig:firstfigure} is the first figure. \protect\subref{fig:secondfigure} is the second figure.}
\label{fig:somefigures}
\end{figure}

\end{document}

相关内容