我刚刚解决了一个问题
exams2pdf()
,但又遇到了另一个问题......
考虑下面的简单练习文件 (
myquestion.Rmd
):
```{r, echo=FALSE, results="hide"}
x <- 1:5
y <- 1:5
png("myplot.png")
plot(x, y)
dev.off()
```
Question
========
What is this plot?
```{r, echo=FALSE, out.width='40%', fig.cap=""}
knitr::include_graphics("myplot.png", error = FALSE)
```
Answerlist
----------
* Scatterplot.
* Histogram.
Meta-information
================
exname: Q01
extype: schoice
exsolution: 10
exshuffle: FALSE
执行
exams2html("myquestion.Rmd")
效果很好。但是 exams2pdf("myquestion.Rmd")
不会渲染绘图。
我寻找答案,确实找到了一些提示,特别是提到使用
include_supplement()
函数。渲染 .tex 文件的文件夹似乎不知道 .png 图像文件在哪里。但不幸的是,我尝试过的一切都没有成功。有人可以告诉我我需要做什么吗?
重要的是,我正在建立一个大型项目库(包含数百个项目)。我需要能够互换使用
exams2nops
或 exams2html
,具体取决于我需要生成的作业类型。因此,代码应该灵活并且可以与这些 exam2xxx 函数一起使用。
提前谢谢您。
TL;博士
在 Markdown 语法中包含此类图形,而不是依赖
knitr::include_graphics()
。在这种情况下,您可以保持一切不变,只需将问题更改为:
Question
========
What is this plot?
![](myplot.png){width="40%"}
详情:
为了像 R/exams 一样模块化,它需要自己处理各种转换。尤其如此,因为 .Rnw 和 .Rmd 练习都受支持并且需要一致处理。这就是为什么我们不依赖某些
knitr
功能,而是拥有自己的转换工具。
最后,当包含练习本身中未生成的静态文件时,
include_supplement()
是相关的(就像您的示例一样。Rlogo练习中提供了此类静态图形的示例。