【问题标题】:can't compile RMarkdown pdf with image in child .Rmd - LaTeX Error - image file not found无法使用子 .Rmd 中的图像编译 RMarkdown pdf - LaTeX 错误 - 找不到图像文件
【发布时间】:2020-04-06 17:34:02
【问题描述】:

我正在使用子 .Rmd 编​​译 pdf。 example_child.Rmd 使用 knitr::include_graphics() 调用图像并自行编译,但尝试编译 example_main.Rmd 会产生以下错误。

TeX Live 2019 is frozen forever and will no
longer be updated.  This happens in preparation for a new release.

If you're interested in helping to pretest the new release (when
pretests are available), please read https://tug.org/texlive/pretest.html.
Otherwise, just wait, and the new release will be ready in due time.
! LaTeX Error: File `images/example_image' not found.

Error: LaTeX failed to compile example_main.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See example_main.log for more info.
Execution halted

example_main.Rmd 仅在调用不调用图像的子文档时编译良好(它从子文件夹调用数据就好了)。任何帮助,将不胜感激!关于我的会话和文件的所有相关信息如下:

我的工作目录是"/Users/example_project"

example_main.Rmd(文件路径"/Users/example_project/folder_1/example_main.Rmd")YAML和code-chunk如下:

---
output: 
  pdf_document:
    latex_engine: xelatex
---

```{r child = './folder_2/example_child.Rmd'}
```

example_child.Rmd(文件路径"/Users/example_project/folder_1/folder_2/example_child.Rmd")YAML和代码块如下:

---
output: pdf_document
---

```{r example, echo = FALSE, out.width='80%', out.height='50%'}
knitr::include_graphics("./images/example_image.png")
```

完整的图片文件路径是"/Users/example_project/folder_1/folder_2/images/example_image.png"

我的会话信息如下:

R version 3.6.3 (2020-02-29)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6, RStudio 1.2.5033

Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8

Package version:
  base64enc_0.1.3 digest_0.6.25   evaluate_0.14   glue_1.4.0      graphics_3.6.3  grDevices_3.6.3 highr_0.8      
  htmltools_0.4.0 jsonlite_1.6.1  knitr_1.28.2    magrittr_1.5    markdown_1.1    methods_3.6.3   mime_0.9       
  Rcpp_1.0.4      rlang_0.4.5     rmarkdown_2.1   stats_3.6.3     stringi_1.4.6   stringr_1.4.0   tinytex_0.21.1 
  tools_3.6.3     utils_3.6.3     xfun_0.12       yaml_2.2.1     

Pandoc version: 2.3.1

【问题讨论】:

    标签: r latex r-markdown knitr tex-live


    【解决方案1】:

    您可以使用子文档的工作目录(在example_child.Rmd)重建图像的路径

    ---
    output: pdf_document
    ---
    
    ```{r example, echo = FALSE, out.width='80%', out.height='50%'}
    knitr::include_graphics(paste0(getwd(), "/images/example_image.png"))
    ```
    

    这似乎是类似于herehere 描述的“孙子”文档的问题

    【讨论】:

    • 感谢您的回复!不幸的是,这只是产生了一个不同的错误:! Missing $ inserted. <inserted text> $ l.72 ...ct/folder_1/folder_2/images/example_image} Try to find the following text in example_main.Rmd: ...ct/folder_1/folder_2/images/example_image} You may need to add $ $ around a certain inline R expression `r ` in example_main.Rmd (see the above hint). See https://github.com/rstudio/rmarkdown/issues/385 for more info. Error: LaTeX failed to compile example_main.tex. The referenced issue about inline code似乎不相关。
    • @kgf,你能用新代码编译子文档吗?请仔细检查是否没有过多的空格
    • 是的,子文档使用新代码编译得很好。错误仅在编织时出现example_main.Rmd
    • @kgf 新错误说明了内联 R 表达式,您是否有 example_main.Rmd 与问题中的完全一样?如果您从子文档中排除图像并将其仅包含在getwd() 中,您可以编译主文档吗?
    • 我想我发现了这个问题 - 类似于 here。我的完整工作目录包括一个名为“Box Sync”的文件夹,而空格会导致问题。其他 Box 用户有noted this problem,但不幸的是 Box 不允许用户更改默认文件夹名称!但是,通过从 example_main.Rmd YAML 中删除 latex_engine: xelatex,它可以使用您的修复程序正常编译。谢谢!
    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 2021-05-10
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多