moodle.sty 不会包含 base64 代码

moodle.sty 不会包含 base64 代码

这个问题与这里的问题非常相似:moodle.sty 不会在 xml 输出文件中插入图形(虽然我是新用户,无法对原始问题发表评论)。我使用 Windows、MiKTeX(编辑:这是错误的,实际上是 TeX Live 2018)和 Texmaker,我想在 Moodle 中为预科微积分课程高效地创建测验。我对 LaTeX 还很陌生,只用了一年。

我目前正在尝试使用与 .tex 文件位于同一目录中的 .png 图形。当我运行 PDFLaTeX 时,我收到以下警告“Package ifplatform 警告:shell escape 已禁用,因此我只能检测 \ifwindows”

警告输出“包 ifplatform 警告:shell 转义已被禁用,因此我只能检测到 \ifwindows”

这是在调整 PDFLaTeX 的配置以包含 --shell-escape=true 之后,正如 Gustavo 在原始帖子中所做的那样:

PDFLaTeX 的配置包括 --shell-escape=true

作为参考,以下是我认为显示 moodle.sty 如何管理图形的日志部分:

<map1.pdf, id=1, 361.35pt x 216.81pt>
File: map1.pdf Graphic file (type pdf)
<use map1.pdf>
Package pdftex.def Info: map1.pdf  used on input line 29.
(pdftex.def)             Requested size: 170.71652pt x 102.43002pt.
LaTeX Font Info:    Try loading font information for U+msa on input line 29.

(c:/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info:    Try loading font information for U+msb on input line 29.

(c:/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
moodle.sty: Processing \includegraphics[width=6cm]{map1.pdf} for HTML...
moodle.sty: Converting 'map1.pdf' to PNG...
command is: convert map1.pdf -resize 243 map1.pdf.png
runsystem(convert map1.pdf -resize 243 map1.pdf.png)...executed.

command is: openssl enc -base64 -in map1.pdf.png -out map1.pdf.enc
runsystem(openssl enc -base64 -in map1.pdf.png -out map1.pdf.enc)...executed.

command is: openssl enc -base64 -in map1.pdf.png -out map1.pdf.enc
moodle.sty: Reading base64 file 'map1.pdf.enc'...
moodle.sty: <IMG> tag inserted.
[1

{c:/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./map1.pdf>]
(./circles.aux) ) 

最后,这是 .xml 中解码后的 base64 图像所在的部分:

  <questiontext format="html">
    <text><![CDATA[<p>Which equation describes the following map: <BR/> <IMG width=243 SRC="data:image/png;base64,"> </p>]]></text>
  </questiontext>

有人能看到我遗漏了什么吗?

我在日志中注意到的唯一另一件事是:

(c:/texlive/2018/texmf-dist/tex/latex/tools/shellesc.sty
Package: shellesc 2016/06/07 v0.02a unified shell escape interface for LaTeX
Package shellesc Info: Restricted shell escape enabled on input line 69.

谢谢你的时间,

弗雷泽

PS 如果我手动将 .png 转换为 base64 并将其插入到 .xml 文件中,我可以将其上传到 Moodle,但我想使用 gnuplot、LaTeX 和 Moodle 高效地制作大量问题库


感谢@Ulrike Fischer,这是完整的 .tex 文件

\documentclass[12pt]{article}
\usepackage{moodle}
\usepackage{graphicx}
\input{moodleshow.tex}

\begin{document}

\begin{quiz}{Point form Circles}
  \begin{multi}[shuffle=true]{Circle Equation}
    Which equation describes the following map: \\
    \includegraphics[width=6cm]{map1.pdf}   
    \item* $(x + 1)^2 + (y-3)^2 = 4$
    \item $(x-1)^2 + (y + 3)^2 = 4$
    \item $(x-1)^2 + (y-3)^2 = 4$
    \item $(x + 1)^2 + (y + 3)^2 = 4$
  \end{multi}
\end{quiz}

\end{document}

@Rmano 注意,这是使用 ImageMagick 手动转换后加密 .png 的结果:

成功在后台手动使用正确的 base64 代码加密


更新:瞬时消息

这很奇怪......错误“'openssl'未被识别为内部或外部命令,可操作程序或批处理文件。”仅在 pdfLaTeX 运行时出现(我必须在正确的时间点击“PrntScrn”才能得到它;之后它只是显示“未检测到 LaTeX 错误!”)

‘openssl’ 不被识别为内部或外部命令,也不是可运行程序或批处理文件。


更新:magick 通过 openssl cmd 提示进行转换。

再次感谢你们两位。以下是我运行pdflatex -shell-escape circles.texOpenSSL 命令提示符时得到的结果,以及日志的最后一部分内容:

OpenSSL cmd 输出与 .log 文件


已解决:感谢@UlrikeFischer 和@Rmano 解决了这个问题!\imagemagickcommand{magick convert}通过“pdflatex -shell-escape file.tex”通过 openSSL 包含并运行 .tex 文件,一切正常。

答案1

我不是 MikTeX 专家(并且您拥有的日志来自 TeXLive,而不是 miktex),但是:

Package ifplatform Warning:shell escape is disabled, so I can only detect \ifwindows
moodle.sty: Processing \includegraphics[width=6cm]{map1} for HTML...
moodle.sty: Converting 'map1' to PNG...
runsystem(convert map1 -resize 243 map1.png)...disabled (restricted).

moodle.sty: Converting 'map1.png' to base64...
runsystem(openssl enc -base64 -in map1.png -out map1.enc)...disabled (restricte
d).

告诉您 shell 转义未启用。

如果你查看日志文件的开头,你应该看到

[romano:~/education … icosGIT/E-F2_19-20] master 7m22s ± pdflatex --shell-escape=true
pdflatex: option '--shell-escape' doesn't allow an argument
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
**x

所以我认为问题在于这个选项是--shell-escape不是 --shell-escape=true

然后,您必须检查是否convert安装了 ImageMagick(用于)和 openssl(用于 base64 转换)。

最后,您应该使用图形文件的全名,包括扩展名。目前有补丁可以解决这个问题,但它们相当棘手...

相关内容