在 PDF 文档中渲染裁剪的 EPS 文件时出现问题

在 PDF 文档中渲染裁剪的 EPS 文件时出现问题

我有一堆 EPS 文件,我通过更改它们的边界框值来裁剪它们。我将它们放在 .tex 文档中并运行 Latex。现在,生成的 .dvi 文件可以正确显示裁剪后的图形。但是,如果我现在将 .dvi 转换为 .pdf,PDF 文件会显示未裁剪的图形,并且所有图形也会覆盖文本。我该如何处理这个问题?另外,我不能使用 pdflatex,否则它会给出所需的结果。

答案1

我可以在各种情况下重现该问题。一种解决方案似乎是使用trimclip来自,graphicx而不是直接在中修改边界框.eps

为了重现此效果,我在 Inkscape 中制作了一个简单的 eps 文件,其中包含一个带边框的五角星。生成的文件中的一些片段:

%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.15.10 (http://cairographics.org)
%%CreationDate: Thu Jul 30 14:45:16 2020
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%BoundingBox: 0 0 185 185
%%EndComments
%%BeginProlog
50 dict begin
/q { gsave } bind def
[...]
/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def
/cairo_image { image cairo_flush_ascii85_file } def
/cairo_imagemask { imagemask cairo_flush_ascii85_file } def
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 0 0 185 185
%%EndPageSetup
q 0 0 185 185 rectclip
1 0 0 -1 0 185 cm q
0 1 1 rg
[...]
102.664 181.711 m S Q
Q Q
showpage
%%Trailer
end
%%EOF

设置边界框的地方有两个,一个是文件,一个是页面。

我尝试将两个边界框分别更改为30 30 150 150,并以两种不同的方式进行编译:latex-dvipdfmlatex-dvips-ps2pdf

我还尝试使用原始边界框与修剪和剪辑选项graphicx\includegraphics[trim={30 30 35 35},clip]{originalfile}

代码:

\documentclass{article}
\usepackage{lipsum}
\usepackage{graphicx}
\begin{document}
\lipsum[1] \textbf{Only file bounding box:}
\includegraphics{staronlyfilebb}
\lipsum[2] \textbf{Only page bounding box:}
\includegraphics{staronlypagebb}
\lipsum[3] \textbf{Both bounding boxes:}
\includegraphics{starbothbb}
\lipsum[4] \texttt{graphicx} \textbf{trim and clip:}
\includegraphics[trim={30 30 35 35},clip]{staroriginal}
\lipsum[5]
\end{document}

DVI 文件中的结果:

在此处输入图片描述

所以:在 DVI 文件中,只有文件 BB 不裁剪,只有页面 BB 裁剪但很大,两个 BB 裁剪并且很小,graphicx不裁剪。

之后结果dvipdfm

在此处输入图片描述

因此:在 PDF 文件中dvipdfm,仅文件 BB 被裁剪,较小,但与文本重叠,仅页面 BB 不被裁剪,两个 BB 均被裁剪,较小,但与文本重叠,graphicx裁剪,较小,不重叠。

之后结果dvips-ps2pdf

在此处输入图片描述

因此:在来自的 PDF 文件中dvips-ps2pdf,只有文件 BB 不裁剪并且与文本重叠,只有页面 BB 不裁剪但不重叠,两个 BB 均不裁剪和重叠,graphicx裁剪,较小,不重叠。

以表格形式显示,正确结果以粗体表示:

边界框 编译器 尺寸 庄稼 重叠
仅限文件 乳胶 小的
韓國 小的 是的 是的
德维普 大的 是的
仅限页面 乳胶 大的 是的
韓國 大的
德维普 大的
两个都 乳胶 小的 是的
韓國 小的 是的 是的
德维普 大的 是的
修剪和剪辑 乳胶 小的
韓國 小的 是的
德维普 小的 是的

相关内容