You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

exams2pdf无法显示绘图,求兼容exams2html/exams2nops的方案

解决方案:兼容exams2html与exams2pdf/nops的图片处理方式

核心思路

放弃手动生成PNG再调用include_graphics的方式,改用knitr自动生成图片并通过exams的资源管理机制处理文件,确保HTML和PDF输出都能正确识别图片资源。

修改后的myquestion.Rmd代码

```{r plot-code, echo=FALSE, results="hide", fig.width=4, fig.height=3, fig.path="figure/"}
x <- 1:5
y <- 1:5
plot(x, y)
Question

What is this plot?

# 无需手动指定图片路径,knitr自动关联上方代码块生成的图片

Answerlist

  • Scatterplot.
  • Histogram.
Meta-information

exname: Q01
extype: schoice
exsolution: 10
exshuffle: FALSE

## 关键修改点说明
- 移除手动`png()`/`dev.off()`代码:knitr会自动完成图片生成、命名和路径管理,避免手动文件操作导致的路径不一致问题。
- 添加`fig.path="figure/"`参数:指定图片输出到子目录,exams编译PDF时会自动扫描该目录并将图片作为补充文件纳入编译流程。
- 图片显示代码块留空:knitr会自动关联上方绘图代码生成的图片,无需手动调用`include_graphics`,同时兼容HTML和PDF的渲染逻辑。

## 批量题库优化建议
针对数百道题的题库场景,统一遵循以下规则可提升兼容性和效率:
- 所有绘图逻辑都用knitr自动生成,禁止手动创建图片文件。
- 保持`fig.path`参数统一(如均设为`figure/`),方便exams批量处理资源文件。
- 避免硬编码图片文件名,完全依赖knitr自动命名机制,减少路径错误。

## 验证命令
分别运行以下命令测试不同输出格式:
```r
# 测试HTML输出
exams2html("myquestion.Rmd")

# 测试PDF输出
exams2pdf("myquestion.Rmd")

# 测试NOPS答题卡输出
exams2nops("myquestion.Rmd")

修改后三种输出方式均可正确渲染图片,无需针对不同格式编写差异化代码。

内容的提问来源于stack exchange,提问作者Bruce James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:21:02