单击图像的不同部分可链接到文档中的不同部分

单击图像的不同部分可链接到文档中的不同部分

通过单击图像的不同部分可以链接到文档的不同部分。

例如指定图像的某个区域(x、y、宽度高度)和超链接。

(我知道您可以通过单击图像中的任意位置来链接到单个部分,但这不是我需要的)

(我见过将图像的子部分链接到不同的标签(如 html 图像映射)是否可以将图像的不同区域链接到不同的标签?但不知道如何使用他们所说的话)

谢谢

编辑:我已尝试处理单个链接。

\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}

\begin{document}

\begin{figure}
    \centering
    \hyperref[xxx]{\includegraphics[width=\linewidth]{image.png}}
\end{figure}

\pagebreak
\section{Section 1}

Some Text

\pagebreak
\section{Section 2}
\label{xxx}

Some Text

\end{document}

答案1

修订方法\stackinset

在这里,我只需要\stackinset任意数量的\hyperrefed\makebox来包含基础图像的所需部分。可以\stackinset相对于lcr水平锚点和tcb垂直锚点来指定 。

\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref,stackengine}
\begin{document}

\begin{figure}
    \centering
    \stackinset{l}{10pt}{t}{20pt}{\hyperref[topleft]{\makebox(100,100){}}}{%
    \stackinset{r}{30pt}{t}{40pt}{\hyperref[topright]{\makebox(50,40){}}}{%
    \stackinset{l}{40pt}{b}{50pt}{\hyperref[bottomleft]{\makebox(70,20){}}}{%
    \stackinset{r}{110pt}{b}{70pt}{\hyperref[bottomright]{\makebox(40,80){}}}{%
    \includegraphics[width=\linewidth]{example-image}}}}}
\end{figure}

\clearpage

\pagebreak
\section{Section 1}
\label{topleft}

Some Text

\pagebreak
\section{Section 2}
\label{topright}

Some Text

\pagebreak
\section{Section 3}
\label{bottomleft}

Some Text

\pagebreak
\section{Section 4}
\label{bottomright}

Some Text

\end{document}

在此处输入图片描述

原始方法\clipbox

这里我把\clipbox图形分成 4 个 [不等大小] 象限,尽管理论上没有理由不能将其切成任意数量的矩形。

我不知道如何做,但我确信hyperref提供了使边界框不可见的方法\hyperref

\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref,trimclip,stackengine}
\begin{document}

\begin{figure}
    \centering
    \setbox0=\hbox{\includegraphics[width=\linewidth]{example-image}}
    \stackunder[0pt]{%
    \hyperref[topleft]{\clipbox{0pt .4\ht0{} .3\wd0{} 0pt}{\copy0}}%
    \hyperref[topright]{\clipbox{.7\wd0{} .4\ht0{} 0pt 0pt}{\copy0}}}{%
    \hyperref[bottomleft]{\clipbox{0pt 0pt .3\wd0{} .6\ht0}{\copy0}}%
    \hyperref[bottomright]{\clipbox{.7\wd0{} 0pt 0pt .6\ht0}{\copy0}}}
\end{figure}

\clearpage

\pagebreak
\section{Section 1}
\label{topleft}

Some Text

\pagebreak
\section{Section 2}
\label{topright}

Some Text

\pagebreak
\section{Section 3}
\label{bottomleft}

Some Text

\pagebreak
\section{Section 4}
\label{bottomright}

Some Text

\end{document}

单击图像的不同角落将带您进入文档中的不同页面。

在此处输入图片描述

答案2

您可以使用,例如,overpic

\documentclass{article}
\usepackage{graphicx}
\usepackage{overpic,picture}
\usepackage{hyperref}

\begin{document}

\begin{figure}
    \begin{overpic}[%grid,% use this if you need help in finding coordinates
      width=\linewidth]{example-image}
      \put(0,0){\hyperref[sec:first]{\makebox(50,75)[lb]{}}}%
      \put(50,0){\hyperref[sec:last]{\makebox(50,75)[lb]{}}}%
    \end{overpic}
    \caption{Example of link areas}
\end{figure}

\pagebreak
\section{Section 1}
\label{sec:first}
Some Text

\pagebreak
\section{Section 2}
\label{sec:last}

Some Text

\end{document}

在此处输入图片描述

两个红色框是两个链接区域。如果您不想要这样的框,请使用例如hyperref的选项pdfborder

\documentclass{article}
\usepackage{graphicx}
\usepackage{overpic,picture}
\usepackage{hyperref}

\begin{document}

\begin{figure}
    \hypersetup{pdfborder=0 0 0}% No borders around the hyperlink areas
    \begin{overpic}[%grid,% use this if you need help in finding coordinates
      width=\linewidth]{example-image}
      \put(0,0){\hyperref[sec:first]{\makebox(50,75)[lb]{}}}%
      \put(50,0){\hyperref[sec:last]{\makebox(50,75)[lb]{}}}%
    \end{overpic}
    \caption{Example of link areas}
\end{figure}

\pagebreak
\section{Section 1}
\label{sec:first}
Some Text

\pagebreak
\section{Section 2}
\label{sec:last}

Some Text

\end{document}

不会显示边框:

在此处输入图片描述

尽管如此,这些区域仍然存在。

相关内容