我想尝试使用 pdfLaTeX 生成 PDF,但我的图片都是 EPS。我还希望图片保持可缩放性。
我曾尝试使用 ImageMagik 的convert
:
convert file.eps file.pdf
但效果看起来不太好,经过几次放大后,图像变得颗粒状。
我尝试了epstopdf file.eps
,但收到以下错误消息:
Error: /undefined in II*
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1878 1 3 %oparray_pop 1877 1 3 %oparray_pop --nostringval-- 1861 1 3 %oparray_pop 1755 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1160/1684(ro)(G)-- --dict:1/20(G)-- --dict:89/200(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 8.71: Unrecoverable error, exit code 1
这实际上并没有告诉我任何事。
有人知道将 EPS 转换为 PDF 的其他方法吗?(我有大约 200 张图片,所以命令行更好)
答案1
epstopdf
当然,这就是epstopdf
包所依赖的。(如果您使用了包,则无需转换。)
或者这就是你的意思eps2pdf
?我从未发现有任何问题。
我想你也可以尝试Inkscape;我认为它确实有一些批处理功能,甚至可能有用于转换的命令行选项,即使它主要是一个 GUI 应用程序。
编辑:根据inkscape 手册,你可以这样做:
inkscape --export-pdf=output.pdf input.eps
EDIT2:实际上,您可能需要在命令行上使用 SVG 输入进行 inkscape 导出;我会对此进行进一步研究。不过,您可以通过 GUI 进行操作。
答案2
您可以使用ps2pdf
选项来抑制重采样和有损压缩图像-dAutoFilterColorImages=false
和-dColorImageFilter=/FlateEncode
。(在 Windows 上,用 替换=
)#
。
ps2pdf
与 不同,可能不会保留相同的边界框epstopdf
,但您可以通过从中复制逻辑来解决这个问题epstopdf
(例如,编辑epstopdf.pl
以将这些选项添加到 ghostscript 命令行)或者使用 重新进行剪辑pdfcrop
。
答案3
我总是使用以下批处理文件
echo off
latex %1
del %1.log
del %1.aux
dvips %1 -E -o %1-crop.eps
del %1.dvi
epstool --copy --bbox %1-crop.eps %1.eps
del %1-crop.eps
epstopdf --hires %1.eps
在我的工作中编译一个例子:
% 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}
它运行没有问题。您需要的重要部件是
epstool --copy --bbox input.eps output.eps
epstopdf --hires output.eps
第一个调用 GhostScript 来附加高分辨率边界框。最后一个将 EPS 转换为具有高分辨率边界框的 PDF。