我习惯使用preview
或standalone
包来准备 tikz 图形以进行裁剪。现在我开始尝试动画,并想做同样的事情。我的第一个测试是使用Alexander Grahn 的回答到动画协议,但只要我包括
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
pdflatex 在序言中抱怨
! Package animate Error: Contents of first frame must not have zero width.
我发现了一些用...准备的示例preview
,但是它们都使用\animategraphics
命令而不是animateinline
带有命令的环境\multiframe
。
所以我的第一个问题是,做我想做的事有意义吗?它正在生成一个动画剪辑图形以包含在另一个文件中。“没有,它没有”可能是一个很好的答案,但如果有,我做错了什么?
这里有测试代码。我也测试过添加,\usebaoundingbox
但没有成功。
\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{frame}
\begin{animateinline}[loop]{10}
\multiframe{10}{rPos=0.1+0.1}{
\begin{tikzpicture}[every node/.style={draw}]
%\useasboundingbox (-2,-2) rectangle (7,2);
\node (s) {sender};
\node (r) at (5,0) {receiver};
\path (s) -- (r) node[pos=\rPos,coordinate] (p) {};
\draw[->] (s) -- (p);
\end{tikzpicture}
}
\end{animateinline}
\end{frame}
\end{document}
答案1
这里有一个使用standalone
类的解决方案。如前所述,如果您将该 PDF 作为图像包含在其他文档中,动画将会丢失。但是,您可以\input
在加载以下文件后standalone
包裹在主文档中。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{animate}
\begin{document}
\begin{animateinline}[loop]{10}
\multiframe{10}{rPos=0.1+0.1}{
\begin{tikzpicture}[every node/.style={draw}]
%\useasboundingbox (-2,-2) rectangle (7,2);
\node (s) {sender};
\node (r) at (5,0) {receiver};
\path (s) -- (r) node[pos=\rPos,coordinate] (p) {};
\draw[->] (s) -- (p);
\end{tikzpicture}
}
\end{animateinline}
\end{document}
答案2
将选项更改\PreviewEnvironment
为animateinline
。