Я сам сгенерировал файлы EPS. В файлах EPS я установил опцию \interpolate false
. Я включаю их в исходный код LaTeX с помощью includegraphics
TikZ (потому что я хочу, чтобы несколько из них были расположены довольно близко друг к другу).
Затем я выполняю стандартный набор шагов:
latex src.tex
dvips -Ppdf src.dvi
ps2pdf src.ps
В текстовом редакторе я вижу, что исходный файл PostScript сохранил полный текст файла EPS. Даже мои комментарии в нем (как и должно быть). Так что строка \interpolate false
также осталась. Когда я открываю исходный файл PostScript с помощью Evince (GNOME PDF viewer), действительно нет никакой интерполяции. Просто для проверки я установил \interpolate true
и снова открыл файл PostScript с помощью редактора и подтвердил, что теперь Evince действительно интерполирует изображение. Это показывает, что по крайней мере Evince понимает эту опцию.
Но когда я открываю src.pdf
файл, который был выведен из ps2pdf. Я вижу, что вывод интерполирован (сглажен) в любом случае! Я также открыл файл PDF с помощью текстового редактора и обнаружил, что остались только самые основные параметры изображения EPS (например, ширина или высота). \interpolate false
были удалены.
Из результатов выше я вижу, что проблема не в includegraphics
шагах LaTeX и даже не в моем просмотрщике PDF. Проблема в ps2pdf.
В своемдокументация, кажется, есть AntiAliasColorImages
, AntiAliasGrayImages
и AntiAliasMonoImages
, но затем в следующем тексте говорится:
(note 0) This parameter can be set and queried, but currently has no effect.
Итак, когда я запускаю следующую команду, разницы нет:
ps2pdf -dAntiAliasGrayImages=false -dAntiAliasMonoImages=false src.ps
Я хотел посмотреть, есть ли способ решить эту проблему. Для меня очень важно, чтобы в файле PDF не возникало сглаживания.
решение1
Значение по умолчанию для ключа /Interpolate
в словаре изображений PDF-файла — false
, см.Спецификация PDF, раздел8.9.5.3 Интерполяция изображения. Поэтому добавление /Interpolate false
только делает значение по умолчанию явным. Вероятно, сглаживание выполняется просмотрщиком PDF и его следует отключить там.
Обратите также внимание на примечание, которое идет вместе с описанием /Interpolate
:
Соответствующий требованиям Читатель может решить не реализовывать эту функцию PDF или использовать любую конкретную реализацию интерполяции по своему усмотрению.
Тест/Interpolate
Драйвер pdftex.def
для пакета graphics
поддерживает логический ключ interpolate
, который сопоставляет его настройку с ключом /Interpolate
в словаре изображений. Значение по умолчанию (false) и включенный ключ показывают ожидаемые результаты с этимизображениев AR9 или xpdf 3.03 или evince 3.4.0:
\documentclass{article}
\pagestyle{empty}
\usepackage{graphicx}
\begin{document}
\centering
\includegraphics[width=.48\linewidth]{uJ9k7.png}\hfill
\includegraphics[width=.48\linewidth, interpolate]{uJ9k7.png}
\end{document}