ファイル

ファイル

この質問には TeX への直接的な言及はありませんが、 を操作しているときpdflatex、特にeps出力をファイルに含めるときに問題が発生しました。また、この SE ではおよびファイル形式pdfに関する専門知識が最も多く期待されています。したがって、この質問がトピックに合っていることを願っています。MATLAB 出力の変換に関する他の質問をいくつか調査しましたが、どれも私が直面している特定の問題を扱っているようには見えませんでした。または、質問の詳細の量が非常に限られていました。epspdf

私の問題は、Acrobat Reader で一部のグラフィック要素が表示されないことです。テキストは問題なく表示され、要素が表示されるかどうかはエクスポート ルーチンとそのサイズに依存します。切り取りの問題ではないようです。他のビューアではこの問題は発生していません。そのため、次の解決策を試してみます。特定のEPSファイルはepstopdfでは変換できません、 しかし ...

... 私の質問は、なぜそれが起こるのかということです。これは Acrobat Reader のバグですか? epstopdfMATLAB のバグですか? それとも、そのツール チェーンは、問題を引き起こすことがわかっているため、避けたほうがよい機能を使用しているのでしょうか?

前述したように、私は問題を に依存しない問題にまで縮小しましたpdflatex

これは私が MATLAB でファイルを生成する方法です。このコードが誰にでも理解できるものであることを願っています。

for dim = 32 : 33
    im = rand(dim);
    suf = sprintf('_%d.eps', dim);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    saveas(gcf, ['saveas' suf]);
    system(['epstopdf saveas' suf]);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    print(gcf, ['print-d' suf], '-deps');
    system(['epstopdf print-d' suf]);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    print(gcf, ['print' suf]);
    system(['epstopdf print' suf]);
end

ファイル

saveas_32.pdfprint-d_32.pdf表示されているファイルは間違っています。これは次のようになります。

ここに画像の説明を入力してください

私の観察

  • すべての eps ファイルは GSview で正常に表示されます。
  • すべての PDF ファイルは Google Chrome で問題なく表示されます。
  • saveasファイルprint-dはどこでも同じに見えます。これは驚くことではありません。むしろ、ファイルに醜い境界線があり、手動で切り取る必要があるのは驚きですprint。私はそれをしたくありません。
  • その他のすべての(非print)PDF ファイルは、構成の点では非常に完璧に見えます。
  • すべての33PDF ファイルは Acrobat Reader で問題なく表示されます。
  • PDFprint_32ファイルは Acrobat Reader では問題なく表示されます (ただし、境界線が醜いです...)。
  • その他すべての ( 以外のprint) 32PDF ファイルには画像がありません。テキストは予想される位置にあります。
  • eps ファイルでは32、画像データは「パターン」として保存されます。
  • eps ファイルでは33、画像データは java.awt.image.BufferedImage として保存されます。

バージョン情報

GSView 5.0

GPL Ghostscript 9.20 (2016-09-26)

MATLAB Version: 9.1.0.441655 (R2016b)
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 14393)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 
64-Bit Server VM mixed mode

MATLAB's Ghostscript:
It seems that MATLAB does not ship with Ghostscript any longer. 
From pdf files saved with MATLAB, I find this:
Apache FOP Version 2.2.0-SNAPSHOT: PDFDocumentGraphics2D
I cannot see if this is used to generate eps output, too.

C:\>which epstopdf
/Program Files/MiKTeX 2.9/miktex/bin/x64/epstopdf

C:\>epstopdf --version
MiKTeX EPS-to-PDF Converter 2.9.6200 (MiKTeX 2.9.6210 64-bit)

From EPS files, which are converted using this tool:
MiKTeX GPL Ghostscript 9.19

Adobe Acrobat Reader DC 2015.023.20056

Chrome Version 55.0.2883.87 m (64-bit)

答え1

答えは簡単です。@samcarter のコメントが答えを見つけるきっかけとなりました。Adobe Reader のインストール時の表示設定でした。「ドキュメントの色の置き換え」をオンにしていました (この設定を一度いじったことを覚えています)。通常のドキュメントではそれほど変化はありませんが (もちろん画像は削除されません)、サンプルの 32x32 (またはそれ以下) 画像は削除されます。32x32 と 33x33 の違いは、後者はビットマップとしてエンコードされ (置き換えられません)、前者は図形のパターンとしてエンコードされ (置き換えられます) る点だと思います。これは、最初のエンコーダー (この場合は MATLAB) が行う区別で、eps ファイルでその違いがわかります。

そのオプションをオフにすると、画像が元に戻ります。

ここに画像の説明を入力してください

関連情報