我希望包含从 Matlab 图生成的 eps 图像(pdf 由 Matlab 生成为整页,因此是 eps),但是转换失败,留下空白的 pdf 图像。消息是:
MiKTeX GPL Ghostscript
9.25: Unrecoverable error, exit code 1
Sorry, but "MiKTeX EPS-to-PDF Converter" did not succeed. The log file hopefully contains the information to get MiKTeX going again: C:\Users\Andrey\AppData\Local\MiKTeX\2.9\miktex\log\epstopdf.log
日志文件的内容
2019-12-03 06:29:05,797+0100 INFO epstopdf - starting with command line: epstopdf --outfile=images/kkk-eps-converted-to.pdf images/kkk.eps
2019-12-03 06:29:06,456+0100 FATAL epstopdf - Invalid argument
2019-12-03 06:29:06,457+0100 FATAL epstopdf - Info:
2019-12-03 06:29:06,457+0100 FATAL epstopdf - Source: Libraries\MiKTeX\Core\Stream\FileStream.cpp
2019-12-03 06:29:06,457+0100 FATAL epstopdf - Line: 68
我最近安装并更新了 Miktex 并使用 LuaLatex 进行编译。
如果需要的话,这是 eps 的内容https://pastebin.com/1Rq86vVC
这是怎么回事?我不知道该怎么办。
更新
首先我想用--shell-ecape
(来自 TexStudio)进行编译
Process started: lualatex.exe --shell-escape -synctex=1 -interaction=nonstopmode
我尝试了 Christian Shenk 的建议。命令是
mgs.exe -q -sDEVICE=pdfwrite -dSAFER -dAutoRotatePages=/None -dPDFSETTINGS=/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=images/kkk-eps-converted-to.pdf - -c quit
我尝试在命令处理器中执行它。它创建了一个 0 字节的 pdf 文件并卡住了。
更新 2
我执行了
epstopdf --outfile=images/kkk-eps-converted-to.pdf images/kkk.eps
我确实得到了额外的信息
Error: /invalidfont in /findfont
Operand stack:
Helvetica-BoldOblique
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-
- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 2015 1 3 %oparray_pop 2014 1 3 %oparray_pop --nostringval-- 1998 1 3 %oparray_pop 1884 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 1967 1 3 %oparray_pop
Dictionary stack:
--dict:973/1684(ro)(G)-- --dict:0/20(G)-- --dict:123/200(L)--
Current allocation mode is local
我不知道该如何修复它。它提到了一些关于“Helvetica-BoldOblique”的内容,但图像并没有使用它,而是使用普通的 Helvetica。
答案1
- 关于
-n
选项
Christian 建议使用-n
选项来了解所使用的命令,例如
epstopdf -n --outfile=images/kkk-eps-converted-to.pdf images/kkk.eps
你得到的是
mgs.exe -q -sDEVICE=pdfwrite -dSAFER -dAutoRotatePages=/None -dPDFSETTINGS=/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=images/kkk-eps-converted-to.pdf - -c quit
并且由于等待输入文件/流而卡住了(这里吸取了教训:https://github.com/MiKTeX/miktex/issues/393#issuecomment-543080026)。
因此,跑步
mgs.exe -q -sDEVICE=pdfwrite -dSAFER -dAutoRotatePages=/None -dPDFSETTINGS=/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=images/kkk-eps-converted-to.pdf - -c quit < images/kkk.eps
会做。
Error: /invalidfont in /findfont
我猜你没有在 MiKTeX 中安装必要的字体。确保你安装了这里提到的所有软件包https://github.com/MiKTeX/miktex-packaging/issues/112安装并重试。
编辑:我在转换您的文件时没有遇到任何问题。然后我仅卸载了helvetic
软件包并得到了您得到的错误:
Error: /invalidfont in /findfont
Operand stack:
Helvetica-BoldOblique
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 2015 1 3 %oparray_pop 2014 1 3 %oparray_pop --nostringval-- 1998 1 3 %oparray_pop 1884 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 1967 1 3 %oparray_pop
Dictionary stack:
--dict:973/1684(ro)(G)-- --dict:0/20(G)-- --dict:123/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
MiKTeX GPL Ghostscript 9.25: Unrecoverable error, exit code 1
Sorry, but "MiKTeX EPS-to-PDF Converter" did not succeed.
The log file hopefully contains the information to get MiKTeX going again:
C:\Users\user\AppData\Local\MiKTeX\2.9\miktex\log\epstopdf.log
因此,丢失的helvetic
包裹是导致问题的根本原因。
我还创建了一个问题(实际上是一个可能的增强建议):https://github.com/MiKTeX/miktex/issues/429。
答案2
我解决了这个问题:
步骤1:使用控制面板删除计算机上的整个 MikTeX,删除 C:\ Program files (x86) 中名为 MikTeX 的已删除文件夹后,避免重置时因同名文件夹而出现错误(卸载完成,无需重新启动计算机)
第2步:下面重新安装MikTeX(不需要安装程序编辑器如texstudio,Texmaker,viettex,...),这个错误是由于基础MikTeX
MikTeX文件下载链接:点击这里
下载后解压,安装文件setup-2.8.3553.exe位于MikTeX/setup目录下
步骤3:照常安装文件setup-2.8.3553.exe,记得勾选选择Complete MikTeX来安装完整版本。
使用时注意事项:
注1:申报包裹的顺序按从上至下的顺序排列如下:
\ 使用包 {graphicx}
\ 使用包 {epstopdf}
\ 使用包 {子图}
注2:在运行TeX文件之前,请确保你已经删除了之前运行错误输出的损坏的PDF文件(只留下一个尾部的.eps图像文件)
版权:https://nhcan.wordpress.com/2020/04/05/loi-khi-bien-dich-file-latex-co-hinh-anh-dinh-dang-eps/
答案3
此问题是由于当前 MiKTeX 软件包的一个已知问题造成的。请参阅 https://github.com/MiKTeX/miktex-packaging/issues/112
对我来说可行的一个解决方法是使用 MiKTeX 控制台安装“helvetica”包(以及 Matlab 代码使用的任何其他字体)。