我想在 Beamer 中按时间顺序显示一系列图像,即我想将图像从小尺寸放大到大尺寸。以下是我尝试的代码,编译时出现一些错误。
\documentclass{beamer}
\usetheme{Copenhagen}
\usecolortheme{whale}
\useinnertheme{rounded}
\usepackage{tikz}
\usepackage{calc}
\usepackage{forloop}
\begin{document}
\newcounter{k}
\forloop{k}{1}{\value{k} < 11}{
\begin{frame}
\transduration{0.1}
\includegraphics[scale=\value{0.01\arabic{k}}]{images/my_image.pdf}
\end{frame}
}
\end{document}
答案1
你可以做这样的事情,使用 TikZ\foreach
和覆盖规范\includegraphics
:
\documentclass{beamer}
\usetheme{Copenhagen}
\usecolortheme{whale}
\useinnertheme{rounded}
\usepackage{tikz}
\begin{document}
\begin{frame}
\centering
\transduration{0.1}
\foreach \k [evaluate=\k as \kscale using \k/100] in {1,2,...,10}
{\includegraphics<\k>[scale=\kscale]{ctanlion}}
\end{frame}
\end{document}
CTAN 狮子绘画由 Duane Bibby 绘制。
答案2
使用\transduration
需要 Adobe Reader 才能显示。因此,也可以使用animate
包。动画嵌入在最终 PDF 的单个物理页面中:
\documentclass{beamer}
\usetheme{Copenhagen}
\usecolortheme{whale}
\useinnertheme{rounded}
\usepackage{animate}
\newsavebox\imgbox
\sbox\imgbox{\includegraphics[scale=0.5]{ctanlion}}
\begin{document}
\begin{frame}
\begin{center}
\begin{animateinline}[loop,autoplay]{10} %10 frames per s
\multiframe{10}{rScale=0.1+0.1}{
\hbox to \wd\imgbox{
\hss %\hss, \vss -->stretchable space for centering
\vbox to \ht\imgbox{\vss\scalebox{\rScale}{\usebox\imgbox}\vss}
\hss
}
}
\end{animateinline}
\end{center}
\end{frame}
\end{document}