Beamer 与 TikZ:逐步发现节点

Beamer 与 TikZ:逐步发现节点

我正尝试逐个揭开 TikZ 图像,如下所示:

\documentclass{beamer}

\usepackage{tikz}
\usetikzlibrary{positioning} 

\begin{document}
\begin{frame}{Linearity}
\begin{center}
\begin{tikzpicture}
  \node (Ctx) {\visible<2->{$\Gamma$}};
  \node[below right=0.5cm and 0.1cm of Ctx] (E) {$E$};
  \node[below right=0.5cm and 0.1cm of E] (psi1) {\visible<3->{$\Psi_1$}};
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}

但是,这会给出以下错误消息:

! Package tikz Error: Giving up on this path. Did you forget a semicolon?.

See the tikz package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.16 \end{frame}

如果我使用\only而不是\visiblepdflatex运行正常,但输出在幻灯片之间跳动,因为不可见节点不占用空间,因此E节点的位置会发生变化。这\visible就是我需要的。

答案1

在一种情况下,我叠加了 TikZ\uncover<n-m>{ELEMENT}来显示幻灯片 n 到 m 中的元素。

答案2

如果将\visible命令及其参数放在一个{ }组中,它就会起作用:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning} 
\begin{document}
\begin{frame}{Linearity}
\begin{center}
\begin{tikzpicture}
  \node (Ctx) {{\visible<2->{$\Gamma$}}};
  \node[below right=0.5cm and 0.1cm of Ctx] (E) {$E$};
  \node[below right=0.5cm and 0.1cm of E] (psi1) {{\visible<3->{$\Psi_1$}}};
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}

似乎扫描代码从中\visible删除;或以其他方式干扰了\node代码。请注意,\node不会将其内容读取为参数,而是将其内容读取为框内容以允许逐字写入内部。\visible宏可能会执行相同的操作,因此可能会发生此类错误。

答案3

这是使用\setbeamercovered{invisible}和的另一种解决方案\pause

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning} 
\begin{document}
\begin{frame}{Linearity}
    \setbeamercovered{invisible}
\begin{center}
\begin{tikzpicture}
    \node(Ctx){$E$};\pause
    \node[above left=0.5cm and 0.1cm of Ctx] (gamma) {$\Gamma$};\pause  
    \node[below right=0.5cm and 0.1cm of Ctx] (psi1){$\Psi_1$};\pause
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}

这也可以包含在\columns其中,可以使用表格、小页面或其他节点来解释图表中发生的事情\onslide<n->。我经常使用它来同时展示几何图和两列证明。希望它能引起你的兴趣。

相关内容