在 epstopdf 中使用 pdfcrop?

在 epstopdf 中使用 pdfcrop?

目前,我的 epstopdf 无法正确地将 eps 转换为 pdf,原因是边界框(结束)错误epstopdf 不支持。但是,我打算在生成的 pdf 文件上使用 pdfcrop,这通常可以解决空白问题。但是,我必须手动修复每个生成的文件。有没有办法在 latex 中自动完成此操作?例如,在 epstopdf 之后立即自动调用 pdfcrop。我尝试在 epstopdf 中使用 DeclareGraphicsRule,但是没有作用。

请提供意见。非常感谢!:)

答案1

以下cropgraphicx/添加一个选项\includegraphics。如果启用,它会将 添加到的pdfcrop转换中。.eps.pdf

由于pdfcrop未添加到受限 shell 转义命令列表,因此需要完整的 shell 转义:--shell-escape(TeX Live)或--enable-write18(MiKTeX)。

如果文件已转换并更新,则更改选项crop不会产生任何影响。此外,该选项不会影响其他图像文件。

\usepackage{graphicx}
\usepackage{epstopdf}

\makeatletter
\newif\ifGin@pdfcrop
\Gin@pdfcroptrue
\define@key{Gin}{crop}[true]{%
  \csname Gin@pdfcrop#1\endcsname
}
\epstopdfDeclareGraphicsRule{.eps}{pdf}{.pdf}{%
  epstopdf --outfile=%
  \ifGin@pdfcrop
    tmp-image.pdf #1 &&
    pdfcrop tmp-image.pdf \OutputFile
  \else
    \OutputFile\space#1%
  \fi
}
\makeatother

使用示例:

\includegraphics{foo1}
\includegraphics[crop]{foo2}
\includegraphics[crop=false]{foo3}
\setkeys{Gin}{crop}
\setkeys{Gin}{crop=false}

相关内容