如何使用 R/exams 的 LaTeX 包?

How to use a LaTeX package with R/exams?

我正在使用 exams2moodle() 创建考试测验。我想使用一些需要 LaTeX 包 amssymb 的数学符号。我该如何进行?

一般来说,您 input your symbols 进入 .Rmd.Rnw 并且您可以使用任何可用的引擎(例如 pandoc、mathjax、knitr 等)渲染它。

install.packages("exams")

require(exams)

xWeave 在每个练习文件上调用并创建 LaTeX 代码

elearn_exam <- c("swisscapital.Rmd", "deriv.Rmd", "ttest.Rmd",
                 "boxplots.Rmd", "function.Rmd", "lm.Rmd", "fourfold2.Rmd")

set.seed(2020-04-16)

exams2moodle() 生成一个 XML 文件,可以上传到 Moodle

从 LaTeX 到 HTML 然后从 HTML 到 XML

exams2moodle(elearn_exam, n = 3, name = "R-exams")

要添加自定义 LaTeX 包,您可以根据 this post 中的答案修改序言,即 \usepackage

如链接 post 中所述,可以直接完成,即

---
title: "Title"
author: "Me"
header-includes:
   - \usepackage{mypackage}
output:
    pdf_document
---

或通过同一目录中的 mystyles.sty 文件。

TL;DR: amssymb MathJax 支持 LaTeX 符号,MathJax 是标准 Moodle 安装中的默认渲染器。因此,这些符号在使用 exams2moodle(..., converter = "pandoc-mathjax") 时应该开箱即用,这是默认的 sinc R/exams 2.3.3(2019 年 7 月发布)。

详细信息:正如@Hack-R 的回答已经指出的,有多种方法可以在基于 HTML 的练习中包含用 LaTeX 编写的数学符号。此博客 post 中给出了概述:http://www.R-exams.org/tutorials/math/

重要的是要注意,在这种情况下,LaTeX 代码实际上并不是由 LaTeX 本身处理的。它可以转换为 MathML(使用 pandocttm)或由 MathJax JavaScript 库在浏览器中呈现。无论如何,这取决于 converter/renderer 哪些 LaTeX 命令可以成功显示。它们都支持基本的 LaTeX 命令以及来自某些软件包的一些额外命令。支持哪些软件包的附加命令取决于 converter/renderer。在任何情况下,这些功能都不能通过样式文件来扩展!

在标准的 Moodle 安装中启用了支持 AMS LaTeX 包的 MathJax(因为 MathJax 是 by/for AMS 开发的!)。所以最好的策略是简单地将 LaTeX 保留在 Moodle 的 HTML 中。这可以通过 exams2moodle(..., converter = "pandoc-mathjax") 来完成,它实际上是自 2019 年 7 月发布的 R/exams 2.3.3 以来的默认值 converter。在之前的 R/exams 版本中,默认值是 [=16] =] 支持所有 amssymb 符号。