Этот вопрос не содержит прямой ссылки на 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-файлы выглядят довольно идеально с точки зрения композиции. - Все
33
PDF-файлы отлично отображаются в Acrobat Reader. - PDF
print_32
-файл отлично выглядит в Acrobat Reader (но эта уродливая рамка...). - Во всех других (не
print
),32
pdf файлах отсутствует изображение. Текст находится в ожидаемом положении. - В
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.
Отключение этой опции возвращает мои изображения!