我有一堆 EPS 文件,我通过更改它们的边界框值来裁剪它们。我将它们放在 .tex 文档中并运行 Latex。现在,生成的 .dvi 文件可以正确显示裁剪后的图形。但是,如果我现在将 .dvi 转换为 .pdf,PDF 文件会显示未裁剪的图形,并且所有图形也会覆盖文本。我该如何处理这个问题?另外,我不能使用 pdflatex,否则它会给出所需的结果。
答案1
我可以在各种情况下重现该问题。一种解决方案似乎是使用trim
和clip
来自,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-dvipdfm
和latex-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
裁剪,较小,不重叠。
以表格形式显示,正确结果以粗体表示:
边界框 | 编译器 | 尺寸 | 庄稼 | 重叠 |
---|---|---|---|---|
仅限文件 | 乳胶 | 小的 | 不 | 不 |
韓國 | 小的 | 是的 | 是的 | |
德维普 | 大的 | 不 | 是的 | |
仅限页面 | 乳胶 | 大的 | 是的 | 不 |
韓國 | 大的 | 不 | 不 | |
德维普 | 大的 | 不 | 不 | |
两个都 | 乳胶 | 小的 | 是的 | 不 |
韓國 | 小的 | 是的 | 是的 | |
德维普 | 大的 | 不 | 是的 | |
修剪和剪辑 | 乳胶 | 小的 | 不 | 不 |
韓國 | 小的 | 是的 | 不 | |
德维普 | 小的 | 是的 | 不 |