pdflatex

pdflatex

这个问题可能很愚蠢,但我对 latex 还不熟悉,找不到可能的解决方案。我正在 overleaf 中制作 latex 文档,必须使用图表,因此我尝试使用 graphicx 包将 .MP 文件包含在 latex 文件中,该文档使用 pdflatex 编译,代码如下:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
    \includegraphics{figure.mp}
\end{document}

当我运行它时出现以下错误:

! LaTeX Error: Unknown graphics extension: .mp.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.4     \includegraphics{figure.mp}
                                   
Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.

而且我无法找到在 overleaf 中将 .mp 文件转换为 .mps 的方法,因为没有 shell,至少我找不到 shell。另外,请给出将 .mp 文件转换为 .mps 的正确方法

答案1

这是可行的。所需的代码/包取决于您使用 pdflatex 还是 lualatex 作为Overleaf 项目的编译器

假设我们正在处理arrows.mp以下内容:

beginfig(1);

z1=(0,0);
z2=(10mm,10mm);

drawarrow(z1--z2);
label.ulft(btex $A$ etex, .5[z1,z2]);

endfig;

bye

pdflatex

\documentclass{article}
\usepackage{graphicx}
\DeclareGraphicsRule{*}{mps}{*}{}

\begin{document}
MetaPost drawing coming up

\includegraphics{arrows.1}

\end{document}

metapost + pdflatex


路拉泰克斯

\documentclass{article}
\usepackage{luatex85}
\usepackage{luamplib}
\mplibverbatim{enable}
\begin{document}

MetaPost drawing coming up

\begin{mplibcode}
\input arrows.mp
\end{mplibcode}

\end{document}

正如 @Thruston 指出的那样,您实际上可以在\begin{mplibcode}...\end{mplibcode}使用时直接粘贴 MetaPost 代码luamplib。无需创建单独的.mp文件并使用\input

在此处输入图片描述

相关内容