带有 tex 标签的 metapost 无法在非 bin 文件夹中工作,但可以在 bin 文件夹中工作,原因是什么?

带有 tex 标签的 metapost 无法在非 bin 文件夹中工作,但可以在 bin 文件夹中工作,原因是什么?

Win 10 1903 + TeXLive 2019

fig.mp 文件是

prologue := 3;
verbatimtex
%&latex
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{gbsn}
etex
beginfig(1);
draw (0,0)--(2cm,0);
label.top(btex $\sqrt{x}$ etex,(1cm,0));
endfig;
verbatimtex
\end{document}
\end{CJK}
etex
end

Desktoptexlive\bin\win32\

在CMD中,如果路径是Desktopmpost -tex=latex fig.mp则不起作用,错误日志是

This is MetaPost, version 2.00 (TeX Live 2019/W32TeX) (kpathsea version 6.3.1)
(d:/texlive/texmf-dist/metapost/base/mpost.mp
(d:/texlive/texmf-dist/metapost/base/plain.mp
Preloading the plain mem file, version 1.005) ) (./fig.mpfatal:Command failed: latex mpa01092.tex; see mpxerr.log
>> fig.mp
>> fig.mpx
! ! Unable to read mpx file.
l.12 label.top(btex
                    $\sqrt{x}$ etex,(1cm,0));
Transcript written on fig.log.

但没有 mpxerr.log,所以我认为latex mpa01092.tex由于某种原因它没有启动。

但是,我将路径改为texlive\bin\win32,然后运行mpost -tex=latex fig.mp它可以正确生成图1。

对于不同的工作路径,同一个文件得到不同的结果,我想知道原因。

更奇怪的是,在另一台装有 Win10 1903 + TexLive 2019 的笔记本电脑上,两条路径都可以正常工作。

答案1

我通过 OllyDbg 解决了该问题。

metapost 必须启动 latex 才能处理 latex 标签,它会尝试路径环境中的所有文件夹。但我的路径环境中有一个项目C:\Users\????\AppData\npm(可能是我升级到 WIN 10 时生成的)。

当程序遇到路径中的“?”时,程序会出错并退出,没有任何信息。

相关内容