有人知道使用 TikZ 是否可以实现这一点吗?
我正在尝试在已放置在框架背景上的图片上创建链接,或者至少将它们放置在 TikZ 代码中的某些节点上。
答案1
是的,这是可能的。你可以将提供的\hyperlink
,机制与一些 TikZ 一起使用。在下面的示例中,该命令接收三个强制参数:\hypertarget
hyperref
\node
\invlink
\invlink{<xshift>}{<yshift>}{<name>}
其中长度<xshift>
和<yshift>
允许您指定从(current page.center)
节点的水平和垂直偏移,并且<name>
是将用于链接到相应目标的字符串。为了给链接留出较大的区域,我使用了一条\phantom
规则。图像和链接都将放置在中background canvas
;在我的示例中,我使用框架标题作为\hypertarget
s,但您可以使用任何其他元素。
\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 绘制。