4

I'm compiling a pdf using child .Rmd's. The example_child.Rmd calls an image using knitr::include_graphics() and compiles fine on its own, but trying to compile example_main.Rmd produces the following error.

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 compiles fine when only calling child documents that don't call images (it calls data from sub-folders just fine). Any help would be appreciated! All the relevant info about my session and files is below:

My working directory is "/Users/example_project"

The example_main.Rmd (file path "/Users/example_project/folder_1/example_main.Rmd") YAML and code-chunk are as follows:

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

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

The example_child.Rmd (file path "/Users/example_project/folder_1/folder_2/example_child.Rmd") YAML and code chunk are as follows:

---
output: pdf_document
---

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

The full image file path is "/Users/example_project/folder_1/folder_2/images/example_image.png".

My session info is as follows:

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
kgf
  • 43
  • 3

1 Answers1

3

You can reconstruct the path to the image using the working directory of the child document (in 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"))
```

It seem that this is an issue with 'grandchild' documents similar to that described here and here

DzimitryM
  • 561
  • 1
  • 5
  • 13
  • Thanks for your response! Unfortunately this just produced a different error: ``! Missing $ inserted. $ 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 doesn't seem to be relevant. – kgf Apr 06 '20 at 20:51
  • @kgf, can you compile the child doc with the new code? please double check that there are no excessive whitespaces – DzimitryM Apr 06 '20 at 21:53
  • Yes, the child doc compiles fine with the new code. The error is only when knitting `example_main.Rmd` – kgf Apr 06 '20 at 22:39
  • @kgf The new error tells about inline R expressions, do you have `example_main.Rmd` exactly as in the question? Can you compile main doc if you exclude the image from the child doc and include in it just `getwd()`? – DzimitryM Apr 07 '20 at 09:37
  • 2
    I think I discovered the issue - similar to [here](https://stackoverflow.com/questions/47155042/knitrinclude-graphics-in-bookdown-is-not-rendering-the-image). My full working directory includes a folder called "Box Sync" and the whitespace is causing issues. Other Box users have [noted this problem](https://community.box.com/t5/Archive-Forum/Changing-the-default-name-of-Box-Sync-Folder/td-p/42855), but unfortunately Box doesn't allow users to change the default folder name! However, by removing `latex_engine: xelatex` from the `example_main.Rmd` YAML, it compiles fine using your fix. Thanks! – kgf Apr 07 '20 at 11:12