首页 > 解决方案 > Knitr/Pandoc 转换为 PDF 失败,出现“找不到图像”错误

问题描述

我在 Ubuntu 16.04.4 LTS 上使用 RStudio。我过去渲染 PDF 没有问题。该文档在一个代码块中加载了几个 .rda 文件,然后在其余代码块中使用 ggplot 绘制它们。当我运行我的 RMD 文件时,它一直到最后,然后给出以下错误:

[pandoc warning] Could not find image `new_document_files/figure-latex/5/17%20run%20#1%20results-1.pdf', skipping...

对于我的每个代码块的所有 ggplot 输出,依此类推。请注意,我不是要插入任何图像或类似的东西。我能找到的大多数给出类似错误的问题都是由于尝试插入 PNG 文件时的绝对路径。这不是这里的情况。看起来为每个绘图生成的临时文件没有被拼接到 PDF 中。我的 RMD 文件与所有 .rda 文件位于同一目录中。

然而,PDF 确实保存了。有趣的是,第一个代码块的图显示了,但与错误相关的其余部分只是空页面(每页上都有我的降价标题,但没有图)。

此外,我可以在 RStudio 中运行每个单独的代码块并毫无问题地查看图表。这个问题似乎只出现在最后。

这是我的 RMD 文件的骨架。当我可以使用 RMarkdown/Knitr 访问计算机时,我将使用可重现的示例进行更新。

---
title: "Datasets (5/16, 5/17, 5/18)"
author: "XXX"
date: "May 18, 2018"
output:
  pdf_document: default
---

Elastic net model fit for data. Data sets are from dates 5/16, 5/17, and 5/18.

```{r Load packages, message = FALSE, warning = FALSE, echo = FALSE}
### Packages
```

```{r Load functions, message = FALSE, warning = FALSE, echo = FALSE}
### Functions
```

```{r Load data, message = FALSE, warning = FALSE, echo = FALSE}
### Load data sets
```

```{r 5/16 results, message = FALSE, warning = FALSE, echo = FALSE}
### Plot 1
```

\pagebreak

```{r 5/17 run #1 results, message = FALSE, warning = FALSE, echo = FALSE}
### Plot 2
```

\pagebreak

```{r 5/17 run #2 results, message = FALSE, warning = FALSE, echo = FALSE}
### Plot 3
```

\pagebreak

```{r 5/18 run #1 results, message = FALSE, warning = FALSE, echo = FALSE}
### Plot 4
```

\pagebreak

```{r 5/18 run #2 results, message = FALSE, warning = FALSE, echo = FALSE}
### Plot 5
```

标签: rknitrpandoc

解决方案


https://yihui.name/knitr/options/上的knitr文档说:

避免空格和句号。在块标签和目录名称中;如果您的输出是 TeX 文档,这些字符可能会造成麻烦(一般建议使用字母字符,单词之间用 - 或 _ 分隔,避免使用其他字符),

所以像这样的名字Load packages是因为空格而不好的,并且5/17 run #1 results从空格#/字符上都有问题。上面的引用没有提到包括数字,但我从来没有遇到过这些问题。

所以我建议像Load_packages,之类的名字May-17-run-1-results


推荐阅读