如何调试 ConTeXt 中内联的 METAPOST?(或者内联 METAPOST 中的“message”原语和“loggingall;”)

如何调试 ConTeXt 中内联的 METAPOST?(或者内联 METAPOST 中的“message”原语和“loggingall;”)

我有一个 METAPOST 程序,它与 mpost 配合得很好,但当我尝试在 ConTeXt 中内联运行它时失败了。为了调试它,我想查看通常的 METAPOST 日志记录和/或使用 METAPOST “消息”原语。

但是,每当我向 ConTeXt 文件添加“loggingall;”或消息语句时,都会遇到如下错误

metapost        > initializing instance 'metafun' using format 'metafun'
metapost        > loading 'metafun': D:/texlive/2012/texmf-dist/metapost/context/base/metafun.mpiv
! terminal:

在 ConTeXt 中调试内联 METAPOST 代码问题的适当方法是什么?

我的示例文件是:

\loggingall

\starttext
\framed{Hello world.}
This is a simple_test.

\startMPpage
loggingall;
fill fullcircle scaled 1in withcolor blue;
label.top(btex This is a test. etex, origin);
\stopMPpage

\stoptext

我在 Windows 上使用 TeXLive 2012。

对于这个问题的模糊性,我深表歉意。我不太清楚各个部分是如何组合在一起的。

答案1

默认情况下,MetaPost 不显示通过 注入的消息message。但是,可以使用 启用这些消息\enabletrackers

要启用详细调试输出,请使用tracingall,它会将大量调试输出打印到控制台和日志文件。以下是完整示例:

\enabletrackers
  [metapost.showlog]

\starttext
  \startMPpage
    tracingall;
    message "This is a debug message.";
    fill fullcircle scaled 1in withcolor blue;
    label.top(btex This is a test. etex, origin);
  \stopMPpage
\stoptext

相关内容