metapost 和 pdflatex

metapost 和 pdflatex

我试图在使用编译的 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.mpsfigs-2.mps。以 结尾的文件mps可以通过提供全名轻松地包含在 LaTeX 文档中,\includegraphics例如

\includegraphics{figs-1.mps}

这可以与 一起使用latex,也可以pdflatex不与 一起使用\DeclareGraphicsRule。请参阅MetaPost 手册和 Keith Reckdahl 的在 LaTeX 和 pdfLaTeX 中使用导入的图形为什么这样做有效。

相关内容