Файлы

Файлы

Этот вопрос не содержит прямой ссылки на TeX; однако, я столкнулся с этой проблемой во время работы с pdflatex, в частности, при включении epsвывода в pdfфайл. Кроме того, я ожидаю наибольшей экспертизы относительно форматов файлов epsи pdfна этом SE. Поэтому я надеюсь, что этот вопрос по теме. Я исследовал несколько других вопросов, касающихся преобразования вывода MATLAB; однако, ни один из них, похоже, не имел дела с конкретной проблемой, с которой я столкнулся, или количество деталей в вопросе было крайне ограниченным.

Моя проблема: некоторые графические элементы не отображаются в Acrobat Reader. Текст отображается нормально, а то, отображаются ли элементы, зависит от процедуры экспорта и ее размера. Похоже, это не проблема обрезки. Я не вижу этой проблемы в других просмотрщиках. Поэтому я попробую решение изНекоторые файлы EPS не конвертируются с помощью epstopdf, но ...

... мой вопрос, почему это вообще происходит? Это ошибка в Acrobat Reader? В epstopdf? В MATLAB? Или эта цепочка инструментов использует функцию, которую мне лучше избегать, потому что она, как известно, вызывает проблемы?

Как я уже сказал, я свел проблему к такой, которая не зависит от 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.pdfи print-d_32.pdfфайлы, которые отображаются неправильно. Вот как это выглядит:

введите описание изображения здесь

Мои наблюдения

  • Все файлы eps отлично выглядят в GSview.
  • Все PDF-файлы отлично отображаются в Google Chrome.
  • saveasи print-dфайлы везде выглядят одинаково; это неудивительно; скорее удивительно, что printу файлов некрасивая граница, которую мне пришлось бы обрезать вручную; мне бы не хотелось этого делать.
  • Все остальные (не print) PDF-файлы выглядят довольно идеально с точки зрения композиции.
  • Все 33PDF-файлы отлично отображаются в Acrobat Reader.
  • PDF print_32-файл отлично выглядит в Acrobat Reader (но эта уродливая рамка...).
  • Во всех других (не print), 32pdf файлах отсутствует изображение. Текст находится в ожидаемом положении.
  • В 32файлах EPS данные изображения хранятся в виде «шаблона».
  • В 33файлах eps данные изображения хранятся как 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.

Отключение этой опции возвращает мои изображения!

введите описание изображения здесь

Связанный контент