尝试另一个示例时,我发现使用 metafun 格式(luatex 版本)时,箭头尖端不再填充。以下文档(使用 lualatex 进行编译)显示了该问题:
\documentclass{article}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
drawarrow (0,0)--(10,10);
endfig;
\end{mplibcode}
\mplibsetformat{metafun}
\begin{mplibcode}
beginfig(1);
drawarrow (0,0)--(10,10);
endfig;
\end{mplibcode}
\end{document}
我在 Windows 上使用 TeXlive 2016、2017 和 miktex 时遇到了这个问题。在 TeXlive 2015 中它可以正常工作。如果我将 metafun 文件从 复制texlive\2017\texmf-dist\metapost\context
到 texlive 2015,它也会失败。
有人可以重现该问题并知道其根源是什么吗?
编辑
我发现了一个有问题的定义mp-tool.mpiv
(但我不知道为什么填充不起作用,在上下文中似乎没有问题):
\documentclass{article}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
drawarrow (0,0)--(10,10);
endfig;
\end{mplibcode}
\mplibsetformat{metafun}
\begin{mplibcode}
beginfig(1);
drawarrow (0,0)--(10,10);
endfig;
\end{mplibcode}
\begin{mplibcode}
def mfun_draw_arrow_path text t =
if autoarrows :
set_ahlength(t) ;
fi
draw arrowpath mfun_arrow_path t ;
fill arrowhead mfun_arrow_path t ; %changed fillup to fill
endgroup ;
enddef ;
beginfig(1);
drawarrow (0,0)--(10,10);
endfig;
\end{mplibcode}
\end{document}
编辑2
我认为缺少一些重要的代码(我猜测在上下文中它在 mlib-pdf.lua 中)因此 luamplib 需要更新。
编辑3
在 metapost 邮件列表中,Hans Hagen 确认需要新代码。他写道
我已经向 luatex-mplib.lua 模块添加了一些代码,现在它可以在普通程序中工作了,所以当我发布新的上下文测试版时,必须有人确保它也可以在 latex 中使用