Moodle 无法导入大于 100K 的 PNG

Moodle 无法导入大于 100K 的 PNG

这是一个奇怪的问题。如果我使用moodle.sty from https://gitlab.mattgk.myds.me/mattguer/moodle/includegraphics作为 PNG 图片,则任何大于 100K 的图片都无法导入。这是 Rebel 主题的问题。

但是,我可以在 Moolde 网站上使用他们的问题生成器,而对于大于 100K 的图片则没有任何问题。

查看 XML 文件后,我发现了区别:

moodle.sty 生成的文件如下所示

<text> 
      <![CDATA] QUESTION TEXT HERE <IMG width=555 SRC="data:image/png;base64, IMAGINE CODEs HERE">>
<\text>

由 moodle 问题生成器生成的问题如下所示。

<text> 
     <![CDATA] QUESTION TEXT HERE <img src="@@PLUGINFILE@@/F.PNG" alt="triangle" width="330" height="550" class="img-responsive atto_image_button_middle">>
<\text>

<file name="F.PNG" path="/" encoding="base64"> IMAGE CODEs HERE </file>}

主要的区别在于问题生成器对图像使用了单独的文件路径。

我正在尝试通过替换来修改 moodle.sty 代码

\edef\htmlize@imagetag{<IMG SRC="data:\TikzExportMIME;base64,\csname picbaselxiv@\the\numpicturesread\endcsname">}%

经过

\edef\htmlize@imagetag{<img src="@@PLUGINFILE@@/#2" alt="triangle" width="\moodle@graphics@width@pixels" height="\moodle@graphics@height@pixels" class="img-responsive atto_image_button_middle">
\writetomoodle{<file name="#2" path="/" encoding="base64"> \csname picbaselxiv@graphics@#2\endcsname </file>}%

但它不起作用。任何帮助都值得感激。

答案1

LaTeX 软件包的策略moodle是将图像直接嵌入到问题文本中,而不是嵌入到单独的文件中(使用<file>XML 标签)。这可能会不断发展,但目前的理念是避免依赖 Moodle 的文件管理系统(请参阅文档的第一部分)。因此,当问题字段包含大图像时,它会变得非常大。

显然,在某种程度上,Moodle 的反叛主题导入 XML 问题库时限制问题字段的大小(我缺乏有关此事的更多信息)。我甚至不相信<file>包含图像的方式会通过导入过程。

我没有针对您的问题的完美解决方案,但这里有一些我能想到的工作方向:

  1. 请与 Rebel 主题作者联系,以确定 100 KB 限制的起源以及如何覆盖它。
  2. 改变主题。
  3. 安装optipng并确保使用它来moodle优化图形,并且希望您的图形小于 100 KB。
  4. 使用标签手动调整 XML 文件的语法<file>
  5. 打开问题要求 的未来版本moodle包含一个选项,以触发<file>包含图像的方式。正如您的尝试所表明的那样,这并非易事。

相关内容