这个问题与这里的问题非常相似:moodle.sty 不会在 xml 输出文件中插入图形(虽然我是新用户,无法对原始问题发表评论)。我使用 Windows、MiKTeX(编辑:这是错误的,实际上是 TeX Live 2018)和 Texmaker,我想在 Moodle 中为预科微积分课程高效地创建测验。我对 LaTeX 还很陌生,只用了一年。
我目前正在尝试使用与 .tex 文件位于同一目录中的 .png 图形。当我运行 PDFLaTeX 时,我收到以下警告“Package ifplatform 警告:shell escape 已禁用,因此我只能检测 \ifwindows”
这是在调整 PDFLaTeX 的配置以包含 --shell-escape=true 之后,正如 Gustavo 在原始帖子中所做的那样:
作为参考,以下是我认为显示 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 的结果:
更新:瞬时消息
这很奇怪......错误“'openssl'未被识别为内部或外部命令,可操作程序或批处理文件。”仅在 pdfLaTeX 运行时出现(我必须在正确的时间点击“PrntScrn”才能得到它;之后它只是显示“未检测到 LaTeX 错误!”)
更新:magick 通过 openssl cmd 提示进行转换。
再次感谢你们两位。以下是我运行pdflatex -shell-escape circles.tex
OpenSSL 命令提示符时得到的结果,以及日志的最后一部分内容:
已解决:感谢@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 转换)。
最后,您应该使用图形文件的全名,包括扩展名。目前有补丁可以解决这个问题,但它们相当棘手...