> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ja/narejjibsu/149-using-the-stop-on-first-error-compilation-mode.md).

# 最初のエラーで停止するコンパイルモードを使う

この記事では Overleaf の **最初のエラーで停止** コンパイルモードについて説明し、以下を含むいくつかの重要な背景トピックも見ていきます。

* ～とは何か [LaTeX のコンパイルモード](#introduction-to-latex-errors-and-compilation)?
* [Overleaf のコンパイルモード](#compilation-modes-on-overleaf)
* どのように **最初のエラーで停止** は次のいずれかです [デバッグに役立つか](#benefits-of-using-the-stop-on-first-error-mode)

背景情報を飛ばしたい場合は、説明セクションまで直接進んで [最初のエラーで停止するコンパイルモードを有効にする方法](#the-stop-on-first-error-compilation-mode).

## LaTeX のエラーとコンパイルの紹介

LaTeX 文書を組版済み PDF ファイルに変換することは、 *コンパイル*と呼ばれるプロセスの結果です。実行可能なプログラムである「LaTeX コンパイラ」は、文書の内容を読み取り、その構成要素である LaTeX コマンドを実行して、組版済み PDF ファイルを生成します。

LaTeX のマークアップ（コード）を書くときには、ミスをしてしまうのはごく自然なことであり、コンパイル中に、そのミスについてコンパイラが説明しようとするエラーメッセージが出ます。 *考えている* 問題を引き起こしたと。ほかのプログラミング言語と同様に、文書の LaTeX コードに 1 つのミスがあるだけで、関連するメッセージ付きのエラーが連鎖的に発生することがあります。Overleaf では、コンパイルエラーメッセージは次の通知を通じてユーザーに報告されます [赤い通知が **再コンパイル** ボタンをクリックします](#overleafs-latex-error-reporting)の横に表示され、 **ログと出力ファイル** アイコンをクリックすると確認できます。

### エラーの扱い: コンパイルモード

LaTeX コンパイラは、 [TeX エンジン](/latex/ja/xiang-xi-ji-shi/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md)とも呼ばれ、組み込みの（ユーザーが選択できる） *コンパイルモード* を備えており、エラーの扱い方を決定します。以下の箇条書きでは、Overleaf 独自の *説明用の名称* を各モードに対して使用します:

* **エラーがあってもコンパイルを試みる**—要するに、エラーに遭遇してもコンパイルを続け、うまくいくことを期待して、PDF ファイルを生成しようとしますが、その PDF には組版エラーが含まれている可能性があります。
* **最初のエラーで停止**—実質的には、最初の問題の兆候で「諦め」、ユーザーにメッセージを表示して PDF を作成せずに終了します。これにより、その後のエラーの連鎖を避け、最初のエラーの修正と文書の再コンパイルに集中できます。
* **コンパイルを中断してユーザーと対話する**—コンパイルを一時停止して支援を提示し、ユーザーがエラーを修正してコンパイルを続行できる仕組みを提供します。これはローカルの LaTeX 環境では可能ですが、Overleaf では実用的ではありません。

## Overleaf のコンパイルモード

LaTeX のコンパイル処理を管理するため、Overleaf は [latexmk と呼ばれるビルドツール](/latex/ja/narejjibsu/064-how-does-overleaf-compile-my-project.md) を使用し、既定では Overleaf が **エラーがあってもコンパイルを試みる** と呼ぶコンパイルモードを使います。 [LaTeX のコンパイルエラー](/latex/ja/latexno/05-errors.md).

その **エラーがあってもコンパイルを試みる** コンパイルモードでは、LaTeX コンパイラはエラーを検出しても停止しません。代わりに、ユーザーの意図を「最善推測」し、その推測に基づいて「修正」を適用します。問題のあるコードは「スキップ」されることもあります。コンパイラは *場合によっては* 最終的にコンパイル処理が完了して PDF を作成できる状態に戻ることがありますが、生成された PDF には誤った出力が含まれる可能性があります。多くの場合、遭遇したエラーが深刻すぎるか、多すぎるために LaTeX コンパイラでは修正できず、PDF を生成せずに「諦める」こともあります。

### Overleaf の LaTeX エラー報告

上で述べたように、コンパイル中に生成されたエラーメッセージは、 **再コンパイル** ボタンの横にある赤い通知を通じてユーザーに報告されます:

![Overleaf 上で報告された LaTeX エラーのスクリーンショット](/files/b5cda2bcfffebf9504c94a16b547d715a5d90f94)

クリックすると **ログと出力ファイル** アイコンをクリックすると、エラーの詳細を確認できます。たとえば、誤って `\texbf{word}` の代わりに `\textbf{word}`と入力してしまった場合でも、Overleaf は定義されていないコマンドに関するエラーメッセージとともにコンパイル済み PDF のプレビューを表示しますが、PDF 内の「word」は太字にはなりません。

## 最初のエラーで停止するコンパイルモード

ユーザーは現在、LaTeX のコンパイルモードを切り替えて、 **最初のエラーで停止** 最初のエラーを検出すると Overleaf が直ちにコンパイルを終了するモードです。

### 最初のエラーで停止を有効にする方法

の横にある小さな三角形を選択し、次に **再コンパイル** ボタンを選んでから **最初のエラーで停止** の **再コンパイル** ドロップダウンメニュー:

![「最初のエラーで停止」コンパイルモードを有効にする方法を示すスクリーンショット](/files/6258298cc419edce95ca33cebafad74afd08c014)

#### このモード設定の適用範囲

この **最初のエラーで停止** モードは、ユーザーごと・プロジェクトごとの設定です。このモードを有効にすると *実際の* 、他のプロジェクトや同じプロジェクト内の共同編集者には影響しません。

### 最初のエラーで停止を無効にする

もう一度 **最初のエラーで停止** が有効な場合は、既定のコンパイルモードに戻すには青いボタン **「最初のエラーで停止」を無効にする** を選択することで、表示されるダイアログボックス内から既定のコンパイルモードに戻せます:

![コンパイル失敗メッセージのスクリーンショット](/files/5e5b7df6a6d81910931fa326a7aa32b7037c5b24)

また、 **再コンパイル** ドロップダウンメニューに移動して、 **エラーがあってもコンパイルを試みる** モードを選択することもできます:

![最初のエラーで停止するコンパイルモードを無効にする方法を示したスクリーンショット](/files/b5c16199a164714523e3507096fe67ff0bfed89b)

### 追加の注意とアドバイス

プロジェクトに LaTeX のコンパイルエラーがなければ、通常どおり PDF プレビューが表示されます。もしプロジェクトに *は* LaTeX のコンパイルエラーが含まれている場合、コンパイルは最初のエラーで直ちに停止します。最初のエラーメッセージは下のスクリーンショットのように表示されるため、ソースコード内のエラーのデバッグに集中できます。このスクリーンショットでは、エラーは `\caption{...}\label{...}` を tabular 環境内で誤って使用したことが原因です。15 行目は `\begin{tabular}`.

![典型的な LaTeX エラーを示すスクリーンショット](/files/71df88253b8c6b2e84861347bae194cfd7b5a0c0)

をクリックします **再コンパイル** 各エラーを修正したら、次に現れる各コンパイルエラーについてもこのデバッグ作業を繰り返します。プロジェクトに LaTeX エラーがなくなると、 **最初のエラーで停止** モードではコンパイルに成功した PDF が表示されます。

### 最初のエラーで停止モードを使う利点

* **コンパイルのタイムアウトのデバッグに役立ちます。** ある種のコンパイルエラーは非常に深刻で（たとえば、意図しない再帰）、 **エラーがあってもコンパイルを試みる** コンパイルモードを妨げ、 [コンパイルタイムアウト](/latex/ja/narejjibsu/038-fixing-and-preventing-compile-timeouts.md#fatal-compile-errors-blocking-the-compilation) Overleaf プロジェクト内で **最初のエラーで停止** モードを有効にすると、そのようなエラーの特定とデバッグに役立つ場合があります。
* **エラーをため込まないようにしましょう。** 一部のユーザーは、ほかの LaTeX エディタの動作を好むかもしれません。そこでは、コンパイル処理は遭遇した最初の LaTeX エラーで停止し、その後再コンパイルする前にエラーを修正できます。エラーが連鎖してさらに多くのエラーを引き起こすのを防ぐことで、100 件以上のコンパイルエラーメッセージをデバッグしなければならない事態を避けられます。これは難しく、少々面倒になりがちです。
* **最初のエラーで停止モードを有効にすると、エラー（ある場合）をすばやく検出できます。** 大きい文書や複雑な文書でコンパイルに時間がかかる場合は、 **エラーがあってもコンパイルを試みる** モードではコンパイルが完了するまで待つ必要があります。修正すべきエラーがある場合、最初のコンパイルエラーを確認して修正に取りかかれるようになるまで待たなければならず、時間がかかることがあります。
* **エラーのデバッグを学ぶことは、LaTeX を学ぶ上で欠かせない要素です。** この **最初のエラーで停止** モードは、LaTeX 初心者が早い段階で良い LaTeX コーディング習慣を身につけるのに役立ち、LaTeX の習熟への道を早めてくれるかもしれません。LaTeX のエラーは非常に奇妙で難解に見えるため、つい無視してコンパイラに処理を続けさせ、PDF が最終的に現れることを期待したくなります。たとえその PDF に組版エラーが含まれていてもです。長い目で見ると、コンパイルエラーを無視することは悪いコーディング習慣につながり、将来的に、たとえば重要なジャーナル論文の投稿時に、思わぬ失敗を招くかもしれません。LaTeX の授業を教えているなら、学生は **最初のエラーで停止** モードを使って LaTeX エラーのデバッグ技能を養えます。

## ファイル内で発生しているように見えないエラー

もし **エラーがあってもコンパイルを試みる** モードで手動でコンパイルを停止し、その後 **最初のエラーで停止**を有効にすると、次のコンパイルでは `! File ended while scanning use of \@writefile`のように、ファイル内から発生しているようには見えない、いくつかの一見ランダムなエラーメッセージが出ることがあります。このようなエラーは、前回の不完全なコンパイルで生成され、そのまま残った切り詰められたファイルが原因かもしれません。その場合は、 [最初から再コンパイル](/latex/ja/narejjibsu/028-clearing-the-cache.md) そうすれば、次のコンパイルが引き続き **最初のエラーで停止** モードで、クリーンな状態から始めて最初に関連するエラーを表示できるようになります。もし引き続き存在しないように見えるファイルからのエラーが出るなら、たとえば、 `output.aux`, `output.toc` などの、 [このヘルプページ](/latex/ja/narejjibsu/066-how-to-find-and-fix-errors-reported-in-generated-files.md).

## 少し低レベルな詳細

この **エラーがあってもコンパイルを試みる** コンパイルモードでは `latexmk` 次のフラグで実行されます:

```latex
latexmk -f -interaction=nonstopmode …
```

この **最初のエラーで停止** コンパイルモードでは代わりに、latexmk を次のフラグで実行します:

```latex
latexmk -halt-on-error -interaction=nonstopmode …
```

ここにいる間に、次の内容についてさらに読むことにも興味があるかもしれません。 [Overleaf がどのように `latexmk` ツールを使用するか](/latex/ja/narejjibsu/064-how-does-overleaf-compile-my-project.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ja/narejjibsu/149-using-the-stop-on-first-error-compilation-mode.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
