禁用 ps2pdf 中的抗鋸齒功能

禁用 ps2pdf 中的抗鋸齒功能

我自己產生了 EPS 檔案。在 EPS 檔案中,我設定了該\interpolate false選項。我將它們包含在 TikZ 內的 LaTeX 原始程式碼中includegraphics(因為我希望它們中的幾個位置彼此非常接近。)

然後我運行標準步驟集:

latex src.tex
dvips -Ppdf src.dvi
ps2pdf src.ps

在文字編輯器中,我看到 PostScript 原始檔保留了完整的 EPS 檔案文字。甚至我在其中的評論(理應如此)。所以這條\interpolate false線也保留了下來。當我用 Evince(GNOME pdf 檢視器)開啟 PostScript 原始碼時,確實沒有插值。只是為了進行檢查,我使用編輯器設定\interpolate true並重新打開 PostScript 文件,並確認現在 Evince 確實對圖像進行了插值。這說明至少Evince理解這個選項。

但是當我打開src.pdfps2pdf 輸出的檔案時。我發現輸出在任何情況下都是經過插值(抗鋸齒)的!我還用文字編輯器開啟了 PDF 文件,發現只保留了 EPS 圖像最基本的參數(如寬度或高度)。\interpolate false已刪除。

從上面的結果來看,我發現問題不在於includegraphics任何 LaTeX 步驟,甚至不在於我的 pdf 檢視器。它是 ps2pdf 格式的。

在其文件,它似乎有AntiAliasColorImagesAntiAliasGrayImagesAntiAliasMonoImages,但在下面它說:

(note 0) This parameter can be set and queried, but currently has no effect. 

因此,當我運行以下命令時,沒有任何區別:

ps2pdf -dAntiAliasGrayImages=false -dAntiAliasMonoImages=false src.ps

我想看看是否有辦法解決這個問題。 PDF 文件中不會出現抗鋸齒現象,這對我來說非常重要。

答案1

/InterpolatePDF 檔案圖像字典中鍵的預設值為false,請參閱PDF規格, 部分8.9.5.3 影像插值。因此添加/Interpolate false只會使預設值明確化。抗鋸齒功能很可能是由 PDF 檢視器完成的,應該在那裡將其關閉。

另請注意以下說明中附帶的註釋/Interpolate

符合要求的讀者可以選擇不實現 PDF 的此功能,或者可以使用其希望的任何特定插值實現。

測試/Interpolate

pdftex.defpackage 的驅動程式graphics支援 boolean key ,它將其設定對應到映像字典中的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}

結果

相關內容