编辑

编辑

我正在为香农交换游戏写一个演示文稿。在这个游戏中,玩家轮流从图中挑选边。为了好玩,我决定尝试在演示文稿中加入一个示例游戏。

我想要的效果是:当我点击某个边缘时,转到指定的幻灯片。边缘并不总是垂直或水平的。

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}\label{picture:first}
  \node (A) {$A$};
  \node (B) [below right=2 and 3 of A] {$B$};
  \path (A) edge[line width=5pt] (B); % I want this edge to be click-able
\end{tikzpicture}

\newpage

\begin{tikzpicture}\label{picture:second}
  \node (A) {$A$};
  \node (B) [below right=2 and 3 of A] {$B$};
  \path (A) edge[line width=5pt,red] (B)
\end{tikzpicture}

\end{document}

我找到了类似问题的答案,要么节点是超链接,要么边缘是水平的。在我找到方法之前,我的临时解决方案是在每个边缘旁边放置一个节点来标记它,然后单击边缘标签。

答案1

这会沿第一条边缘创建 6 个超链接,链接到第二张幻灯片。

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
  \begin{frame}{First}
  \begin{tikzpicture}\label{picture:first}
    \node (A) {$A$};
    \node (B) [below right=2 and 3 of A] {$B$};
    \path (A) edge [line width=5pt] node [pos=0, circle] {\hyperlink<1>{target}{}} node [pos=.2, circle] {\hyperlink<1>{target}{}} node [pos=.4, circle] {\hyperlink<1>{target}{}} node [pos=.6, circle] {\hyperlink<1>{target}{}} node [pos=.8, circle] {\hyperlink<1>{target}{}} node [pos=1, circle] {\hyperlink<1>{target}{}}  (B);
  \end{tikzpicture}
\end{frame}
\begin{frame}{Second}
  \hypertarget<1>{target}{}
  \begin{tikzpicture}\label{picture:second}
    \node (A) {$A$};
    \node (B) [below right=2 and 3 of A] {$B$};
    \path (A) edge [line width=5pt, red] (B);
  \end{tikzpicture}
\end{frame}
\end{document}

编辑

由于它不必是一条边,因此可以很直接地沿路径创建多个节点,并形成一个\foreach循环。我还通过添加一些更实质性的不可见内容使链接变得更大一些 ;)。在这里,我创建了 11 个链接:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
  \begin{frame}{First}
  \begin{tikzpicture}\label{picture:first}
    \node (A) {$A$};
    \node (B) [below right=2 and 3 of A] {$B$};
    \draw [line width=5pt] (A) -- (B) \foreach \i in {0,...,10} { node [pos=\i/10, circle] {\hyperlink<1>{target}{\phantom{X}}} };
  \end{tikzpicture}
\end{frame}
\begin{frame}{Second}
  \hypertarget<1>{target}{}
  \begin{tikzpicture}\label{picture:second}
    \node (A) {$A$};
    \node (B) [below right=2 and 3 of A] {$B$};
    \path (A) edge [line width=5pt, red] (B);
  \end{tikzpicture}
\end{frame}
\end{document}

相关内容