我观察到一种非常奇怪的行为PDFlatex
。
我最近使用 beamer 创建了一个演示文稿。最后一次编译(使用PDFlatex
)是在 2015 年 4 月 9 日完成的。今天(2015 年 7 月),我想重复使用同一个演示文稿,但当我尝试编译它时,却无法正常工作。
问题出在我拥有的 .eps 格式的图像不再转换为 .pdf 格式(就像之前自动完成的那样)。我使用 Ubuntu 和 kile 作为 Tex 软件。在 kile 中,我已恢复编译的默认选项,但没有成功。我知道我可以添加选项,例如--shell-escape
,也许它有效,我没有尝试。但是,由于它之前没有任何选项就可以工作,所以我想了解为什么我现在遇到问题。我还想补充一点,我的图像与我的文件位于同一个文件夹中.tex
。
也许它来自 ubuntu 的更新???有没有人遇到过同样的问题?
答案1
也许下面的列表有助于确定问题所在。
转换 EPS 文件的先决条件pdflatex
:
- EPS 文件必须存在并且必须被图形包找到。
- 有效的 ghostscript 安装,尤其是 ghostscript 必须能够成功地将 EPS 文件转换为 PDF。
- 程序
epstopdf
/repstopdf
是用于调用 ghostscript 的包装器,用于处理边界框。 graphics.cfg
,用于加载软件包epstopdf-base
(当 shell escape 已打开时)。现在 TeX Live 和 MiKTeX 都是这种情况。必须打开受限 shell 逃逸(或不受限 shell 逃逸)。可以通过命令行选项启用。在 TeX Live 中,可以在配置文件中进行配置
texmf.cnf
:% Enable system commands via \write18{...}. When enabled fully (set to % t), obviously insecure. When enabled partially (set to p), only the % commands listed in shell_escape_commands are allowed. Although this % is not fully secure either, it is much better, and so useful that we % enable it for everything but bare tex. shell_escape = p
受限 shell 逃逸通常是默认设置。
当使用受限 shell 转义时,则
repstopdf
需要位于允许运行的程序列表中。示例来自texmf.cnf
:% The programs listed here are as safe as any we know: they either do % not write any output files, respect openout_any, or have hard-coded % restrictions similar or higher to openout_any=p. They also have no % features to invoke arbitrary other programs, and no known exploitable % bugs. All to the best of our knowledge. They also have practical use % for being called from TeX. % shell_escape_commands = \ bibtex,bibtex8,\ extractbb,\ kpsewhich,\ makeindex,\ mpost,\ repstopdf,\
答案2
看来现在我必须添加
\usepackage{epstopdf}
从 eps 到 pdf 的转换。
此外,我必须使用--shell-escape
本文中解释的选项进行编译TeXLive 2011:pdfLaTeX 不会将子目录中的 eps 文件的 eps 转换为 pdf。
有人知道为什么我现在需要添加这些包吗?以前(3 个月前)没有它们也可以正常工作。