我想制作一个动画(由三张图片 pic-0.jpg、pic-1.jpg、pic-2.jpg 组成),并在动画顶部添加其他元素。我做错了什么?我该怎么做才正确?
\documentclass[xcolor={dvipsnames,svgnames,table},11pt]{beamer}
\usepackage{animate}
\begin{document}
\begin{frame}
\only<1>{Text}
\only<2>
{\begin{animateinline}[autoplay,loop]{6}
\multiframe{3}{i=0+1}{
\begin{figure}[h!]
\centering
\setlength{\unitlength}{0.1\textwidth}
\begin{picture}(0,0)
\put(-6,-3){\includegraphics[height=0.8\columnwidth]{pic-\i} }
\put(4.5,-2){$x$}
\end{picture}
\end{figure} }
\end{animateinline} }
\end{frame}
\end{document}
答案1
\begin{picture}(0,0) ... \end{picture}
生成一个零尺寸的盒子,但animate
需要非零尺寸的盒子才能生成动画帧。TikZ 更适合注释外部图形文件。有专门基于 TikZ 的软件包用于图像注释,例如
callouts
在 CTAN 和非 CTAN 上onimage
,引入↗这里。我更喜欢后者。可以下载为onimage.dtx
↗这里。 跑步pdflatex
两次即可获得onimage.sty
和文档onimage.pdf
。
- 这
figure
环境应该移出animateinline
环境。
\documentclass{beamer}
\usepackage{animate}
\usepackage{onimage}
\begin{document}
\begin{frame}{Annotated animation}
\only<1>{Text}
\only<2>{%
\begin{figure}\centering
\begin{animateinline}[autoplay,loop]{1}
\begin{tikzonimage}[width=0.6\columnwidth]{example-image-a}[tsx/show help lines]
\draw (0.5,0.5) [<-]-- (0.3,0.4) node [anchor=east] {centre};
\end{tikzonimage}
\newframe
\begin{tikzonimage}[width=0.6\columnwidth]{example-image-b}[tsx/show help lines]
\node [anchor=south west] at (0,0) {lower left};
\end{tikzonimage}
\newframe
\begin{tikzonimage}[width=0.6\columnwidth]{example-image-c}[tsx/show help lines]
\node [anchor=north east] at (1,1) {upper right};
\end{tikzonimage}
%\newframe
%\multiframe{3}{i=0+1}{
% \begin{tikzonimage}[width=0.6\columnwidth]{pic-\i}[tsx/show help lines]
% ...
% \end{tikzonimage}
%}
\end{animateinline}%
\caption{annotated animation}
\end{figure}
}
\end{frame}
\end{document}