metafun:为什么箭头尖端没有填充?

metafun:为什么箭头尖端没有填充?

尝试另一个示例时,我发现使用 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}

enter image description here

我在 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}

enter image description here

编辑2

我认为缺少一些重要的代码(我猜测在上下文中它在 mlib-pdf.lua 中)因此 luamplib 需要更新。

编辑3

在 metapost 邮件列表中,Hans Hagen 确认需要新代码。他写道

我已经向 luatex-mplib.lua 模块添加了一些代码,现在它可以在普通程序中工作了,所以当我发布新的上下文测试版时,必须有人确保它也可以在 latex 中使用

我添加了一个问题https://github.com/lualatex/luamplib/issues/71

相关内容