在Rnw(r-exams)中使用同位素乳胶包装

问题描述 投票:1回答:1

我想在isotope package文件中加载并使用.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渲染。

如何正确加载和使用?

r latex moodle rnw r-exams
1个回答
1
投票

这个简短的答案是:我无法使用MathML或MathJax渲染\isotope命令。另请参见此讨论:How to use a LaTeX package with R/exams?

有两种可能的解决方法:

选项1

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

优点是您可以使用惯用的isotope程序包。但是,有许多缺点:渲染速度很慢,尤其是在需要许多此类图像的情况下。图形的缩放比例可能与文本的缩放比例不匹配,尤其是在放大HTML时。您需要的图形类型取决于输出类型(HTML与PDF)等。

选项2

而不是使用专用软件包,而是使用标准LaTeX命令模拟输出。在这种情况下,使用\sideset中的amsmath命令将是一种选择,因为MathJax支持amsmath程序包(但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}
© www.soinside.com 2019 - 2024. All rights reserved.