包含 TikZ 图片时无法使用 exams2moodle 生成考试

Unable to generate exam with exams2moodle when including TikZ picture

我正在尝试在我的新笔记本电脑上使用 exams2moodle 生成考试。在我的旧笔记本电脑上一切正常(并且仍然有效),但在新笔记本电脑上(我有完全相同的配置,但显然缺少一些东西),即使我尝试 运行 最简单的模板R/exams exams2moodle("automaton.Rnw") 中的 TikZ 图我收到错误消息

Error in magick_image_readpath(enc2native(path), density, depth, strip, : rsession.exe: PDFDelegateFailed `El sistema no puede encontrar el archivo especificado. ' @ error/pdf.c/ReadPDFImage/809

我已经检查了我的安装,也看到了有类似问题的各种帖子,但一直无法修复。知道可能出了什么问题吗?非常感谢您

编辑:这是我的会话信息

R version 4.0.2 (2020-06-22) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19041)

Matrix products: default

locale: [1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252 LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C
[5] LC_TIME=Spanish_Spain.1252

attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [1] magick_2.4.0 mgsub_1.7.2 ICSNP_1.1-1 ICS_1.3-1 mvtnorm_1.1-1 plotrix_3.7-8
[7] Ryacas_1.1.3 FRACTION_1.0 stringr_1.4.0 Deriv_4.0.1 ggplot2_3.3.2 plot3D_1.3
[13] scatterplot3d_0.3-41 MASS_7.3-53 latex2exp_0.4.0 permute_0.9-5 mpoly_1.1.1 polynom_1.4-0
[19] pracma_2.2.9 numbers_0.7-5 exams_2.3-6

loaded via a namespace (and not attached): [1] Rcpp_1.0.5 lattice_0.20-41 tidyr_1.1.2 assertthat_0.2.1 rprojroot_1.3-2 digest_0.6.25
[7] gmp_0.6-0 R6_2.4.1 plyr_1.8.6 backports_1.1.10 survey_4.0 evaluate_0.14
[13] pillar_1.4.6 rlang_0.4.7 misc3d_0.9-0 rstudioapi_0.11 Matrix_1.2-18 rmarkdown_2.3
[19] desc_1.2.0 splines_4.0.2 partitions_1.9-22 munsell_0.5.0 tinytex_0.26 compiler_4.0.2
[25] xfun_0.17 pkgconfig_2.0.3 htmltools_0.5.0 tcltk_4.0.2 mitools_2.4 tidyselect_1.1.0
[31] tibble_3.0.3 crayon_1.3.4 dplyr_1.0.2 withr_2.3.0 grid_4.0.2 gtable_0.3.0
[37] lifecycle_0.2.0 DBI_1.1.0 orthopolynom_1.0-5 magrittr_1.5 scales_1.1.1 stringi_1.5.3
[43] testthat_2.3.2 ellipsis_0.3.1 generics_0.0.2 vctrs_0.3.4 tools_4.0.2 glue_1.4.2
[49] purrr_0.3.4 pkgload_1.1.0 survival_3.1-12 colorspace_1.4-1 knitr_1.30

概览

感谢您仔细研究问题并在此处报告。正如您已经解决的那样,问题不直接出在 R/exams 中的代码中,而是出在 magick::image_read() 中,它在某些设置中无法正常工作。也感谢您向 magick 维护者 Jeroen Ooms 报告此事。

错误修复 magick

为了回应您提交的问题,Jeroen 已在 GitHub 上使用新的和更新的 ImageMagick 二进制文件更新了 magick 软件包,请参阅:https://github.com/ropensci/magick/pull/276。请 GitHub re-install magick 来解决问题。

exams

中的解决方法

避免使用 magick 的潜在解决方法可能是将 TikZ PDF 输出转换为 SVG 而不是 PNG。在那种情况下,pdf2svg(和 pdfcrop)需要在 PATH 上(另请参阅注释以获取更多详细信息)。要尝试使用

exams2html("automaton.Rnw", svg = TRUE)

或用 exams2moodle() 代替 exams2html()。 (后者更容易快速检查输出。)

链接