参考https://tex.stackexchange.com/questions/82699/how-to-enable-shell-escape-in-texworks#链接 设置texworks上的xelatex--shell--escape模式,但是编译时显示! LaTeX Error: Missing begin{document}.
xelatex--shell--escape模式设置如图所示?所以是--shell-escape的参数错了,还是ExamPrintAnswerSet参数写错呢?如果错了的话要怎么修改呢?
测试文件是example-single.tex,出自exam-zh默认的示例文件。
TeX版本是MiKTeX4.12
exam-zh.zip
---------------------------------这是一条分割线--------------------------
9.15下午更新,根据各位大神回答已经修正了texworks的-shellescape设置为
也尝试用命令行编译,英文提示为
在example-single.tex文件里面加了一条style/student-version-suffix=-new-diy-filename-suffix,如图所示:
简单地看懂参数是说不能编译出学生版的文件,所以我现在要装TeXLive2024?还是继续设置--shellescape参数?
---------------------------------这是第二条分割线------------------------
经exam-zh用户群群友的建议,我把我用来测试的文件example-a.tex以及exam-zh0.23版上传,-shellescape模式设置为,请各位大佬不吝赐教。深以为谢。
exam-zh-v0.2.3.zip
---------------------------------这是第三条分割线------------------------
根据用户群里群友的建议,我已经能手动编译好师生两版的试卷。谢谢群友的建议。最新测试文件如下:,
测试环境不变。
我不是很懂MikTeX和TeXWorks,但是根据我配置vscode中compile recipes的理解,你的如图配置等价于:
每次使用名为xelatex+shell-escape
的编译选项,将自动在命令行使用
texify.exe --pdf --engine=xetex --syntex=1 --clean --tex-option=--shell-escape <your filename>
按照我对命令行粗浅的理解,应该是 <program.exe> <options(通常以--或-开头)> <filename>
的一般格式,我感觉你上面的--tex-option=--shell-escape
不是很对... 或许可以试试--shell-escape
,同时我也不太确定miktex是不是可以直接选用texify.exe
命令...
在TeXLive2024下要使用xelatex -shell-escape
可以如下配置,也许你可以参考一下试试
"name": "xelatex-shell-escape",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-shell-escape",
"%DOCFILE%"
]
上面的name
,command
,args
理论上对应了你图中的选项...当然你也应该先探索在终端纯用命令行xelatex -shell-escape filename.tex
能否编译exam-zh,再去尝试配置TeXWorks中的编译选项.
以上,希望对你有帮助。
你的设置应该没有问题。用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-v0.2.3.zip