使用rmarkdown在pdf中插入GIF

时间:2018-09-11 12:29:39

标签: r r-markdown knitr

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

![](www/script.gif)

当我将HTML编织成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文档?

3 个答案:

答案 0 :(得分:1)

不可能在LaTeX文档中直接包含GIF。

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

RMarkdown默认情况下使用pdflatex;虽然您可以通过指定例如来更改LaTeX引擎文档的YAML标头中latex_engine: xelatex下方的pdf_document,无法使用latex进行编译(latex首先会创建一个DVI文件,然后将其转换为PS,然后转为PDF。

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

答案 1 :(得分:1)

尝试一下

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

然后在URL中将URL放入您的gif

答案 2 :(得分:0)

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