使用 epstopdf 時出錯

使用 epstopdf 時出錯

我希望包括從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 

我嘗試了克里斯蒂安·申克的建議。命令是

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檔案下載連結:點擊這裡

下載後,解壓縮。 MikTeX /setup 目錄中名為 setup-2.8.3553.exe 的安裝文件

步驟3:像往常一樣安裝檔案setup-2.8.3553.exe,記得勾選選擇Complete MikTeX來安裝完整版本。

使用時注意:

註1:申報包裹訂購的訂單由上至下順序如下:

  1. \ usepackage {graphicx}

  2. \ usepackage {epstopdf}

  3. \ usepackage {子圖}

注意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 程式碼使用的任何其他字體)。

相關內容