如何修复具有不正确边界框的 EPS?

如何修复具有不正确边界框的 EPS?

我想从 DVI 获取独立的 EPS 图形。可以使用批处理文件完成此过程,如下所示

latex %1
dvips -E %1 -o %1.eps

测试文件如下

\documentclass{minimal}
\usepackage{pstricks}


\begin{document}

\begin{pspicture}[showgrid=false](3,3)
\pscircle(1.5,1.5){1}
\end{pspicture}

\end{document}

但是生成的 EPS 边界框不正确。如何修复边界框?


更新:您还可以在以下位置找到更详细的解决方案如何使用 latex.exe 和 dvips 生成 EPS 而不是 PS

答案1

这似乎是因为 EPS(和 PDF)使用 PostScript 点(=1/72in,bp在 TeX 中称为(大点)),而不是普通的 TeX 点(1pt=1/72.27in)。EPS 将其大小(边界框)包含为整数,因此将大小向上舍入。您可以尝试添加高分辨率边界框标头,其中包含浮点数大小。但是,使用两者中的哪一个取决于所使用的工具。

您可以使用以下方法通过 Ghostscript 计算出这些标题:

gs -dNOPAUSE -dBATCH -q -sDEVICE=bbox 文件.eps

打印所需的 EPS 标题:

%%边界框: 0 0 34 31
%%高分辨率边界框:0.000000 0.000000 33.317999 30.005999

然后,您只需用更新的标题替换原始标题即可。可能有一些工具可以为您执行此操作(例如eps2eps),但这些工具实际上可能会更改字体设置等。我编写了自己的 Perl 脚本,名为fixbbonce,除了像上面那样调用并替换标题之外,不执行任何其他操作gs。(但我只是看到,HiResBoundingBox如果之前没有使用过,它就不会添加标题。)

作为解决方法,您可以确保您的图表bp不是使用绘制的pt,至少是使用外部矩形。

顺便说一句:我会改用\documentclass[border=0pt]{standalone}。这可以为您节省一些步骤(例如,页面样式已设置为空,...)。但是,我仍然在右侧和顶部看到白色边框。

答案2

另一个选择是保持图像的原样,并在将其放入文档时修剪掉多余的填充。例如,如果您的图片名为 MyPicture.eps,那么它可以通过 \includegraphics[trim= left bottom right top, clip=true]{MyPicture.eps} 您输入要修剪图形每边的量来进行修剪。例如,使用以下代码查看您的图片会发生什么:

\documentclass{minimal}
\usepackage{graphicx}
\begin{document}
\pagestyle{empty}
\includegraphics[width=2.50in, trim= 8 1 3 .5, clip=true]{MyPicture.eps}
\end{document}

通过调整修剪中的值,您可以控制图片的外观。请参阅http://www.andy-roberts.net/misc/latex/latextutorial5.html更多细节。

答案3

修复边界框问题的另一种“简单”方法是打开 GSVIEW(我相信您的机器里有这个程序,因为您使用 Latex。在 Windows 上它被称为“GSVIEW32.exe”。

当 gsview 打开时:

在 gsview 中加载您想要修复边界框的 eps 文件。

单击文件 > PS 转 EPS

勾选“自动计算边界框”

单击“是”。

导航到输出文件夹并重命名这个新创建的文件并在末尾附加“.eps”(重命名后,幽灵可能会出现在你的win机器中)。

您的边界框应该已经准备好了,它将导入到您的 Latex 文档中而不需要多余的空间。

相关内容