Lualatex:在 metapost 中使用 verbatimtex

Lualatex:在 metapost 中使用 verbatimtex

我想verbatimtex在 中使用metapost并编译它lualatex。后面是一小段代码。但失败了。我在 google 上搜索并verbatimtex在这里和那里添加了块,但没有成功。请帮忙。谢谢。

\RequirePackage{luatex85}
verbatimtex
%&latex
\documentclass{article}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\begin{document}
etex

\begin{mplibcode}

beginfig(1);
z0 = (0,0); z1 = (sqrt(3)*cm,0);
z2 = (sqrt(3)*cm,1cm);
draw z0--z1--z2--cycle;
label.bot(btex $\sqrt{3}$ etex, 1/2[z0,z1]);
label.rt(btex $\frac{1}{2}$ etex, 1/2[z1,z2]);
label.top(btex 1 etex, 1/2[z0,z2]);
endfig;
\end{mplibcode}

verbatimtex
\end{document}
etex
end;

答案1

MetaPost 已集成在 Lua(La)TeX 中,因此在大多数情况下verbatimtex… etex是无用的。不过,如果您希望图片居中、向左或向右对齐等等,您可能需要使用它,在每张图片前插入执行此操作\leavevmode所需的命令。

请参阅下文,以及luamplib 文档了解更多详细信息,尤其是第 2 页。

%\RequirePackage{luatex85} % Needed mostly for the standalone class
\documentclass{article}
\usepackage{luamplib}
    %\mplibtextextlabel{enable} % Not needed here since you use btex… etex
    \everymplib{verbatimtex \leavevmode etex; beginfig(1);}
    \everyendmplib{endfig;}
\begin{document}
Here is a picture:
\begin{center}
  \begin{mplibcode}
    z0 = (0,0); z1 = (sqrt(3)*cm,0);
    z2 = (sqrt(3)*cm,1cm);
    draw z0--z1--z2--cycle;
    label.bot(btex $\sqrt{3}$ etex, 1/2[z0,z1]);
    label.rt(btex $\frac{1}{2}$ etex, 1/2[z1,z2]);
    label.top(btex 1 etex, 1/2[z0,z2]);
  \end{mplibcode}
\end{center}
\end{document}

在此处输入图片描述

相关内容