我想在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渲染。
如何正确加载和使用?
这个简短的答案是:我无法使用MathML或MathJax渲染\isotope
命令。另请参见此讨论:How to use a LaTeX package with R/exams?
有两种可能的解决方法:
照常使用pdfLaTeX编译\isotope
命令,提取图像(例如,在SVG矢量图形中),并将其嵌入到练习中。所有这些都可以通过tex2image()
功能方便地完成。
优点是您可以使用惯用的isotope
程序包。但是,有许多缺点:渲染速度很慢,尤其是在需要许多此类图像的情况下。图形的缩放比例可能与文本的缩放比例不匹配,尤其是在放大HTML时。您需要的图形类型取决于输出类型(HTML与PDF)等。
而不是使用专用软件包,而是使用标准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}