【问题标题】:Use isotope latex-package inside Rnw (r-exams)在 Rnw (r-exams) 中使用同位素乳胶包
【发布时间】:2020-05-13 10:06:10
【问题描述】:

我想在我的.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 渲染。

如何才能正确加载和使用?

【问题讨论】:

    标签: r latex moodle rnw r-exams


    【解决方案1】:

    这个简短的答案是:(据我所知)无法使用 MathML 或 MathJax 呈现 \isotope 命令。另请参阅此讨论:How to use a LaTeX package with R/exams?

    有两种可能的解决方法:

    选项 1

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

    优点是可以使用习惯的isotope包。但是,也有一些缺点: 渲染速度相当慢,尤其是当您需要许多这样的图像时。图形的缩放可能与文本的缩放不匹配,尤其是在放大 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}
    

    【讨论】:

    • 哦,明白了。据我了解,几乎不可能直接使用每个包。我觉得对吗?
    • 正确。至少我知道,使用 TtM 或 pandoc 没有标准或简单的方法。如果有足够的决心,您也许可以通过添加自定义脚本来扩展 pandoc 的功能,但我不建议去那里。
    • 谢谢。我认为在许多情况下option 1 将是解决方案(创建图像)。在这种情况下option 2.
    • 当其他选项不适用时,我们将tex2image() 作为“最后的手段”包含在包中。最突出的情况可能是包括 TikZ 图像,其中有一个方便的接口include_tikz() 可用(在后台调用tex2image())。 R/exams 中的“逻辑”和“自动机”练习中提供了示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多