TikZ + beamer,引用当前图片外部的节点,位于套印环境内部

TikZ + beamer,引用当前图片外部的节点,位于套印环境内部

在中beamer,当我尝试引用当前图片之外但在环境内的节点时overprint,就像这样,

\documentclass[12pt]{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{overprint}
\begin{tikzpicture}[remember picture]
 \node<1->[draw] (xxx) at (0,0) {Spam};
 \node<2->[draw] (yyy) at (1, 1) {Eggs};
\end{tikzpicture}
Some text, tra la la.
\tikz<2>[remember picture] \draw[overlay,->] (xxx.north) -- (yyy.south);
\end{overprint}
\end{frame}
\end{document}

并使用 进行编译pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011),使用beamer 2011/09/12 development version 3.12tikz 2010/10/13 v2.10 (rcs-revision 1.76)我收到以下错误消息:

! Package pgf Error: No shape named yyy is known.

我的问题:

  • 是否有可能引用overprint环境内的节点?
  • 如果是,怎么办?
  • 如果不是,这是一个根本的限制,还是对当前实施的限制?
  • 为什么是这样?

相关但不同的问题:

答案1

您的代码存在一个问题,即\tikz命令本身不具备覆盖感知能力。(我认为实现这一点相当困难。)因此,该\tikz内容会在每张幻灯片上执行,但yyy节点直到第二张幻灯片才存在,因此它不知道如何处理它。如果您将 移至 ,<2>\draw它可以正常工作。

\documentclass[12pt]{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{overprint}
\begin{tikzpicture}[remember picture]
 \node<1->[draw] (xxx) at (0,0) {Spam};
 \node<2->[draw] (yyy) at (1, 1) {Eggs};
\end{tikzpicture}
Some text, tra la la.
\tikz[remember picture] \draw<2>[overlay,->] (xxx.north) -- (yyy.south);
\end{overprint}
\end{frame}
\end{document}

相关内容