20 exam-zh如何用texworks设置xelatex-shell-escape编译?

发布于 2024-09-14 09:04:35

参考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.zipf4d8499f1234a48f32fdae012a1601eb.png
6ac9f64c85356f30a8e3adf9c4327450.png

---------------------------------这是一条分割线--------------------------
9.15下午更新,根据各位大神回答已经修正了texworks的-shellescape设置为6c9fc329fb54032884e86114227b7992.png
也尝试用命令行编译,英文提示为f1cec3cfcec2002995c26e8554270abf.png

在example-single.tex文件里面加了一条style/student-version-suffix=-new-diy-filename-suffix,如图所示:d2233f8086c2ac91e2255a10669cd0cf.png
简单地看懂参数是说不能编译出学生版的文件,所以我现在要装TeXLive2024?还是继续设置--shellescape参数?

---------------------------------这是第二条分割线------------------------
经exam-zh用户群群友的建议,我把我用来测试的文件example-a.tex以及exam-zh0.23版上传,-shellescape模式设置为39a5078edc5fff7c12052be96c010403.png,请各位大佬不吝赐教。深以为谢。
exam-zh-v0.2.3.zip

---------------------------------这是第三条分割线------------------------
根据用户群里群友的建议,我已经能手动编译好师生两版的试卷。谢谢群友的建议。最新测试文件如下:exam-zh-v0.2.3.zip3ed2904d268063e29cc765aa81369e26.png
测试环境不变。

查看更多

关注者
0
被浏览
761
Sagittarius Rover
Sagittarius Rover 2024-09-14
我要成为TikZ糕手/(ㄒoㄒ)/~~

我不是很懂MikTeX和TeXWorks,但是根据我配置vscode中compile recipes的理解,你的如图配置等价于:

image.png

每次使用名为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中的编译选项.

以上,希望对你有帮助。

4 个回答
LaTeXStudio
LaTeXStudio 2024-09-14
这家伙很懒,什么也没写!

图片上面的程序应该是 xelatex.exe 怎么是 tex exe 明显不对头。

飘石
飘石 2024-09-15
这家伙很懒,什么也没写!

你的设置应该没有问题。用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,我测试的时候改了文件名,不用太在意。

辵彳亍2020
辵彳亍2020 2024-09-15
这家伙很懒,什么也没写!

原问题中的测试文件忘记上传了,现重新上传测试文件如下:exam-zh-v0.2.3.zip

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览