要将 MetaPost 图片包含在由 pdflatex 编译的 latex 文件中,我通常会执行以下操作
\usepackage[pdftex]{graphicx}
...
\includegraphics{filename-without-mps}
但这要求所有 metapost 输出都有扩展.mps
(即通常filenametemplate "%j-%c.mps";
很好 — 只需在源代码中添加该行即可.mp
。有没有办法将mps
图片与其通常的文件名一起包含(smth.1
、smth.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 图形的包吗?它叫做雇员。