如何更改“exams2moodle”问题的 R 背景颜色?

How can you change the colour of the R background for `exams2moodle` questions?

我正在使用 R/exams' exams2moodle 为 Moodle 编写一些测验。 XML 文件创建良好,我可以将测验导入 Moodle,但是,任何将 R 代码作为问题或解决方案的一部分的问题都在深色背景上具有 R 代码,这几乎不可能读。有什么地方可以控制这个吗?

我正在使用此代码创建 XML:

exams2moodle(c("q1.Rmd", "q2b.Rmd", "q3.Rmd", "q4.Rmd", "q5.Rmd", "q6.Rmd"), 
             name = "GLM_prac1", 
             iname = FALSE,
             converter = "pandoc-mathjax",
             cloze = list(cloze_schoice_display = "MULTICHOICE_V"))

这是问题的一个例子:

显示的R代码​​的颜色不受exams2moodle()控制,至少没有明确控制。 exams2moodle() 所做的是将逐字输入和输出代码放入此 <pre><code> ... </code></pre> 的标准 HTML 标签中。这代表带有打字机 code 标记的 pre 格式的文本。 (实际上,这甚至不是 exams2moodle() 直接产生的,而是 pandoc 产生的。)

这些标准 HTML 标签的呈现然后通过您的 Moodle 安装中使用的 CSS 样式来控制。在普通的 Moodle 安装中,您目前只需在与常规文本相同的浅蓝色背景上获得黑色字体。在以前的版本中,背景是浅灰色的。鉴于文本的浅橙色背景和代码的深色背景,我猜这是您的 Moodle 安装中的设置。因此,我建议联系您所在大学的 Moodle 团队,并向他们询问此事。这似乎是一个糟糕的设置,可能也会影响其他人。

如果您无法与 Moodle 团队取得联系,或者他们不愿意更改他们的 CSS,您可以将自己的自定义 CSS 代码插入到您的练习中。优点是您可以完全控制颜色。缺点是您自己必须将该样式代码包含到每个需要它的练习中。这并不难,但很乏味。例如,您可以在练习中直接在问题部分的开头包含以下 R 代码块:

Question
========

```{r, echo = FALSE, results = "asis"}
writeLines("<style>
pre {
  background: #FFFFFF00
}
</style>")
```

这只是在你的 Rmd 练习中插入一个带有 CSS 的简短 HTML 片段:

<style>
pre {
  background: #FFFFFF00
}
</style>

这将指示浏览器对所有 <pre> 格式的块使用背景颜色 #FFFFFF00(完全透明的白色)。当然,您也可以尝试使用不同的颜色,例如 #EEEEEE(浅灰色)或类似颜色。