你的设置应该没有问题。用texlive时(latexmk.exe -xelatex --shell-escape或者xelatex.exe --shell-escape)没有问题,应该是miktex(xelatex.exe --shell-escape)的实现问题(可能是对xelatex的实现不一样)。
当然也可能是exam-zh没有关注到miktex的xelatex?
这个得大佬们来判断了。
miktex 的 xelatex.exe --shell-escape 最后输出如下:
Run number 1 of rule 'xelatex'
------------
------------
Running 'xelatex -no-pdf -recorder --jobname="A_student_version" "'\AddToHook{env/document/before}{\ExamPrintAnswer}'\input{A.tex}"'
------------
This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2024) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
! I can't find file `'"'"'"'.
<to be read again>
\xparse function is not expandable
<*> '"'"'\AddToHook
{env/document/before}{\ExamPrintAnswer}'\input{A.tex}"'"'
(Press Enter to retry, or Control-Z to exit)
Please type another input file name:
注意:A.tex就是example-single.tex,我测试的时候改了文件名,不用太在意。
问 exam-zh如何用texworks设置xelatex-shell-escape编译?