在 Rnw 中使用同位素乳胶包(r-exams)
Use isotope latex-package inside Rnw (r-exams)
我想在我的 .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 渲染。
如何正确加载和使用?
这个简短的回答是:没有办法(据我所知)使用 MathML 或 MathJax 呈现 \isotope
命令。另请参阅此讨论:
有两种可能的解决方法:
选项 1
像往常一样使用 pdfLaTeX 编译 \isotope
命令,提取图像(例如,在 SVG 矢量图中),并将其嵌入到练习中。所有这些都可以通过 tex2image()
函数方便地完成。
优点是可以使用习惯的isotope
包。但是,也有一些缺点: 渲染速度相当慢,尤其是如果您需要很多这样的 images.The 图形缩放可能与文本缩放不匹配,尤其是在放大 HTML 时。您需要的图形类型取决于输出类型(HTML 与 PDF)等
选项 2
与其使用专门的包,不如使用标准的 LaTeX 命令模拟输出。在这种情况下,使用来自 amsmath
的 \sideset
命令将是一种选择,因为 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}
我想在我的 .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 渲染。
如何正确加载和使用?
这个简短的回答是:没有办法(据我所知)使用 MathML 或 MathJax 呈现 \isotope
命令。另请参阅此讨论:
有两种可能的解决方法:
选项 1
像往常一样使用 pdfLaTeX 编译 \isotope
命令,提取图像(例如,在 SVG 矢量图中),并将其嵌入到练习中。所有这些都可以通过 tex2image()
函数方便地完成。
优点是可以使用习惯的isotope
包。但是,也有一些缺点: 渲染速度相当慢,尤其是如果您需要很多这样的 images.The 图形缩放可能与文本缩放不匹配,尤其是在放大 HTML 时。您需要的图形类型取决于输出类型(HTML 与 PDF)等
选项 2
与其使用专门的包,不如使用标准的 LaTeX 命令模拟输出。在这种情况下,使用来自 amsmath
的 \sideset
命令将是一种选择,因为 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}