![寻找更好的工作流程来获取裁剪的 PDF 和 EPS 图形 - 第 1 阶段](https://linux22.com/image/238441/%E5%AF%BB%E6%89%BE%E6%9B%B4%E5%A5%BD%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E6%9D%A5%E8%8E%B7%E5%8F%96%E8%A3%81%E5%89%AA%E7%9A%84%20PDF%20%E5%92%8C%20EPS%20%E5%9B%BE%E5%BD%A2%20-%20%E7%AC%AC%201%20%E9%98%B6%E6%AE%B5.png)
我正在使用 TeX Live 2010。由于过去发现了很多问题,我不再使用 MikTeX 了。
输入文件:
gridon.tex:
% gridon.tex
\documentclass{minimal}
\usepackage{pstricks}
\pagestyle{empty}
\begin{document}
\begin{pspicture}[showgrid=true](3,3)
\pscircle(1.5,1.5){1}
\rput[tr](3,3){3}
\end{pspicture}
\end{document}
gridoff.tex:
% gridoff.tex
\documentclass{minimal}
\usepackage{pstricks}
\pagestyle{empty}
\begin{document}
\begin{pspicture}[showgrid=false](3,3)
\pscircle(1.5,1.5){1}
\rput[tr](3,3){3}
\end{pspicture}
\end{document}
主要.tex:
% main.tex
\documentclass{minimal}
\usepackage[hiresbb]{graphicx}
\begin{document}
\includegraphics[scale=2]{gridon}
\vspace{5mm}
\includegraphics[scale=2]{gridoff}
\end{document}
方法:
方法A.bat:
回音关闭 乳胶 %1 dvips %1 ps2pdf%1.ps pdfcrop --雇用 %1 pdftops-eps%1-crop.pdf
方法B.bat:
回音关闭 乳胶 %1 dvips %1-E-o %1.eps epstool --copy --bbox %1.eps %1-crop.eps epstopdf --hires %1-crop.eps
结果:
答案1
我推荐方法 A,因为 EPS 文件通常会小得多。
您注意到方法 A 的裁剪效果“不好”。原因很微妙:您使用 pstricks 生成的 PDF 中用于标记网格的字体(例如数字“3”)是 Helvetica,而且不是嵌入在 PDF 中。因此 ghostscript 和 adobe reader 必须使用替代字体。大多数查看器(包括许多基于 ghostscript 的查看器,还有 xpdf)将使用 Helvetica 版本。Adobe 的查看器将替代 ArialMT(至少在 Windows 上),它的形状略有不同,因此会被截断。您可以在“文档属性”对话框的“字体”选项卡上使用 Adobe reader 检查这一点。您可以通过生成嵌入字体的文件来解决此问题。一种方法是将方法 A 更改为使用ps2pdf -dPDFSETTINGS#/prepress %1.ps %1.pdf
。
为什么方法 B 似乎更胜一筹?实际上,我一度感到很困惑,因为在 Ubuntu 上,这两种方法确实会产生相同的边界框。这是意料之中的,因为 pdfcrop 和 epstool 都用于gs -sDEVICE=bbox
生成它。那么你为什么会看到差异呢?好吧,我发现 miktex 版本的 epstopdf 有一个错误:它将边界框四舍五入为整数点数。在这个特殊情况下这具有取消剪辑的效果,但总的来说,它可能会使剪辑更糟。我明天会针对 miktex 提交一个错误,但与此同时,如果您使用 miktex,这也是首选方法 A 的另一个原因。(miktex 版本的 epstopdf 是用 C 语言重新实现的无错误的原始 perl 脚本)。