为什么 TeXLive 2016 beamer + Animate 的 .png 系列失败而 ShareLaTeX 的却没有失败?

为什么 TeXLive 2016 beamer + Animate 的 .png 系列失败而 ShareLaTeX 的却没有失败?

我知道从 .tex 到 .ppt/.pptx/... 有很多后处理线程,其中主线程将 Beamer 幻灯片导出为 powerpoint/openoffice-impress/keynote 可编辑格式。但是,他们的想法主要是将 Beamer 生成的 PDF 后处理转换为 ppt/pptx/libre office/... 但是,我想从 LaTeX 源文件生成带有动画的演示文稿 (.gif)。伪代码

  1. 您可以使用 Imagemagick 将 GIF 转换为一系列 PNG 帧,并使用此方法播放一系列图像文件-涡旋在线程上将动画放入 latex beamer 演示文稿中。使用 png、gif?在示例企鹅 .gif 动画上运行该命令,您将获得一个文件目录out00000.png,,out00001.png...和out00016.png

    # https://stackoverflow.com/a/12828048/54964
    convert -coalesce giphy.gif out%05d.png
    
  2. 使用与 16 个 .png 图像位于同一目录中的 .tex 代码。

    \documentclass{beamer}
    
    \usepackage{animate}
    \usepackage{graphicx}
    
    \begin{document}
    
    \begin{frame}
        \begin{figure}
        % https://tex.stackexchange.com/a/99361/13173
        % https://tex.stackexchange.com/a/355306/13173
            \animategraphics[controls,autoplay,loop]{2}{out000}{00}{16}
        \end{figure}            
    \end{frame}
    
    \end{document}
    
  3. 根据线程以任何演示格式呈现 LaTeX beamer + .gif 动画将动画放入 latex beamer 演示文稿中。使用 png、gif?如何在 Beamer 中包含外部动画(使用动画)

输出:pdf 文件中不运行任何动画acroread,只有动画的起始图片;而且图形的大小超出了帧大小

图 1 示例 .gif 动画,单击后即可看到动画,图 2 输出中acroread只有起始图片,无法启动动画,图 3 Sharelatex 的输出来自 AlexG如果在我的系统中生成代码,企鹅就不会移动,图 4 Sharelatex 的输出来自 AlexG如果下载ShareLaTeX版本的文档并通过查看,企鹅会移动在哪里acroread,如图1所示!

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

预期输出:一页上有一张动画幻灯片

测试 AlexG 的提议

按照第一点所述生成图像。\animategraphics[width=\textwidth, ...]{12}...与起始点形成对比。图片现在正确地位于中心。TODO 为什么{12}和不{2}。仅对第一个代码进行相关的更改

% AlexG
\begin{frame}
    \begin{figure}
    % https://tex.stackexchange.com/a/99361/13173
    % https://tex.stackexchange.com/a/355306/13173
        \animategraphics[controls,autoplay,loop]{2}{out000}{00}{16}
    \end{figure}
\end{frame}

输出:在我的系统中生成并在中查看acroread,对按钮操作没有反应,动画在开始时也没有移动

ShareLaTeX 中相同代码的输出:从 ShareLaTeX 下载文档并使用 查看acroread,您将获得预期的输出 - 动画从一开始就正确运行

这个相位差表明我的 TeXLive 存在问题。

TeXLive:2016
PDF 查看器:Adobe Acrobat 9.5(acroread)按说明安装这里
操作系统:Debian 8.7
ShareLatex 的网络浏览器:Firefox、Google Chrome

答案1

当然,你可以花费你宝贵的时间和破解投影机来删除-(提示:你必须修改的命令可能是

\define@key{mpm}{format}[\@mpm@defaultformat]{%
  \global\def\@mpm@format##1{##1-\the\@mpm@count.#1}}

单个-应该很容易找到),但你仍然面临一个问题,即你导出的图像带有固定数量的字符...所以总结一下:这可以在 tex 中完成,但为什么要重新发明轮子呢?

所以不要浪费你的时间,要么重命名文件(因为大多数操作系统都存在批量重命名文件的解决方案),要么简单地以与 beamer 兼容的命名方案导出它们,例如:

convert -coalesce cOB2w.gif out-%d.png

\documentclass{beamer}
\usepackage{xmpmulti}
\begin{document}

    \begin{frame}
        \frametitle{Penguins are cute!}
        \transduration<0-16>{0}
        \multiinclude[<+->][format=png, graphics={width=\textwidth}]{out}
    \end{frame}

\end{document}

结果正如预期的那样,框架内有 17 张幻灯片,这些幻灯片将在演示者模式下使用合适的 pdf 查看器自动制作动画:

在此处输入图片描述

答案2

由于系统中有两个单独的 TeXLive 2016 安装 + 它们之间存在冲突,因此我无法在旧的 TeXLive 2016 安装中正确运行 AlexG 的提议,因此我决定删除这两个安装并移至 TeXLive 2017。但是,经过acroread几次编译后,我的新 TeXLive 2017 安装输出显示正确。AlexG 的提议 + 移至 TeXLive 2017

\documentclass{beamer}

\usepackage{animate}
\usepackage{graphicx}

\begin{document}

\begin{frame}
    \begin{figure}
    % https://tex.stackexchange.com/a/99361/13173
    % https://tex.stackexchange.com/a/355306/13173
        \animategraphics[
          width=\textwidth,
          controls,autoplay,loop
        ]{12}{out000}{00}{16}
    \end{figure}
\end{frame}

\end{document}

相关内容