我正尝试逐个揭开 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
而不是\visible
,pdflatex
运行正常,但输出在幻灯片之间跳动,因为不可见节点不占用空间,因此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->
。我经常使用它来同时展示几何图和两列证明。希望它能引起你的兴趣。