【问题标题】:Insert GIF in pdf using rmarkdown使用 rmarkdown 在 pdf 中插入 GIF
【发布时间】:2018-09-11 12:29:38
【问题描述】:

我正在使用 rmarkdown 来生成 HTML 和 pdf 文件。在我的 .Rmd 文件中,我包含了这样的 GIF:

![](www/script.gif)

当我将它编织成 HTML 时,它工作正常。

rmarkdown::render(documentation_file, encoding="UTF-8")

但是,当我尝试使用

编织成 PDF 时
rmarkdown::render(documentation_file, rmarkdown::pdf_document(latex_engine = "xelatex"), encoding="UTF-8")

我有以下问题:

! LaTeX Error: Unknown graphics extension: .gif.

我不介意丢失 gif 的动画,它的静态版本非常好。

是否有任何简单的方法可以将 GIF 动态包含/转换为我的 PDF 文档?

【问题讨论】:

标签: r r-markdown knitr


【解决方案1】:

无法在 LaTeX 文档中直接包含 GIF。

在一般的LaTeX中,只有使用latex编译文档时才能包含GIF;当使用pdflatexxelatexlualatex 时,您需要手动将您的图形转换为例如PNG、JPG 或 PDF。

RMarkdown 默认使用pdflatex;虽然您可以通过指定例如更改 LaTeX 引擎latex_engine: xelatex 在你的文档的 YAML 头中 pdf_document 下面,不能使用 latex 编译(latex 会先创建一个 DVI 文件,然后将其转换为 PS 再转为PDF)。

因此,最简单(也是唯一)的解决方案是将所有 GIF 图转换为 PNG(或 JPG),然后将它们作为图像包含在您的 RMarkdown 文档中。

【讨论】:

    【解决方案2】:

    在你的块中试试这个

    if (knitr:::is_latex_output()) {
      knitr::asis_output('\\url{....}')
    } else {
      knitr::include_graphics("script.gif")
    }
    

    然后在 url 中把 url 放到你的 gif 中

    【讨论】:

      【解决方案3】:

      您可以创建 gif 第一帧的快照图像,https://stackoverflow.com/a/12554723/10346727 我认为 PDF 不支持 gif 格式,或任何移动格式。

      【讨论】:

      • 但是我会在 HTML 文件中使用动画。
      • 您可以通过仅在将 gif 图像转换为 html 后将其替换为图像快照来解决此问题
      猜你喜欢
      • 2018-08-18
      • 1970-01-01
      • 2015-10-28
      • 2015-12-12
      • 2021-05-26
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多