在特定坐标处放置隐形链接?

在特定坐标处放置隐形链接?

有人知道使用 TikZ 是否可以实现这一点吗?

我正在尝试在已放置在框架背景上的图片上创建链接,或者至少将它们放置在 TikZ 代码中的某些节点上。

答案1

是的,这是可能的。你可以将提供的\hyperlink,机制与一些 TikZ 一起使用。在下面的示例中,该命令接收三个强制参数:\hypertargethyperref\node\invlink

\invlink{<xshift>}{<yshift>}{<name>}

其中长度<xshift><yshift>允许您指定从(current page.center)节点的水平和垂直偏移,并且<name>是将用于链接到相应目标的字符串。为了给链接留出较大的区域,我使用了一条\phantom规则。图像和链接都将放置在中background canvas;在我的示例中,我使用框架标题作为\hypertargets,但您可以使用任何其他元素。

\documentclass{beamer}
\usepackage{tikz}

\newcommand\invlink[3]{%
  \node at ([xshift=#1,yshift=#2]current page.center) 
  {\hyperlink{#3}{\phantom{\rule{1cm}{10pt}}}};
}

\begin{document}

{
\setbeamertemplate{background canvas}{%
  \includegraphics[height=\paperheight,width=\paperwidth,keepaspectratio]{ctanlion}%
\begin{tikzpicture}[remember picture,overlay]
\invlink{0pt}{0pt}{A}
\invlink{60pt}{60pt}{B}
\invlink{-60pt}{-60pt}{C}
\end{tikzpicture}%
  }
\begin{frame}
Some test text
\end{frame}
}

\begin{frame}
\frametitle{\hypertarget{A}{Test frame A}}
test
\end{frame}

\begin{frame}
\frametitle{\hypertarget{B}{Test frame B}}
test
\end{frame}

\begin{frame}
\frametitle{\hypertarget{C}{Test frame C}}
test
\end{frame}

\end{document}

CTAN 狮子绘画由 Duane Bibby 绘制。

相关内容