我有两个不同的动画,分别用 TikZ 和animate
包,我想包含在beamer
演示文稿。当我将代码放在演示文稿.tex
文件中时,一切都运行正常,然后我尝试将动画代码移动到单独的文件中并将它们包含在内\input
,结果它停止工作。
特别奇怪的是:如果我只包含其中一个动画并注释掉另一个动画,代码就可以正常工作。当我同时包含两个动画时,我收到一条错误
Missing \endgroup inserted
或者
Something's wrong: perhaps a missing \item?
取决于我是否注释掉第一个或第二个\input
。任何建议都将不胜感激。下面是一段代码,只是为了让您了解我正在做什么(包括我的完整前言,以防万一其他软件包导致问题)。
\documentclass[xcolor=dvipsnames]{beamer}
\usepackage{mathrsfs}
\usepackage[absolute,overlay]{textpos}
\mode<presentation>
{
\usetheme{Singapore}
\usecolortheme{seahorse}
\setbeamercovered{transparent}
}
\usepackage{tikz}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{animate} % Animations
\usepackage{fp} % Fixed point calculations
\usepackage{ifthen}
\usepgflibrary{arrows}
\usetikzlibrary{decorations.markings, arrows, decorations.pathmorphing,
backgrounds, positioning, fit, shapes.geometric}
\newcounter{frame}
\setcounter{frame}{0}
\begin{document}
\begin{frame}[fragile]{Animation 1}
\begin{center}
\input{animations/anim1.tex}
\end{center}
\end{frame}
\begin{frame}[fragile]{Animation 2}
\begin{center}
\input{animations/anim2.tex}
\end{center}
\end{frame}
\end{document}
anim1.tex 和 anim2.tex 相同:
\begin{animateinline}[autoplay, loop, controls, poster=first]{15}
\whiledo{\theframe < 179}{
\begin{tikzpicture}
\draw (-3, -3) rectangle (3, 3);
\filldraw (\theframe : 2cm) circle (0.05cm);
\end{tikzpicture}
\stepcounter{frame}
\ifthenelse{\theframe < 179}{
\newframe
}{
\end{animateinline}
}
}
我对这个软件包还很陌生animate
,所以也许更有知识的人会很容易地认识到哪里出了问题,但现在这非常令人沮丧。
非常感激任何的帮助。
答案1
\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\usepackage{filecontents}
\begin{filecontents*}{anim1.tex}
\begin{animateinline}[autoplay, loop, controls, poster=first]{15}
\multiframe{181}{iAngle=0+1}{%
\begin{tikzpicture}
\draw (-3, -3) rectangle (3, 3);
\filldraw (\iAngle : 2cm) circle (0.05cm);
\end{tikzpicture}}
\end{animateinline}
\end{filecontents*}
\begin{filecontents*}{anim2.tex}
\begin{animateinline}[autoplay, loop, controls, poster=first]{15}
\multiframe{181}{iAngle=0+1}{%
\begin{tikzpicture}
\draw (-3, -3) rectangle (3, 3);
\filldraw (\iAngle : 2cm) circle (0.05cm);
\end{tikzpicture}}
\end{animateinline}
\end{filecontents*}
\begin{document}
\begin{frame}[fragile]{Animation 1}
\begin{center}
\input{anim1.tex}
\end{center}
\end{frame}
\begin{frame}[fragile]{Animation 2}
\begin{center}
\input{anim2.tex}
\end{center}
\end{frame}
\end{document}