虽然我从来没有犯过错误,但偶尔我会在不停止模式下编译一个 TeX 文件(我就是这样的),效果非常好,以至于它开始断断续续地吐出这个
并提供了一些精神支持,好像再次编译会产生任何影响一样。
- 这是一个内部计数器,即硬编码的可执行级别计数吗?
- 这是一个 TeX 或 PDFTeX 计数器吗?即,这是在哪个级别计算的?
- 我们可以访问它吗?更重要的是,我们可以通过开关降低这个门槛吗?
预告片:
- 我们可以在编译期间访问或重置吗?我知道在编译期间修改这个是多么愚蠢,但是……是的。
答案1
100 这个值是硬编码在 TeX 中的。当它在处理过程中发现 100 个错误时同一段,TeX 假定陷入了无限循环。
这里,一些放错位置的标记(表格行的结尾)导致插入一个右括号(我猜),但这又错了,所以又\cr
插入了一个,导致无限循环。因此 TeX 有这种保护措施,防止它原地踏步,没有任何进展。
您无法更改此值,除非您修改 TeX 的源代码并重新编译该程序。
硬编码值位于 的模块 82 中tex.web
。
答案2
我只想补充一些我的经验。在 (*)TeX 中,有两种类型的错误代码:
拼写错误会导致一小段代码出错,但不会影响未来,例如,
$\aloha$
而不是$\alpha$
,或忘记了 mathmode,如As we can see, f(x)=\frac{e^x}{x}
,忘记了\item
等等。这些错误通常会在原地或段落末尾“整理”,产生一两条错误消息。拼写错误/错误会在很长的代码中传播。例如,拼写错误
{talubar}
,首先会抛出“未定义的环境”,然后对&
表中的每个错误抛出“放错 \cr”。根据我的经验,这些错误会产生很多错误,以至于继续编译是没有意义的。唯一合理的做法是找到第一个错误并更正它。