PSTricks 动画和 dvips

PSTricks 动画和 dvips

我想使用 animate 包在 Beamer 中创建动画。我按照“一体化方法”轻松创建了一个基本示例,来自旧帖但我无法使用 pdflatex 进行编译,这导致了我的问题。

我在名为 main.tex 的文件中使用此最小代码(从提到的帖子中复制):

\documentclass{beamer}
\usepackage{filecontents}

%====================== BEGIN FILE CONTENTS ==========================
\begin{filecontents*}{dummy.tex}
\documentclass{article}
\usepackage{pstricks-add}

\usepackage[active,tightpage]{preview}
\PreviewBorder=0pt
\PreviewEnvironment{pspicture}

\newcommand\RotatingArrow[1]{%
    \begin{pspicture}(-1,-1)(10,11)
        \psframe*[linecolor=cyan,opacity=0.3](-1,-1)(10,11)
        \psset{arrows=->}
        \psaxes(0,0)(-0.5,-0.5)(9,10)[$x$,0][$y$,90]
        \rput(4.5,0.6){\Huge{Temps = #1 s}}
        \rput{#1}(4.5,5.5){%
            \psset{arrowsize=5pt}
            \pnode(2,0){A}
            \pnode(2,3){B}
            \psline[linecolor=blue](A)
            \uput[0]{-#1}(A){\Huge{$\textcolor{blue}{\vec{a}}$}}
            \psline[linecolor=red](A)(B)
            \uput[90]{-#1}(B){\Huge{$\textcolor{red}{\vec{v}}$}}}
\end{pspicture}}

\begin{document}
    \multido{\i=0+10}{36}{\RotatingArrow{\i}}
\end{document}
\end{filecontents*}
%====================== END FILE CONTENTS =========================

\usepackage{graphicx}
\usepackage{animate}

\begin{document}
\immediate\write18{latex dummy}
\immediate\write18{dvips dummy}
\immediate\write18{ps2pdf dummy.ps}
\begin{frame}{Circular motion in action}
    \animategraphics[controls,scale=0.5]{10}{dummy}{}{}
\end{frame}
\end{document}

当我使用以下命令在命令行中进行编译时,此方法有效:

pdflatex -shell-escape main.tex

但是,由于我通常在演示文稿中使用其他技巧,我需要使用路线 latex->dvips->ps2pdf,但是当我编译时执行以下操作:

latex main.tex
dvips main.dvi
ps2pdf main.ps

我收到错误: 包动画错误:\animategraphics 命令中缺少帧号。 此错误发生在以下步骤之后:latex main.tex

根据动画包文档,我认为它应该可以工作,但我显然做错了什么。虽然文档提到了这种编译方式的一些问题,但我无法解决它。有指针吗?

答案1

改用\animateinline。它让生活更轻松:

\documentclass{beamer}
\usepackage{etex}
\usepackage{animate}
\usepackage{pstricks-add}

\newcommand\RotatingArrow[1]{%
    \psset{unit=0.5}\footnotesize
    \begin{pspicture}(-1,-1)(10,11)
        \psframe*[linecolor=cyan,opacity=0.3](-1,-1)(10,11)
        \psset{arrows=->}
        \psaxes(0,0)(-0.5,-0.5)(9,10)[$x$,0][$y$,90]
        \rput(4.5,0.6){Temps = #1 s}
        \rput{#1}(4.5,5.5){%
            \psset{arrowsize=5pt}
            \pnode(2,0){A}
            \pnode(2,3){B}
            \psline[linecolor=blue](A)
            \uput[0]{-#1}(A){$\textcolor{blue}{\vec{a}}$}
            \psline[linecolor=red](A)(B)
            \uput[90]{-#1}(B){$\textcolor{red}{\vec{v}}$}}
\end{pspicture}}

\begin{document}

\begin{frame}
\begin{animateinline}[poster=last, controls, palindrome]{12}%
\multiframe{36}{iAngle=0+10}{\RotatingArrow{\iAngle}}%
\end{animateinline}%
\end{frame}

\end{document}

相关内容