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
在Desktop
和texlive\bin\win32\
在CMD中,如果路径是Desktop
,mpost -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 时生成的)。
当程序遇到路径中的“?”时,程序会出错并退出,没有任何信息。