![MetaPost:btex ... etex 是否支持任何 LaTeX 命令?](https://linux22.com/image/441963/MetaPost%EF%BC%9Abtex%20...%20etex%20%E6%98%AF%E5%90%A6%E6%94%AF%E6%8C%81%E4%BB%BB%E4%BD%95%20LaTeX%20%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我正在运行 MetaPost 示例如下:
beginfig(1);
label.(btex the \emph{sum} is $\sum\limits_{n=1}^{+\infty}a_n$ etex, (3cm, 3cm));
endfig;
end;
日志mpost main.mp
中有一条消息
! ! Unable to read mpx file.
l.2 label.(btex
the \emph{sum} is $\sum\limits_{n=1}^{+\infty}a_n$ etex, (3c...
没有\emph
命令时它可以工作,但有命令时会出现消息。我以为任何 LaTeX 命令都会在btex ... etex
环境中被接受...
答案1
问题似乎在于创建一个(不必要的).aux
文件。
这可能需要对 LaTeX 端进行一些干预。同时,添加\nofiles
似乎可以解决问题。\normalfont
对于此特定示例,也需要(如果您未在 中指定某些文档类)verbatimtex...etex
。
verbatimtex \nofiles etex;
prologues:=3;
beginfig(1);
label.(btex \normalfont the \emph{sum} is $\sum\limits_{n=1}^{+\infty}a_n$ etex, (3cm, 3cm));
endfig;
end;
(我还添加了prologues:=3
以便能够预览 PDF 文件)。
呼唤
> mpost -tex=latex vladimir.mp
> epstopdf vladimir.1
生产
例如,
erbatimtex \nofiles\documentclass{article}\usepackage{fourier} etex;
prologues:=3;
beginfig(1);
label.(btex the \emph{sum} is $\sum\limits_{n=1}^{+\infty}a_n$ etex, (3cm, 3cm));
endfig;
end;
将产生
答案2
如果您可以选择切换到lualatex
您的文档,那么 OP 示例将“按预期”工作。
\documentclass[border=5mm]{standalone}
\usepackage{fourier}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
label(btex the \emph{sum} is $\sum\limits_{n=1}^{+\infty}a_n$ etex, (3cm, 3cm));
endfig;
\end{mplibcode}
\end{document}
编译它以lualatex
直接获取此输出,无需特殊标志或选项:
该luamplib
包会自动将所有btex .... etex
标记传递到封闭的 LaTeX 环境,因此您可以选择所有相同的字体设置,并且可以使用所有相同的控制序列定义。有(一些)文档这里。