“这会产生 100 个错误”和一个问题

“这会产生 100 个错误”和一个问题

虽然我从来没有犯过错误,但偶尔我会在不停止模式下编译一个 TeX 文件(我就是这样的),效果非常好,以至于它开始断断续续地吐出这个

在此处输入图片描述

并提供了一些精神支持,好像再次编译会产生任何影响一样。

  1. 这是一个内部计数器,即硬编码的可执行级别计数吗?
  2. 这是一个 TeX 或 PDFTeX 计数器吗?即,这是在哪个级别计算的?
  3. 我们可以访问它吗?更重要的是,我们可以通过开关降低这个门槛吗?

预告片

  • 我们可以在编译期间访问或重置吗?我知道在编译期间修改这个是多么愚蠢,但是……是的。

答案1

100 这个值是硬编码在 TeX 中的。当它在处理过程中发现 100 个错误时同一段,TeX 假定陷入了无限循环。

这里,一些放错位置的标记(表格行的结尾)导致插入一个右括号(我猜),但这又错了,所以又\cr插入了一个,导致无限循环。因此 TeX 有这种保护措施,防止它原地踏步,没有任何进展。

您无法更改此值,除非您修改 TeX 的源代码并重新编译该程序。

硬编码值位于 的模块 82 中tex.web

答案2

我只想补充一些我的经验。在 (*)TeX 中,有两种类型的错误代码:

  1. 拼写错误会导致一小段代码出错,但不会影响未来,例如,$\aloha$而不是$\alpha$,或忘记了 mathmode,如As we can see, f(x)=\frac{e^x}{x},忘记了\item等等。这些错误通常会在原地或段落末尾“整理”,产生一两条错误消息。

  2. 拼写错误/错误会在很长的代码中传播。例如,拼写错误{talubar},首先会抛出“未定义的环境”,然后对&表中的每个错误抛出“放错 \cr”。根据我的经验,这些错误会产生很多错误,以至于继续编译是没有意义的。唯一合理的做法是找到第一个错误并更正它。

相关内容