moodle - 为什么从 r-exams 生成的表格没有出现在 Moodle 中?
问题描述
我已经定义了在 RMarkdown 中生成频率表所需的变量和数据,以使用 R-exams 将其导出到 Moodle:
xsubio<-c(sample(5:35,5))
xsubi<-sort(xsubio)
frecuencias<-sample(0:30 ,5)
tabla<-data.frame(xsubi,frecuencias)
colnames(tabla)<-c(" Edades" ,"Personas")
通过块我生成表:
```{r, eval=TRUE,echo=FALSE,results='asis',warning=FALSE,message=FALSE,error=FALSE}
library(exams)
print(xtable(tabla), include.rownames=FALSE)
```
导出为 PDF 时,使用exams2pdf,表格完美显示:
但是,当使用exams2moodle 导出到Moodle 时,表格消失了:
我该怎么做才能让它出现?
解决方案
问题:您在 Markdown 中进行了格式化练习,并用于xtable()
在 LaTeX 中插入表格。在将练习转换为 PDF 时,这种 Markdown+LaTeX 的混合是没有问题的。在内部,这会保留 LaTeX 表,并且在将 LaTeX 渲染为 PDF 之前也将 Markdown 部分转换为 LaTeX。但是,在将 Markdown 练习转换为 Moodle 的 HTML 时,无法自动执行相同的操作。然后转换器不会自动分离 LaTeX 部分以将其转换为 HTML。
简而言之:不同的标记必须充分同步。用于 PDF 输出的 Markdown+LaTeX 标记和用于 HTML 输出的 Markdown+HTML。但更好的是让标记完全同步,即 LaTeX+LaTeX 或 Markdown+Markdown。然后可以将此类练习自动呈现为 PDF 或 HTML。
可能的解决方案:
Markdown+Markdown:R/Markdown (Rmd) 练习中的 Markdown 表标记
我建议您简单地通过 Markdown 生成表,knitr::kable()
而不是xtable::xtable()
. 因此,表的代码块简单地变成knitr::kable(tabla, format = "markdown")
然后表格以 PDF 和基于 HTML 的格式(如 Moodle)正确呈现。
LaTeX+LaTeX:R/LaTeX (Rnw) 练习中的 LaTeX 表格标记
如果您希望继续使用xtable()
另一条路线生成 LaTeX 表格,请将 R/exams 练习的标记更改为 Rnw (R/LaTeX)。有关如何执行此操作,请参阅R/exams 网页上的第一步教程。Markdown+Adaptive:根据输出格式选择正确的表格标记
使用该match_exams_call()
功能,您可以在运行练习中确定使用哪个exams2xyz()
接口来处理它。所以你可以做type <- if(match_exams_call() %in% c("exams2pdf", "exams2nops")) "latex" else "html" print(xtable(tabla), type = type, ...)
然后 LaTeX 或 HTML 格式由
xtable()
.
这三种解决方案原则上都有效,但我认为解决方案 1 ( kable()
) 在您的情况下是最好的和最强大的。
额外说明:如果您使用的是 R/exams 2.4-0(撰写本文时的当前开发版本),您可以用来exams2moodle(...,table = TRUE)
在 Moodle 中获得更好的表格格式。
推荐阅读
- kubernetes - 无法启动 Kube-apiserver 服务
- spring-boot - 在 eclemma 插件中加载覆盖会话(代码 5001)时出错
- css - 网格自动调整最后一项高于而不是低于
- angular8 - 我如何将 rxjs debounceTime 和 distinctUntilChanged 与角度输入事件(例如,单击或输入)一起使用
- javascript - JSX 中的布尔复选框值不起作用
- qlikview - 在 qlik 意义上更改分布图的颜色
- javascript - mapbox-gl 未聚集的点重叠为一个圆圈
- c# - 如何在 c# linq 中的对象内为对象创建 where 条件?
- javascript - 在应用程序启动时运行计算代码 html 表
- c++ - quit() 函数中的 C++ 可能的范围问题