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:同じ名前のフォルダが原因でリセットするときにエラーが発生するのを回避するために、C:\Program files (x86) 内の MikTeX という名前の削除されたフォルダを削除した後、コントロール パネルを使用してコンピュータに存在する MikTeX 全体を削除します (コンピュータを再起動せずにアンインストールは完了します)
ステップ2:以下のMikTeXを再インストールします(texstudio、Texmaker、viettexなどのプログラムエディタをインストールする必要はありません)。このエラーはMikTeXの基礎によるものです。
MikTeXファイルのダウンロードリンク: クリックここ
ダウンロード後、解凍します。MikTeX /setupディレクトリ内のsetup-2.8.3553.exeという名前のインストールファイル
ステップ3:通常どおりにファイル setup-2.8.3553.exe をインストールします。フルバージョンをインストールするには、必ず Complete MikTeX を選択してください。
使用時の注意:
注 1: パッケージを宣言する順序は、上から下の順に次のようになります。
\ usepackage {graphicx}
\ 使用パッケージ {epstopdf}
\ 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 コードで使用されるその他のフォント) をインストールする方法があります。