1

我想在我的文件中加载和使用同位素包:.Rnw

\exname{foo}
\extype{schoice}
\exsolution{0001}
\usepackage{isotope}
\begin{question}
  Foo \isotope[A][Z]{H}\ bar
  \begin{answerlist}
    \item a
    \item b
    \item c
    \item d
  \end{answerlist}
\end{question}

但是当我将它渲染到 Moodle 的 XML( exams2moodle) 中时,它会\isotope消失并只出现Foo bar。我正在使用 MathML 渲染。

如何正确加载和使用?

4

1 回答 1

1

这个简短的答案是:(据我所知)无法\isotope使用 MathML 或 MathJax 呈现命令。另请参阅此讨论:如何在 R/exams 中使用 LaTeX 包?

有两种可能的解决方法:

选项1

像往常一样使用 pdfLaTeX编译\isotope命令,提取图像(例如,在 SVG 矢量图形中),并将其嵌入到练习中。所有这些都可以通过该tex2image()功能方便地完成。

好处是你可以使用isotope你习惯的包。但是,也有一些缺点: 渲染速度相当慢,尤其是当您需要许多这样的图像时。图形的缩放可能与文本的缩放不匹配,尤其是在放大 HTML 时。您需要的图形类型取决于输出类型(HTML 与 PDF)等。

选项 2

与其使用专门的软件包,不如使用标准的 LaTeX 命令模拟输出。在这种情况下,使用\sideset命令 fromamsmath将是一种选择,因为该amsmath软件包受 MathJax 支持(但不在 MathML 转换器中)。缺点:LaTeX 代码稍微麻烦一些。优点:非常快,可以在 HTML 中缩放,也可以在 PDF 中使用。因此,我会推荐选项 2。

例子

以下是您的foo.Rnw文件的改编代码。这可以通过以下方式呈现为 HTML:

exams2html("foo.Rnw", converter = "pandoc-mathjax")

这也是当前版本的 R/exams 使用的转换器exams2moodle()

<<echo=FALSE, results=hide>>=
tex2image("\\isotope[A][Z]{H}", packages = "isotope",
  name = "iso_AZH", format = "svg", dir = ".")
@

\begin{question}
Option 1: \includegraphics{iso_AZH.svg}

Option 2: $\sideset{_Z^A}{}H$
\begin{answerlist}
  \item a
  \item b
  \item c
  \item d
\end{answerlist}
\end{question}

\exname{foo}
\extype{schoice}
\exsolution{0001}
于 2020-05-13T19:32:50.500 回答