緊急停止と暴走議論

端の欠落、中括弧、または不正なインクルードによる致命的な中止。

緊急停止と暴走議論

症状

コンパイルは完全に終了します。ログは「!」で終わります。緊急停止。 または、暴走引数? の後に長い独自のテキストを表示します。多くの場合、\textbf の使用をスキャン中にファイルが終了しました または \foo が完了する前に段落が終了しました などのコンパニオン行が続きます。ほとんどの LaTeX エラーとは異なり、PDF はまったく存在せず、報告される行番号は実際の間違いではなくファイルの終わりを指していることがよくあります。

なぜそれが起こるのか

どちらのメッセージも同じ問題から来ています。TeX は閉じる必要があるものの読み取りを開始し、終了トークンが到着する前に入力の終わりに到達しました。 \textbf{ と書くと、TeX は一致する } までを引数として収集します。中括弧が来ないと、TeX はファイルがなくなるまで、段落やセクションを通してテキストを飲み込み続けます。 「暴走議論」は、TeX が何を飲み込んだかを示しています。 「緊急停止」とは、欠落部分がないと続行できないため TeX を諦めることです。 \end{document} の欠落、閉じられていない環境、または存在しないファイルの \input によっても、同じ終了状態が生成されます。

実際の場所を見つける方法

行番号を信用しないでください。これは、不均衡が始まった場所ではなく、TeX の入力が不足した場所をマークします。代わりに、ログ内の「引数の暴走?」ブロックを読んでください。飲み込まれたテキストの最初の数語は、文書内のどこで暴走が始まったかを示し、「ファイルは … の使用をスキャン中に終了しました」行には、引数が閉じられなかったコマンドの名前が示されています。引用されたテキストの近くでそのコマンドを検索し、その中括弧を数えます。

ログが役に立たない場合は、ドキュメントをバイナリ検索してください。本体の後半をコメントアウトして (または \iffalse ... \fi で囲んで) 再コンパイルします。エラーが消えた場合、問題は削除した半分にあります。欠陥のある段落が分離されるまで半分にし続けます。これは大まかに聞こえますが、大規模なドキュメントでは、少数のコンパイルで唯一欠けている中かっこが見つかります。

いつもの容疑者

太字、斜体、脚注、およびキャプションの近くに「}」のない「{」がないか確認してください。これらのコマンドでは、手動で入力する引数中括弧が必要になるためです。すべての \begin{...} に、同じ環境名を持つ一致する \end{...} があることを確認してください。ファイルが \end{document} で終わっていること、およびすべての \input\include がそのパスに存在するファイルに名前を付けていることを確認します。エディターはここで役立ちます。Oleafly は、入力時に一致する中かっこと環境のペアを強調表示します。これにより、コンパイラーがそれらを認識する前に、これらのほとんどが検出されます。

ログ読解 に戻る