这个问题可能很愚蠢,但我对 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}
路拉泰克斯
\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
。