诊断多文件文档中的“\end inside a group”

诊断多文件文档中的“\end inside a group”

\include我在一份包含许多d 文件的很长的文档(超过 700 页的书)的日志文件中收到以下消息:

(\end occurred inside a group at level 2)

### simple group (level 2) entered at line 269 ({)
### simple group (level 1) entered at line 1187 ({)
### bottom level 

但是日志文件只给出了行号——而不是文件的名称。我检查了.tex项目中的每个文件以及所有辅助文件,但找不到{任何行 269 或 1187 上的不匹配项。

有没有办法判断错误指的是哪个源文件?关于如何诊断这个问题还有其他建议吗?

编辑:以下是日志文件中错误发生前的约 20 行,以及错误发生后的所有行:

 [733] [734] [735]) (./FoSCT-2e-v2.aux
(./Preface/preface.aux) (./Ch01Intro/chapter-intro.aux)
(./Ch02DemandModeling/chapter-demand-modeling.aux)
(./Ch03DetermInv/chapter-inv-deterministic.aux)
(./Ch04StochInvPer/chapter-inv-stochastic-per.aux)
(./Ch05StochInvContin/chapter-inv-stochastic-contin.aux)
(./Ch06MultiechInv/chapter-inv-multiechelon.aux)
(./Ch07PoolingFlexibility/chapter-pooling-flexibility.aux)
(./Ch08FacilLoc/chapter-facil-loc.aux)
(./Ch09SupplyUncertainty/chapter-supply-uncertainty.aux)
(./Ch10TSP/chapter-tsp.aux) (./Ch11VRP/chapter-vrp.aux)
(./Ch12IntegratedModels/chapter-integrated-models.aux)
(./Ch13Bullwhip/chapter-bullwhip.aux) (./Ch14Contracts/chapter-contracts.aux)
(./Ch15Auctions/chapter-auctions.aux)
(./Ch16Applications/chapter-applications.aux)
(./Apx01MultiChapProbs/appendix-multi-chap-probs.aux)
(./Apx02Proofs/appendix-proofs.aux) (./Apx03Formulas/appendix-formulas.aux)
(./Apx04OptTech/appendix-OPT_TECH.aux))

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

 )
(\end occurred inside a group at level 2)

### simple group (level 2) entered at line 269 ({)
### simple group (level 1) entered at line 1187 ({)
### bottom level 
Here is how much of TeX's memory you used:
 38358 strings out of 493005
 892893 string characters out of 6134596
 4898692 words of memory out of 5000000
 41542 multiletter control sequences out of 15000+600000
 57101 words of font info for 168 fonts, out of 8000000 for 9000
 1348 hyphenation exceptions out of 8191
 81i,29n,402p,61350b,2524s stack positions out of 5000i,500n,10000p,200000b,80000s

Output written on FoSCT-2e-v2.pdf (773 pages).

答案1

\include通过逐个注释掉d 文件,我诊断出了问题。有两个不匹配的{s,分别位于两个不同的文件中。

答案2

我在日志文件中找不到任何关于哪个源文件具有不匹配的提示{。但我们可以从错误消息中获得一些提示:

  1. 行号
  2. 令人反感的开场白
  3. 事情发生的顺序

第 3 项是最容易使用的信息。在进入第 1 组之前,您处于最底层,之后才进入第 2 组。因此,一旦找到第 1187 行,您就知道第 269 行将出现在 TeX 稍后加载的文件中。

第 1 项是正确的行号。最糟糕的情况是,这意味着您需要打开每个文件并转到第 1187 行。如果您有命令行,您可以尝试
grep '{' -n *.tex | grep '1187:'
标志-n告诉 grep 将行号放在每个结果的开头,这样它将返回带有 的行 1187。{(不幸的是,这将是很多结果,因为它是 TeX。也许可以尝试附加| grep -v '}'以删除带有 的行}。)

另一个建议是从高数字开始,然后从低数字开始。由于您大概有长度在 270 到 1180 行之间的文件,因此它们可能是 269 错误,但不是 1187 错误。因此,请专注于 1187 以找到该文件,然后您可以使用第 3 项缩小对 269 的搜索范围。

相关内容