緊急停車與失控爭論
由於缺少末端、大括號或錯誤的包含而導致致命中止。
#緊急停止與失控爭論
症狀
編譯直接終止。日誌以!緊急停止。 或顯示“失控的論點?”,後面跟著一長段您自己的文本,通常帶有伴隨行,例如“掃描 \textbf 的使用時文件結束”或“段落在 \foo 完成之前結束”。与大多数 LaTeX 错误不同的是,根本没有 PDF,并且报告的行号经常指向文件末尾而不是真正的错误。
為什麼會發生
兩個訊息都來自同一問題:TeX 開始讀取必須關閉的內容,並在關閉標記到達之前到達輸入末尾。當您編寫 \textbf{ 時,TeX 會收集直到符合的 } 為止的所有內容作為參數。如果大括號永遠不會出現,TeX 會不斷吞嚥文本,穿過段落和部分,直到文件用完。 「失控的論證」是 TeX 向你展示它吞噬了什麼。 「緊急停止」是 TeX 的放棄,因為如果沒有缺失的部分,它就無法繼續。缺少的「\end{document}」、未封閉的環境或不存在的文件的「\input」都會產生相同的最終狀態。
如何找到真實位置
不要相信線路號碼;它標誌著 TeX 耗盡輸入的位置,而不是不平衡開始的位置。相反,請閱讀日誌中的“失控參數?”區塊。被吞下的文字的前幾個單字告訴您失控在文件中的何處開始,並且「文件在掃描使用…時結束」行命名了其參數從未關閉的命令。在引用的文本附近搜尋該命令併計算其大括號的數量。
如果日誌沒有幫助,請對文件進行二進位搜尋。註解掉主體的後半部(或將其包裝在 \iffalse ... \fi 中)並重新編譯。如果錯誤消失,則問題出在您刪除的一半;繼續減半,直到錯誤的段落被隔離。這聽起來很粗糙,但在一個大文檔中,它在少數編譯中發現了一個單獨缺少的大括號。
通常的嫌疑人
檢查粗體、斜體、腳註和標題附近是否有不帶“}”的“{”,因為這些指令採用您手寫的參數大括號。檢查每個「\begin{…}」是否都有一個具有相同環境名稱的符合「\end{…}」。確認檔案以“\end{document}”結尾,並且每個“\input”和“\include”都命名了該路徑中存在的檔案。編輯器在這裡提供幫助:Oleafly 在您鍵入時突出顯示匹配的大括號和環境對,這會在編譯器看到它們之前捕獲其中的大部分。