我想让方程式(或单词)在页面中连续移动,以便进行投影仪演讲。一个简单的例子是,左边距有“A”,右边距有“B”,然后“A”向“B”下方移动,形成除法 B/A。
我考虑过将 texpos 包与 animate 包一起使用,因此我并没有将所有内容都放在 tikz 图片中。由于我从未使用过 animate 包,因此我正在寻找类似的例子。
在 TeXample 上,我发现的动画示例都是关于图片和图形的动画。在这里,我发现的所有“动画”问题都意味着以连续的方式改变方程式,但不改变其位置。
答案1
下面我提出两个选择。
使用animate
包
这是一个简单的例子,使用animate
包装。最初,您会看到“A”和“B”相距四厘米,且高度相同:当您播放动画时(请使用 Acrobat Reader(限制animate
)),“A”开始向“B”移动,并在“B”正下方结束:
\documentclass{beamer}
\usepackage{animate}
\usepackage{ifthen}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\hypersetup{pdfpagemode=FullScreen}
\newcounter{tmp}
\stepcounter{tmp}
\def\Steps{20}
\begin{document}
\begin{frame}[fragile]{}
\begin{center}
\begin{animateinline}[loop,poster=first,controls]{2}
\whiledo{\thetmp<\Steps}{%
\begin{tikzpicture}[
decoration={
markings,
mark={
at position \thetmp/(\Steps-1)
with {\node {$A$};}}
}]
\coordinate (start) at (-2,0);
\coordinate (end) at (2,0);
\node at (end) {$B$};
\path[postaction={decorate}]
([yshift=.35ex]start) to[out=-20,in=200] ([yshift=-3ex]end);
\path[use as bounding box] (-3,-3) rectangle (3,3);
\end{tikzpicture}%
\stepcounter{tmp}
\ifthenelse{\thetmp<\Steps}
{\newframe}
{\end{animateinline}\relax}
}
\end{center}
\end{frame}
\end{document}
我不知道如何转换这种类型的动画以便上传。
这个想法是将“A”放置在 a 中\node
,并使用装饰(来自库)使“A”移动;通过改变装饰的键来decorations.markings
实现移动;将装饰作为 a 应用于“B”正下方结束的弯曲路径。at position
postaction
增加该值\Steps
(最初设置为 20)会使运动更加“连续”。
为了直观地了解所用路径,您可以添加draw
到路径中;即替换
\path[postaction={decorate}]
([yshift=.35ex]start) to[out=-20,in=200] ([yshift=-3ex]end);
和
\path[draw,postaction={decorate}]
([yshift=.35ex]start) to[out=-20,in=200] ([yshift=-3ex]end);
使用覆盖规范和\foreach
循环
现在第二种选择是使用覆盖规范和循环来“伪造”真实动画:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\def\Steps{40}
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}
\coordinate (start) at (-3,0);
\coordinate (end) at (3,0);
\node at (end) {$B$};
\foreach \Cont in {1,...,\Steps}
\path<\Cont>[
decoration={
markings,
mark=%
at position \Cont/\Steps
with {\node {A};}
},
postaction={decorate}]
([yshift=0.35ex]start) to[out=-30,in=210] ([yshift=-3ex]end);
\end{tikzpicture}%
\end{center}
\end{frame}
\end{document}