RStudio中Knitr/Pandoc转PDF出现‘找不到图片’错误求助
解决RStudio编译RMD到PDF时仅首图显示的问题
我之前在Ubuntu 16.04的RStudio里遇到过完全一样的坑!你的问题核心出在代码块的命名包含特殊字符上——看那些带/、#和空格的代码块标签,比如5/17 run #1 results,这些字符在pandoc生成临时图片路径时会被URL转义(比如#变成%23、空格变成%20),但RStudio和pandoc在路径匹配时没对齐,导致找不到生成的临时图文件。
快速修复步骤
1. 重命名所有代码块标签
把所有代码块的名字改成只含字母、数字、下划线或连字符的格式,别用斜杠、井号、空格这类特殊字符:
- 把
{r 5/16 results, ...}改成{r run_516_results, ...} - 把
{r 5/17 run #1 results, ...}改成{r run_517_1_results, ...} - 以此类推修改剩下的代码块
修改后的示例代码块:
```{r run_516_results, message = FALSE, warning = FALSE, echo = FALSE} # 这里是你的Plot 1代码
\pagebreak
# 这里是你的Plot 2代码
### 2. 清理临时文件(可选但推荐) - 先关掉RStudio,找到RMD所在目录下的`new_document_files`文件夹(就是警告里提到的那个临时文件夹),直接删掉它 - 重新打开RStudio,再编译整个RMD文件 ### 3. 验证 先单独运行每个代码块确认图表都能正常生成,再编译完整PDF——这时候所有图表应该都能正确显示在PDF里了。 ## 为啥第一个图能显示? 第一个代码块的标签`5/16 results`里的斜杠在第一次生成时还没触发严重的路径冲突,但后续带`#`的代码块转义后路径完全不匹配,就找不到文件了。Ubuntu对文件路径的特殊字符处理比Windows更严格,这也是为啥单独运行代码块没问题,但编译整个文档就出问题的原因。 内容的提问来源于stack exchange,提问作者syntonicC
相关产品推荐
相关产品推荐

