¿Cómo hacer una animación usando pgfplots/beamer?

¿Cómo hacer una animación usando pgfplots/beamer?

Intento animar algo que se mueve en una diapositiva. Estoy usando los paquetes pgfplots y animate para lograr esto. Aquí hay un ejemplo:

\documentclass[aspectratio=1610]{beamer}
\setbeamertemplate{navigation symbols}{}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{animate}

\newcommand{\Textfield}[3]{%
    \draw%
        (current page.south west) ++(#1,#2)node[anchor=south west](N0){#3}%
    ;%
}%

\begin{document}
\begin{frame}
\begin{tikzpicture}[remember picture,overlay]%
    \useasboundingbox (current page.south west) rectangle (current page.north east);%
    \Textfield{1cm}{1cm}{Moving Text}
\end{tikzpicture}
\end{frame}
\begin{frame}
\begin{animateinline}[autoplay,controls=all,%
        begin={\begin{tikzpicture}[remember picture]%,overlay
        \useasboundingbox (current page.south west) rectangle (current page.north east);},%
        end=\end{tikzpicture}]{20}%
    \multiframe{61}{dPosTy=10mm+1mm}%
    {\Textfield{1cm}{\dPosTy}{Moving Text}}%
\end{animateinline}%
\end{frame}
\end{document}

En mi resultado, obtengo un desplazamiento en la posición del texto en la animación. Si uso la opción de superposición en la animación, incluso obtengo dos errores:
'El contenido del primer fotograma no debe tener un ancho cero'
'El contenido del primer fotograma no debe tener una altura cero'
¿Alguien puede explicar por qué es así y cómo hacerlo? ¿correctamente?
gracias de antemano

Respuesta1

Si se utiliza la opción, el cuadro TeX resultante tiene cero dimensiones tikzpicture. overlayEsto no está permitido dentro del animateinlineentorno, porque el ancho, alto y profundidad del widget de animación se determinan a partir de las dimensiones del primer fotograma. Si son cero, el tamaño del widget también sería cero, lo cual no tiene sentido. Este es el motivo del mensaje de error que recibe.

Sugeriría la siguiente solución. La animación (relleno de diapositivas) se compone en una lrboxprimera, para evitar tikzpictureentornos anidados (lo cual se considera una práctica obsoleta). Luego lrboxse puede colocar de forma absoluta, utilizando el nodo de página current page.

\documentclass[aspectratio=1610]{beamer}
\setbeamertemplate{navigation symbols}{}

\usepackage{animate}

\usepackage{tikz}
%\usepackage{pgfplots} % not used here
%\pgfplotsset{compat=newest}

\newsavebox\animation

\newcommand{\Textfield}[3]{\node[anchor=south west, draw] at (#1,#2) {#3};}%
%\newcommand{\Textfield}[3]{\draw (0,0) -- (#1,#2) node[anchor=south west, draw] {#3};}%

\begin{document}

\begin{lrbox}{\animation}
  \begin{animateinline}[
    autoplay,controls,
    begin={\begin{tikzpicture}
      \useasboundingbox (0,0) rectangle (\paperwidth,\paperheight);},
    end=\end{tikzpicture}
  ]{20}
    \multiframe{61}{dPosTy=10mm+1mm}{\Textfield{1cm}{\dPosTy}{Moving Text}}
  \end{animateinline}
\end{lrbox}

\begin{frame}
  \begin{tikzpicture}[overlay,remember picture]
    \node [inner sep=0pt, outer sep=0pt, anchor=base west] at (current page.south west) {\usebox\animation};
  \end{tikzpicture}
\end{frame}

\end{document}

información relacionada