exams2forms不使用转换选项吗?

前端开发 2026-07-12

我想用MathML(ttm)来渲染数学公式,但似乎 exams2forms() 没有使用 converter 选项。

mwe.Rmd(代码块中的反引号数量是正确的,但我在这里写得不对):

  ---
  title: "Test"
  ---

  Testing MathML:

  `{r echo=FALSE, message = FALSE, results = "asis"}
  library("exams2forms")
  exams2forms("question.Rnw", n = 5, converter = "ttm")
  `

以及 question.Rnw

  \exname{Test}
  \extype{num}
  \exsolution{13}
  \begin{question}
    What is it?

    $ 2^2 + 3^2 = \text{##ANSWER1##} $
  \end{question}

我到底做错了什么?

解决方案

你是对的:converter 参数在 exams2forms() 中被忽略。原因是在 exams2forms() 中我们总是转换为Markdown(不是HTML),其中LaTeX公式仍然是LaTeX。显然,我们忘记移除这个参数。我刚刚在R-Forge上把它移除了。

如果你想使用MathML创建HTML输出,应在 mwe.Rmd 文档的YAML头部进行声明,而不是在 exams2forms() 调用中声明:

---
title: "Test"
output:
  exams2forms::webquiz:
    math_method: mathml
---

给Quarto用户的注记: 类似的选项在 .qmd 中被称为 html-math-method

补充说明:如果你想在你的问题中使用 ##ANSWERi## 标签,需要使用 cloze 练习。不过,在一个数学公式中嵌入 ##ANSWERi## 字段将不会正确呈现。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章