r - LaTeX 符号未正确转换为 Moodle
问题描述
当我exams2moodle()
用来生成完形填空测验时,无法正确生成 LaTeX 符号。
示例:(在 .Rmd 文件中): ...$\hat{p}$
在 Moodle 中,它表现为: \hat{p}
(观察:它适用于exams2html()
。)
它被转换为: <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mover><mi>p</mi><mo accent="true">^</mo></mover><annotation encoding="application/x-tex">\hat{p}</annotation></semantics></math>
最后:如果我在 Moodle 中编辑问题并更改为$$\hat{p}$$
,则一切正常。但是这样一来,我就会有很多版本,这很糟糕。
解决方案
对于在 R/exams 中基于 HTML 的输出中包含 LaTeX,没有单一的最佳解决方案。所有解决方案都有潜在的缺点。
默认情况下,
exams2moodle()
将数学方程转换为可以由各种浏览器直接呈现的 MathML(推荐使用 Firefox)。优点: MathML 在 Firefox 中看起来不错,并且在服务器端或客户端都不需要进一步的支持。缺点:在某些浏览器中不起作用,特别是在 Chrome 中不起作用。作为替代方案,方程也可以嵌入到 LaTeX 中并由 MathJax 呈现(在服务器端,即不是由浏览器)。优点:适用于所有浏览器。缺点:需要在服务器上安装并使用 MathJax 脚本。用户需要在浏览器中启用 JavaScript。
由于 MathJax 似乎在您的 Moodle 安装中可用,我建议在您的练习中利用它(这也将解决您报告的问题)。这可以简单地通过
exams2moodle(..., converter = "pandoc-mathjax")
编辑:现在可以在 http://www.R-exams.org/tutorials/math/获得更详细的解释。
推荐阅读
- ios - 如果在数字之前按下计算器应用程序中的操作员按钮,则应用程序崩溃
- matlab - 在已部署的 MATLAB Web 应用程序中使用 ActiveX
- javascript - 在 react 中使用 useEffect Hook 检索输入文本并将其保存在变量中的方法
- powershell - 如何在 Powershell 脚本的非 Powershell 命令中使用此变量?
- scala - 使用 Scala 从 Apache Spark 中的 MySQL 读取时抛出 NullPointerException
- sql - SQL Server Computed Column:如何将其设置为 NOT NULL,无需持久性
- laravel-5 - laravel 哎呀,好像出了点问题
- travis-ci - Travis - 在 sh 脚本中执行 bower 失败
- reactjs - 如何通过更改 React-Native 中的状态从一个图像过渡到另一个图像
- java - 为什么 Spark 驱动程序在 parquet 上运行 SQL 时缓存了这么多 hadoop 定位文件状态