答案1
context
和都不texexec
是可执行文件(像pdflatex
),而是脚本。由于texexec
(Ruby 脚本)已弃用,您可以立即忘记它,我将重点介绍context
。
context
Linux 系统上的内容是
#!/bin/sh
mtxrun --script context "$@"
它只是启动了mtxrun
一个大约有 26000 行的 Lua 脚本。该脚本是 ConTeXt 的核心,执行格式生成、字体数据库管理、文件查找等任务。
该参数--script
指定要运行的另一个脚本。所有可用的脚本都可以在texmf-context/scripts/context/lua
独立发行版的文件夹。该参数--script context
加载mtx-context.lua
脚本。在此脚本中,您可以找到多程循环其内容基本上是
for currentrun=1,maxnofruns do
local returncode = -- run LuaTeX
if not returncode then
-- you pressed Ctrl+C
break
elseif returncode == 0 then
-- check multipass data
if multipass_changed then
-- rerun
else
break
end
else
-- report error and exit
break
end
end
还有一些细节我省略了,但您可以在链接的文件中查找。
底线,也就是说,context
如果没有其他指示,它会自动对文档进行多次扫描。你可以指示context
只执行一次扫描,
context --once file.tex
或执行精确的<n>
运行(其中<n>
是数字)
context --forcedruns=<n> file.tex