PDFLaTeX 中的 MetaPost 图片

PDFLaTeX 中的 MetaPost 图片

要将 MetaPost 图片包含在由 pdflatex 编译的 latex 文件中,我通常会执行以下操作

\usepackage[pdftex]{graphicx}
...
\includegraphics{filename-without-mps}

但这要求所有 metapost 输出都有扩展.mps(即通常filenametemplate "%j-%c.mps";很好 — 只需在源代码中添加该行即可.mp。有没有办法将mps图片与其通常的文件名一起包含(smth.1smth.2等)?

更新:我通常需要用 PDFLaTeX 重新编译一些旧文件 — — 所以我需要一些在序言中添加几行但不需要更改的配方一切


我尝试发明一些 hack (针对 Windows,用于编译pdflatex -enable-write18):

\usepackage[pdftex]{graphics}
\DeclareGraphicsRule{.1}{pdf}{.1.pdf}{`copy #1 #1.eps && epstopdf #1.eps}
...
\includegraphics{smth.1}

确实生成了smth.1.pdf,但失败并出现错误

! Package pdftex.def Error: File `smth-1-converted-to.1.pdf' not found.

更新 2:问题已经得到解答,但也许有人知道如何让这个技巧发挥作用?

答案1

做就是了:

\DeclareGraphicsRule{.1}{mps}{*}{} 
\DeclareGraphicsRule{.2}{mps}{*}{} 
% etc. 

答案2

距离这个问题提出已经过去了将近五年。

使用最新版本的 Metapost,可以更改输出文件的默认命名方案:语句

outputtemplate := "%j-%c.mps";

将从文件name.mp. 生成名为 的文件name-1.mps等。这是更可取的,因为需要进一步的说明pdflatex,了解如何处理 MPS 文件。

在LuaLaTeX下,该luamplib包允许在文档中直接嵌入Metapost代码。

gmp在所有带有或软件包的引擎下,都可以实现相同的功能mpgraphics。 软件包emp也允许类似操作,但有一些限制。

答案3

你知道有一个用于在 LaTeX 中封装 metapost 图形的包吗?它叫做雇员

相关内容