我使用 TikZ/PGF 为 PDF 论文(不是 Beamer)制作了一个动画。问题是,当文档的阅读器不是 Adobe(例如 Mendeley - 一个用于管理和共享研究论文的免费程序 - 或 CorelDraw - 一个矢量图形编辑器程序)时,它看到的是“白洞”而不是视频(甚至不会出现视频的预览图)。
我的问题是:我该如何为那些不支持视频动画的 PDF 阅读器做些改进?我至少希望出现预览图而不是视频。
当我直接从 Gmail 打开带有这些动画的 PDF 文档时,视频不会出现,而是出现预览图而不是视频。但使用其他阅读器时,只会出现“白洞”而不是它。
例子:
\documentclass[10pt,oneside,a4paper]{article}
\usepackage{ifthen}
\usepackage{fp} % Calculos numéricos
\usepackage{textcomp,tikz}
\usetikzlibrary{%
decorations.pathreplacing, %
decorations.pathmorphing, %
snakes
}
\usepackage{pgfplots}
\usepackage{rotating}
\usepackage{animate}
\newcommand{\tkApoyo}[4]{
\tikzstyle{triangulo} =[line width=1pt, color=black, fill=gray]
\tikzstyle{circulo} =[line width=1pt, color=black, fill=gray]
\tikzstyle{base}=[snake=border, line width=1pt, raise snake=-6pt,segment length=5pt, segment amplitude=8pt, segment angle=45, color=black]
\def\tkX{#2}
\def\tkY{#3}
\def\tkInc{0.6cm}
\def\tkRad{0.1cm}
\pgfmathparse{\tkInc*cos(60+#4)} \let\tkIncX\pgfmathresult
\pgfmathparse{\tkInc*sin(60+#4)} \let\tkIncY\pgfmathresult
\ifthenelse{\equal{#1}{fijo}}{
\coordinate (D0) at (\tkX, \tkY);
\coordinate (D1) at ([xshift=\tkIncX, yshift=-\tkIncY] D0);
\coordinate (D2) at ([xshift=-\tkIncX, yshift=-\tkIncY] D0);
\coordinate (D3) at ([xshift=-1.65*\tkIncX, yshift=-\tkIncY] D0);
\coordinate (D4) at ([xshift=1.72*\tkIncX, yshift=-\tkIncY] D0);
\coordinate (D5) at ([xshift=-2.0*\tkIncX, yshift=-\tkIncY] D0);
\coordinate (D6) at ([xshift=1.9*\tkIncX, yshift=-\tkIncY] D0);
\draw[triangulo] (D0) -- (D1) -- (D2) -- cycle;
\draw[circulo] (D0) circle (\tkRad);
\draw[triangulo] (D3) -- (D4);
\draw[base] (D5) -- (D6);
}{
}
}
\date{}
\newcounter{tiempo}
\setcounter{tiempo}{0}
\begin{document}
\thispagestyle{plain}
\def\miPi{3.141592654}
\def\f{1}
\def\L{4.5}
\def\A{2.2}
\tikzstyle{viga} =[line width=3pt, color=gray]
\tikzstyle{modo1} =[line width=1.5pt, color=red]
\begin{minipage}[t]{0.49\textwidth}
\setcounter{tiempo}{0}
\begin{animateinline}[autopause, loop, poster = first]{10} % [loop, poster = first, controls]
\whiledo{\thetiempo<58}{
\begin{tikzpicture}[scale=1]
\clip (-0.6,-\A-0.1) rectangle (\L+0.5,\A+0.1);
\begin{scope}[scale=1]
\draw [viga] (0,0) -- (\L,0);
\tkApoyo{fijo}{0}{0}{0}
\tkApoyo{fijo}{\L}{0}{0}
\draw[modo1] plot[smooth,domain=0:\L] (\x, {\A*cos(2*\miPi/\f*\thetiempo)*sin(\miPi*\x/\L r)});
\end{scope}
\end{tikzpicture}
\stepcounter{tiempo}
\ifthenelse{\thetiempo<58}{
\newframe
}{
\end{animateinline}\relax
}
}
\end{minipage}
\end{document}