我试图在使用编译的 TeX 文档中使用 metapost 创建的图形pdflatex
,但遇到了一些问题。我按照建议做了这里,但是失败了!
我的代码是这样的:
\documentclass[10pt]{article}
\usepackage{graphics}
\begin{document}
\includegraphics{figures/TryMetaPost.1}
\end{document}
使用普通的latex
我没有问题,但是pdflatex
我得到了:
LaTeX Error: Unknown graphics extension: .1
我也尝试过.mps
,在这种情况下我有(与pdflatex
)
Cannot convert figures/TryMetaPost1.mps from MPS to PDF
有人看到我的错误吗?
答案1
第一条消息只是意味着 pdfLaTeX 不知道扩展名。您可以通过将扩展名更改为.mps
或声明规则来解决此问题:
\DeclareGraphicsRule{.1}{mps}{*}{}
第二条消息更成问题:它表明 pdflatex 在转换 mps 时出现问题。这意味着要么是 mps 本身坏了,要么是你的系统中有什么东西无法正常工作。你能显示有问题的 mps 和日志文件吗?
答案2
添加\DeclareGraphicsRule{.1}{mps}{*}{}
到tex
文件适用于pdflatex
,这对于这个问题的主题来说是可以的。但它有破坏 的副作用latex
,因为mps
不是 的预定义文件扩展名latex
。为了避免这种情况,应该检查实际使用的 TeX 引擎,例如,
\usepackage{ifpdf}
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi
这MetaPost 手册不过,建议使用另一种方法。最近的 MetaPost 版本有一个文件名模板机制,可用于更改 MetaPost 输出文件名的格式。添加行
outputtemplate := "%j-%c.mps";
添加到 MetaPost 输入文件的前言中figs.mp
,使输出文件具有名称figs-1.mps
等figs-2.mps
。以 结尾的文件mps
可以通过提供全名轻松地包含在 LaTeX 文档中,\includegraphics
例如
\includegraphics{figs-1.mps}
这可以与 一起使用latex
,也可以pdflatex
不与 一起使用\DeclareGraphicsRule
。请参阅MetaPost 手册和 Keith Reckdahl 的在 LaTeX 和 pdfLaTeX 中使用导入的图形为什么这样做有效。