Невозможно использовать `knitr :: include_graphics ()` в дочернем документе rmarkdown - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь использовать knitr::include_graphics() в rmarkdown в дочерних документах. Я использую папку, настроенную так:

.
|-- Main_document.Rmd
|-- iu.jpeg
`-- subdocuments
    `-- Sub_document.Rmd

это изображение как iu.jpeg.

с Main_document.Rmd as:

---
output: pdf_document
---

# Main Document

```{r}
knitr::include_graphics('iu.jpeg',dpi = 400)
```

# Subdocument

```{r child = 'subdocuments/Sub_document.Rmd'}
```

Согласно первому чанку knitr::include_graphics() работает как положено.

Если я сейчас использую Sub_document.Rmd со ссылкой, относящейся к поддокументу (это правильно, насколько я понимаю ...) вот так:

```{r}
knitr::include_graphics('../iu.jpeg',dpi = 400)
```

Я получаю ошибку LaTeX:

! Пакет pdftex.def Ошибка: файл `../iu.jpeg 'не найден: используется черновой вариант.

Ошибка: LaTeX не удалось скомпилировать Main_document.tex. Смотрите> https://yihui.org/tinytex/r/#debugging для подсказок по отладке. Смотрите Main_document.log> для получения дополнительной информации. Выполнение остановлено

Однако, если я использую Sub_document.Rmd со ссылкой относительно основного документа , например:

```{r}
knitr::include_graphics('iu.jpeg',dpi = 400)
```

Я получаю knitr::include_graphics() ошибку:

Обработка файла: Sub_document.Rmd

Выход из строки 3-4 (Sub_document.Rmd)
Ошибка в knitr :: include_graphics ("iu.jpeg", dpi = 400):
Не удается найти файл (ы): "iu.jpeg"
Вызовы: ... withCallingHandlers -> withVisible -> eval -> eval ->
Выполнение остановлено

В какой-то момент это сработало (я полагаю, что с первой версией под-документа), но я только обновил все пакеты, а теперь больше нет.

Вот мой xfun::session_info('rmarkdown'):

R version 3.6.3 (2020-02-29)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Catalina 10.15.3, RStudio 1.3.911

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.3.2     
  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.20    tools_3.6.3     utils_3.6.3     xfun_0.12      
  yaml_2.2.1     

Pandoc version: 2.9.2

Два возможных, но неудовлетворительных решения:

  1. Использование абсолютных путей
  2. Следующий двойной размещение изображения в сочетании со ссылкой относительно поддокумента:
.
|-- Main_document.Rmd
|-- iu.jpeg
`-- subdocuments
    |-- Sub_document.Rmd
    `-- iu.jpeg

Есть мысли? Это настоящая ошибка или я что-то не так делаю?

Спасибо !!

...