我想在.Rnw
文件中加载和使用isotope package:
\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渲染。
如何正确加载和使用?
答案 0 :(得分:1)
这个简短的答案是:我无法使用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}