hypcap 无法与 floatrow 配合使用

hypcap 无法与 floatrow 配合使用

我正在尝试让图形的超链接正常工作。我的意思是单击链接应该会将我带到图形(而不是标题)。它似乎无法与 floatrow 中的浮点数配合使用。无论我将 \capstart 放在哪里,链接总是指向标题而不是图形。MWE 就在这里。

\documentclass[11pt]{book}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}

\usepackage{lipsum}
\usepackage{floatrow}
\usepackage[hypcap]{caption}
\usepackage{hyperref}

\begin{document}

\begin{figure}
  \begin{floatrow}[3]
    \capstart\hypertarget{fig:1}{\ffigbox{\rule{3cm}{3cm}}{\caption{Click This Link}}}  
    \capstart\hypertarget{fig:2}{\ffigbox{\rule{3cm}{3cm}}{\caption{Click This Link}}}
    \capstart\hypertarget{fig:3}{\ffigbox{\rule{3cm}{3cm}}{\caption{Click This Link}}}
  \end{floatrow}
\end{figure}

\clearpage
\newpage

\section{\protect\hyperlink{fig:1}{Section A}}
\lipsum
\section{\protect\hyperlink{fig:2}{Section B}}
\lipsum[2]
\section{\protect\hyperlink{fig:3}{Section C}}
\lipsum[3]

\end{document}

苏里亚

答案1

\caption下面的例子使用via 的锚点\label{<label>}并通过 via 进行链接\hyperref[<label>]{...}

\documentclass[11pt]{book}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}

\usepackage{lipsum}
\usepackage{floatrow}
\usepackage{caption}
\usepackage{hyperref}

\begin{document}

\begin{figure}
  \begin{floatrow}[3]
    \ffigbox{\rule{3cm}{3cm}}{\caption{Click This Link}\label{FIG:1}}
    \ffigbox{\rule{3cm}{3cm}}{\caption{Click This Link}\label{FIG:2}}
    \ffigbox{\rule{3cm}{3cm}}{\caption{Click This Link}\label{FIG:3}}
  \end{floatrow}
\end{figure}

\clearpage
\newpage

\section{\texorpdfstring{\hyperref[FIG:1]}{}{Section A}}
\lipsum
\section{\texorpdfstring{\hyperref[FIG:2]}{}{Section B}}
\lipsum[2]
\section{\texorpdfstring{\hyperref[FIG:3]}{}{Section C}}
\lipsum[3]

\end{document}

进一步说明

  • \hyperref将无法在书签中起作用,因此\texorpdfstring将其禁用。
  • 该示例使用大写的标签名称,以避免标题行中带有大写字母的链接出现问题。

相关内容