命令 repstopdf 执行成功,但是没有生成 pdf 文件

命令 repstopdf 执行成功,但是没有生成 pdf 文件

正如标题所述,我在将 eps 文件转换为 pdf 时遇到了问题。

最小示例:

\documentclass[letterpaper, 10pt, twoside]{article}

\usepackage{graphicx}
\usepackage{epstopdf}

\begin{document}
\includegraphics{images/USArmy.eps}
\end{document}

结果是:

! Package pdftex.def Error: File `images/USArmy-eps-converted-to.pdf' not foun
.

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

l.7 \includegraphics{images/USArmy.eps}

奇怪的是:日志表明它已成功生成所有内容:

Package epstopdf Info: Source file: <images/USArmy.eps>
(epstopdf)                    date: 2016-06-01 16:08:39
(epstopdf)                    size: 6728 bytes
(epstopdf)             Output file: <images/USArmy-eps-converted-to.pdf>
(epstopdf)             Command: <repstopdf --outfile=images/USArmy-eps-converte
d-to.pdf images/USArmy.eps>
(epstopdf)             \includegraphics on input line 7.
runsystem(repstopdf --outfile=images/USArmy-eps-converted-to.pdf images/USArmy.
eps)...executed safely (allowed).

Package epstopdf Info: Result file: <images/USArmy-eps-converted-to.pdf>.


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

果然,我在 images 目录中没有该.pdf文件。更令人困惑的是,如果我repstopdf手动运行,pdf 文件可以正常工作:

repstopdf --outfile=images/USArmy-eps-converted-to.pdf images/USArmy.eps

有什么建议吗?我也尝试将[outdir=./]和添加[outdir=./images/]到包中epstopdf作为包选项,结果相同。我正在使用昨天安装的最新 texlive 便携式版本。

编辑:复制步骤:

  1. 安装最小的 texlive 便携版c:\texepstopdf支持图形

  2. 将示例与任意eps文件复制到c:\work并打开命令提示符

  3. cd /d "c:\work"

  4. set PATH="C:\tex\bin\win32"

  5. pdflatex sample.tex

请注意,完整安装的 texlive 和 miktex 都可以正常工作,无需设置路径。这更奇怪了。

答案1

这里最大的问题是你提到的第四点!这是 Windows 的问题,不是 LaTeX 的问题!

正确安装 MiKTeX 后,您应该在命令行中C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;输入以下内容。MS-DOS 命令显示 Windows 环境变量的值。TeX Live 也是如此,但我不知道它需要的路径(我使用的是 MiKTeX)。对于您的问题,使用哪个 tex 发行版并不重要...pathpathpath

如果您想更改变量的设置,您必须使用set path=并添加所需的路径,以便 Windows 能够启动所需的程序,因为它可以找到二进制文件的路径...

但是您的命令set PATH=C:\tex\bin\win32会将旧设置全部重置为新设置。换句话说:所有旧路径设置都被删除了!

为了避免这种情况,您必须使用一个特殊的环境变量%PATH%,其中包含旧设置。请注意,多个路径以 分隔;。因此命令set PATH="C:\tex\bin\win32;%PATH% 添加最先被找到的新路径!考虑一下你需要的顺序:应该最先找到它(这样就行了)还是最后找到它(然后使用set PATH="%PATH%;C:\tex\bin\win32;)。

这样,您的 MiKTeX 系统就能够找到所有需要的文件(因为它可以遵循给定的路径),并且 Windows 能够启动所需的程序(因为它也可以遵循给定的路径)。

答案2

当我改变时,一切都开始正常工作:

 set PATH=C:\tex\bin\win32

 set PATH=C:\tex\bin\win32;%PATH%

不确定它试图调用 texlive 的哪些外部部分,但是它修复了这个问题。

相关内容