Epstopdf 无法编译 *.eps

Epstopdf 无法编译 *.eps

我使用 WinEdt + MikTex 2.8 工作,并且主要通过 PdfTexify 编译源代码。为了在此模式下编译 eps 图形,我使用了 epstopdf 包,但最近它停止工作了。这很奇怪,因为我记不起我在 WinEdt 的设置中更改了什么。为了消除后一种可能性,我重新安装了 WinEdt,我很确定 WinEdt 的设置现在是默认设置 - 例如,pdf 阅读器设置为 Acrobat(重新安装之前是 Sumatra)。但是,问题并没有消失 - 以下是文本:

[18]MiKTeX GPL Ghostscript 8.60: **** Could not open the file ../plots/contourML-eps-converted-to.pdf .
**** Unable to open the initial device, quitting.

LaTeX Warning: Reference `fig:cs1' on page 19 undefined on input line 1146.

! Package pdftex.def Error: File `../plots/contourML-eps-converted-to.pdf' not 
found.

See the pdftex.def package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.1156 ...=true,width=5cm]{../plots/contourML.eps}

? 

Process has been terminated ...

有人有想法吗,如何解决这个问题?

答案1

WinEdt 使用自己的算法来存储辅助文件,也就是说,它将所有辅助文件保存在一个名为的文件夹中TeXAux(除非您更改它,否则它是可自定义的),并使用该文件夹作为工作文件夹。

.tex通过TEXINPUTS添加主文件夹的环境变量可以找到放置在相对于主文件的文件夹中的文件。

./使用包含诸如或 之类的相对路径的问题../在于,在这些情况下,kpathsea 只会检查该文件是否存在。摘自 kpathsea 文档第 5.1 节(感谢大卫·卡莱尔为了这完整解释

以上所有情况的例外:如果被搜索的文件名是绝对的或明确相对的,即以/./或开头../,Kpathsea 只会检查该文件是否存在。

因此,当您指定文件时,您必须返回一个文件夹,就您而言:

\includegraphics{../../plots/contourML.eps}

代替:

\includegraphics{../plots/contourML.eps}

这应该可行...


附录

按照 Heiko 的建议,我可以说使其与 WinEdt(在 MiKTeX 和 TeX Live 中)一起工作的最佳方法是保留\includegraphics原来的行并将这些行添加到你的序言中:

\epstopdfsetup{outdir=./}
\graphicspath{{../}}

答案2

在 MiKteX 2.9 中,以下场景对我来说有效:

% test.tex
\documentclass{article}
\usepackage{graphicx}
\usepackage{epstopdf}
%\epstopdfsetup{outdir=texaux/}
\begin{document}
\includegraphics[width=.5\linewidth]{plots/contourML.eps}
\end{document}

文件,相对于当前目录:

test.tex
plots\contourML.eps
texaux\

pdflatex test生成:

test.aux
test.log
test.pdf
plots\contourML-eps-converted-to.pdf

pdflatex -output-directory=texaux test生成:

plots\contourML-eps-converted-to.pdf
texaux\test.aux
texaux\test.log
texaux\test.pdf

outdir包装选项epstopdf

epstopdf(可能由 自动加载graphics.cfg)支持选项outdir,其中可以指定转换文件的目录:

\usepackage{epstopdf}
\epstopdfsetup{outfile=texaux}

pdflatex test生成:

test.aux
test.log
test.pdf
texaux\contourML-eps-converted-to.pdf

pdflatex -output-directory=texaux test生成:

texaux\contourML-eps-converted-to.pdf
texaux\test.aux
texaux\test.log
texaux\test.pdf

相关内容