我正在尝试制作beamer
一个简单二叉树解析的动画。我想使用不同颜色的分支和节点标签来编码解析器的不同步骤和/或为解析制作动画。我不知道如何\pause
在树中间使用。这可能吗?
如果我尝试为树的每个阶段制作单独的框架,LaTeX 会自动调整所有内容的大小,因此一个节点在第一张幻灯片上占据了很大的空间,但当它与其子节点连接时,在第二张幻灯片上占用的空间就小了……所以看起来很奇怪。不像是一步一步构建的结构。
任何建议将不胜感激!
{\Tree [.1 [.2 a ] [.3 [.4 b ] [.5 c ] ] ]}
答案1
对于简单的动画,例如一次显示树的不同层级,您可以只使用\only<>
连续更大的树。如果您[t]
在框架上使用对齐选项,则不会出现您提到的间距问题。
\documentclass{beamer}
\usepackage{tikz}
\usepackage{tikz-qtree}
\tikzset{edge from parent/.style={draw,very thick}}
\begin{document}
\begin{frame}[t]
\frametitle{A tree}
\begin{tikzpicture}
\only<1>{\Tree [.A B C ]}
\only<2>{\Tree [.A [.B D E ] [.C ]]}
\only<3>{\Tree [.A [.B D E ] [.C F G ]]}
\only<4>{\Tree [.A [.B \edge[red]; \node{D}; \edge[blue]; \node{E}; ] [.C [.F H I ] G ]]}
\end{tikzpicture}
\end{frame}
\end{document}
给树枝上色相当容易(我在树的最后一个版本中给出了一个例子);然而,使用相同的技术来为所有东西制作动画并不是很容易。
答案2
\documentclass{beamer}
\usepackage{qtree}
\begin{document}
\begin{frame}[t]{A tree}
\Tree [.1 [ .2 \pause a ] [.3 [.4 \pause b ] [.5 \pause c ] ] ]
\end{frame}
\end{document}