【问题标题】:Unable to generate exam with exams2moodle when including TikZ picture包含 TikZ 图片时无法使用exams2moodle 生成考试
【发布时间】:2020-10-14 08:45:38
【问题描述】:

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

magick_image_readpath(enc2native(path)、密度、深度、 剥离,:rsession.exe:PDFDelegateFailed`El sistema no puede encontrar el archivo especificado。 '@error/pdf.c/ReadPDFImage/809

我检查了我的安装,并看到了各种类似问题的帖子,但无法修复它。知道可能出了什么问题吗?提前非常感谢您

编辑:这是我的会话信息

R 版本 4.0.2 (2020-06-22) 平台:x86_64-w64-mingw32/x64(64位) 运行于:Windows 10 x64(内部版本 19041)

矩阵产品:默认

语言环境: [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

附加的基础包: [1] stats graphics grDevices utils datasets methods base

其他附加包: [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

通过命名空间加载(未附加): [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.10survey_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] 生命周期_0.2.0 DBI_1.1.0 正交多项式_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.0survival_3.1-12 colorspace_1.4-1 knitr_1.30

【问题讨论】:

    标签: tikz r-exams


    【解决方案1】:

    概述

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

    修复magick 中的错误

    针对您提交的问题,Jeroen 已在 GitHub 上使用 magick 软件包更新了新的和更新的 ImageMagick 二进制文件,请参阅:https://github.com/ropensci/magick/pull/276。请从 GitHub 重新安装 magick 应该可以解决问题。

    exams 中的解决方法

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

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

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

    链接

    【讨论】:

    • 1.我已经安装了pdf2svg 并将其添加到here 指示的路径中,但它不起作用。我收到错误消息exams2html("automaton.Rnw", svg = TRUE) "pdf2svg" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. Warning message: In normalizePath(path.expand(path), winslash, mustWork) path[1]="C:/Users/jcano/AppData/Local/Temp/RtmpGk7efO/file466848b5468/automaton.svg": El sistema no puede encontrar el archivo especificado
    • 2.当我在我的.Rnw 文件中调用include_tikz() 时,我使用format = match_exams_device(),因为我经常在pdfmoodle 之间切换,并且它可以在我的旧笔记本电脑上运行。它不在我的新笔记本电脑中
    • Re: 1. pdf2svg 目前在您的系统上找不到。也许您没有将它添加到 PATH 或 PATH 环境变量尚未重新加载?理想情况下,system("pdf2svg") 应该可以正常工作并报告如下内容:Usage: pdf2svg <in file.pdf> <out file.svg> [<page no>]。如果您在 Windows 上并且指定了 COMSPEC 环境变量,那么您也可以尝试使用 system(paste(shQuote(Sys.getenv("COMSPEC")), "/c pdf2svg")) 而不是 system("pdf2svg"),这是一种更安全的方式来进行系统调用 pdf2svg
    • Re: 2. match_exams_device() 很好。只是目前用于从 PDF 转换为 PNG 的 magick 代码在某些情况下不起作用。显然,如果我正确理解 GitHub 问题中的 cmets,则与 ImageMagick 中上游更改的交互。
    • Re 1. 我已将环境变量添加到系统 PATH,重新启动我的笔记本电脑,但仍然没有。您提到的两个命令(指定了 CONSPEC 环境变量)产生以下输出 > system("pdf2svg") [1] 127 > system(paste(shQuote(Sys.getenv("COMSPEC")), "/c pdf2svg")) "pdf2svg" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. [1] 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多