\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
我在日志文件中找不到任何关于哪个源文件具有不匹配的提示{
。但我们可以从错误消息中获得一些提示:
- 行号
- 令人反感的开场白
- 事情发生的顺序
第 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 的搜索范围。