Я успешно использовал grViz в DiagrammR с файлом уценки R (bookdown) в R версии 3.6.3, который вызывает ошибку на другом компьютере с R версии 4.0.2. Я «перепробовал все», что мог придумать, включая переустановку TinyTex и соблюдение ВСЕХ параметров в https://yihui.org/tinytex/r/#debugging
Файл компилируется нормально как HTML в обеих версиях R, но PDF вызывает ошибку в R версии 4.0.2
После 3 часов тестов и поиска я думаю, что это ошибка. Для тестирования я сделал небольшую версию и файл Rmd (см. Ниже), который компилируется в PDF в R 3.6.3, но не в R версии 4.0.2 с предупреждением:
Мне не удалось найдите недостающие пакеты LaTeX в журнале ошибок Untitled4.log. ! Ошибка LaTeX: Environment grViz undefined.
Ошибка: LaTeX не удалось скомпилировать Untitled4.tex. См. https://yihui.org/tinytex/r/#debugging для советов по отладке. См. Untitled4.log для получения дополнительной информации. Выполнение остановлено
ИНФОРМАЦИЯ О СЕССИИ ДЛЯ R версии 3.6.3 появляется в конце PDF-файла по этой ссылке: https://uwmadison.box.com/s/xkim3gujwemrqau6bur7f8ckl35i9s9f
Вот файл RMD: файл RMD также находится по этой ссылке : https://uwmadison.box.com/s/4knl7y3f7yti8ibivfjex7qdv3ez8a11
---
title: "Untitled4"
output: pdf_document
always_allow_html: true
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(tinytex.verbose = TRUE)
```
# Test grViz
```{r flowofinformation, engine='R', eval=TRUE, echo=FALSE, fig.cap='Flow of information.', out.width = if (knitr:::is_html_output()) '100%' else '90%'}
DiagrammeR::grViz("
digraph dot {
graph [layout = dot
rankdir = LR]
node [shape = 'rectangle', style = filled, fillcolor = pink]
DNA, RNA, Protein
DNA -> {RNA}
RNA -> {Protein}
edge [color = gray, arrowtail = left, style = dashed ]
RNA -> {DNA}
}")
```
```{r}
sessionInfo()
```
SESSION INFO for version R 4.0.2:
R version 4.0.2 (2020-06-22)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Mojave 10.14.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] bookdown_0.20 visNetwork_2.0.9 digest_0.6.25
[4] jsonlite_1.7.0 magrittr_1.5 evaluate_0.14
[7] rlang_0.4.7 rmarkdown_2.3 DiagrammeR_1.0.6.1
[10] RColorBrewer_1.1-2 tools_4.0.2 glue_1.4.1
[13] htmlwidgets_1.5.1 tinytex_0.24 xfun_0.15
[16] yaml_2.2.1 compiler_4.0.2 htmltools_0.5.0
[19] knitr_1.29
РЕДАКТИРОВАТЬ # 1
Я проверил созданный файл .tex
. Похоже, что в R 4.0.2 файл .tex
содержит команды, которые не созданы в R 3.6.3. Например, вот результат для R 4.0.2:
\begin{figure}
\hypertarget{htmlwidget-7447954648696f078221}{}
\begin{grViz}
\end{grViz}
Flow of information.
\end{figure}
Итак, создаются \begin{grViz}
и \end{grViz}
, но между ними нет ничего.
Я изменил YAML для запуска в R 3.6.3, чтобы сохранить файл .tex
---
title: "Untitled4-R3.6.3"
output:
pdf_document:
keep_tex: true
always_allow_html: true
---
В результирующем файле .tex
нет команды \begin{grViz}
и \end{grViz}
, поэтому проблема связана с этим аспект кажется. В R 3.6.3 код проще и просто включает файл, созданный в подпапке Untitled4_files/figure-latex/flowofinformation-1
, которая, вероятно, является PDF-файлом, и папка должна быть временной, поскольку я не могу ее найти:
\hypertarget{test-grviz}{%
\section{Test grViz}\label{test-grviz}}
\begin{figure}
\includegraphics[width=0.9\linewidth]{Untitled4_files/figure-latex/flowofinformation-1} \caption{Flow of information.}\label{fig:flowofinformation}
\end{figure}
Поэтому новый добавление \begin{grViz}
и \end{grViz}
, похоже, вызывает проблему, но я не знаю, откуда они. В простом примере, подобном этому, нет никакого пользовательского файла preamble.tex
любого типа ...
EDIT 2
Я думаю, что мне придется дополнительно запросить помощь у Yihui на GitHub, вот и fun::session_info
для R 4.0.2. Сначала только для Tinytex
, а затем для всех:
> xfun::session_info('tinytex')
R version 4.0.2 (2020-06-22)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Mojave 10.14.6, RStudio 1.3.959
Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8
Package version:
graphics_4.0.2 grDevices_4.0.2 stats_4.0.2 tinytex_0.24 tools_4.0.2
utils_4.0.2 xfun_0.15
>
и для всех:
> xfun::session_info()
R version 4.0.2 (2020-06-22)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Mojave 10.14.6, RStudio 1.3.959
Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8
Package version:
assertthat_0.2.1 backports_1.1.8 base64enc_0.1.3 BH_1.72.0.3
bookdown_0.20 callr_3.4.3 cli_2.0.2 clipr_0.7.0
colorspace_1.4.1 compiler_4.0.2 crayon_1.3.4 desc_1.2.0
DiagrammeR_1.0.6.1 digest_0.6.25 downloader_0.4 dplyr_1.0.0
ellipsis_0.3.1 evaluate_0.14 fansi_0.4.1 farver_2.0.3
generics_0.0.2 ggplot2_3.3.2 glue_1.4.1 graphics_4.0.2
grDevices_4.0.2 grid_4.0.2 gridExtra_2.3 gtable_0.3.0
highr_0.8 hms_0.5.3 htmltools_0.5.0 htmlwidgets_1.5.1
igraph_1.2.5 influenceR_0.1.0 isoband_0.2.2 jsonlite_1.7.0
knitr_1.29 labeling_0.3 lattice_0.20.41 lifecycle_0.2.0
magrittr_1.5 markdown_1.1 MASS_7.3.51.6 Matrix_1.2.18
methods_4.0.2 mgcv_1.8.31 mime_0.9 munsell_0.5.0
nlme_3.1.148 pillar_1.4.6 pkgbuild_1.0.8 pkgconfig_2.0.3
pkgload_1.1.0 praise_1.0.0 prettyunits_1.1.1 processx_3.4.3
ps_1.3.3 purrr_0.3.4 R6_2.4.1 RColorBrewer_1.1-2
Rcpp_1.0.5 readr_1.3.1 rlang_0.4.7 rmarkdown_2.3
rprojroot_1.3.2 rstudioapi_0.11 scales_1.1.1 splines_4.0.2
stats_4.0.2 stringi_1.4.6 stringr_1.4.0 testthat_2.3.2
tibble_3.0.3 tidyr_1.1.0 tidyselect_1.1.0 tinytex_0.24
tools_4.0.2 utf8_1.1.4 utils_4.0.2 vctrs_0.3.1
viridis_0.5.1 viridisLite_0.3.0 visNetwork_2.0.9 withr_2.2.0
xfun_0.15 yaml_2.2.1
>