> 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/ru/baza-znanii/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 вашего документа может вызвать каскад ошибок, каждая со своим соответствующим сообщением. В Overleaf сообщения об ошибках компиляции отображаются пользователю через [красное уведомление рядом с **Пересобрать** кнопку](#overleafs-latex-error-reporting), и вы можете щёлкнуть по **Журналы и выходные файлы** значку, чтобы просмотреть их.

### Обработка ошибок: режимы компиляции

Компиляторы LaTeX, также известные как [движки TeX](/latex/ru/podrobnye-stati/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md), имеют встроенные (выбираемые пользователем) *режимы компиляции* которые определяют, как обрабатываются ошибки. Следующий маркированный список использует *собственное пояснительное/описательное название* для каждого из этих режимов:

* **Попытаться компилировать, несмотря на ошибки**—по сути, продолжать попытки компиляции, несмотря на возникновение ошибок, надеясь на лучшее; в итоге может быть создан PDF-файл, но он может содержать ошибки верстки.
* **Остановка на первой ошибке**—по сути, «сразу выйти» при первом признаке проблемы, вывести сообщение пользователю и завершить работу без создания PDF. Это позволяет избежать последующего каскада ошибок и сосредоточиться на исправлении самой первой ошибки и повторной компиляции документа.
* **Приостановить компиляцию для взаимодействия с пользователем**—приостанавливать компиляцию, чтобы предложить помощь и предоставить пользователям механизмы для исправления ошибок и продолжения компиляции. Это возможно при локальной установке LaTeX, но на Overleaf непрактично.

## Режимы компиляции в Overleaf

Для управления процессом компиляции LaTeX Overleaf использует [инструмент сборки под названием latexmk](/latex/ru/baza-znanii/064-how-does-overleaf-compile-my-project.md) который по умолчанию использует режим компиляции, который Overleaf называет **Попытаться компилировать, несмотря на ошибки:** инструмент сборки попытается создать сверстанный PDF, даже если имеются [ошибки компиляции LaTeX](/latex/ru/osnovy-latex/05-errors.md).

В **Попытаться компилировать, несмотря на ошибки** В этом режиме компиляции компилятор LaTeX не останавливается при обнаружении ошибок; вместо этого он пытается «наилучшим образом угадать» намерение пользователя и применяет «исправления» на основе этого предположения — проблемный код также может быть «пропущен». Компилятор *может* вернуться в состояние, в котором процесс компиляции в конечном итоге сможет завершиться созданием PDF, хотя полученный PDF может содержать неверный вывод. Часто встречающиеся ошибки могут быть слишком серьёзными или многочисленными, чтобы компилятор LaTeX смог их исправить, поэтому он всё равно может «сдаться» без создания PDF.

### Отображение ошибок LaTeX в Overleaf

Как отмечалось выше, сообщения об ошибках, возникающие во время компиляции, сообщаются пользователю через красное уведомление рядом с **Пересобрать** кнопкой:

![Скриншот, показывающий ошибки LaTeX, отображаемые в Overleaf](/files/5b14ee50fdcee85df553fd0049ffd7502914e43c)

Вы можете щёлкнуть по **Журналы и выходные файлы** значку, чтобы увидеть более подробную информацию об ошибке(ах). Например, если бы вы по ошибке ввели `\texbf{word}` вместо `\textbf{word}`, Overleaf всё равно показал бы предварительный просмотр скомпилированного PDF вместе с сообщением об ошибке о неопределённой команде, но «word» в PDF не был бы выделен жирным!

## Режим компиляции «Остановка при первой ошибке»

Пользователи теперь могут изменить режим компиляции LaTeX, переключившись на **Остановка на первой ошибке** режим, который заставляет Overleaf немедленно завершать компиляцию при обнаружении первой ошибки.

### Как включить «Остановку при первой ошибке»

Выберите маленький треугольник рядом с **Пересобрать** кнопкой, затем выберите **Остановка на первой ошибке** из **Пересобрать** выпадающем меню:

![Скриншот, показывающий, как включить режим компиляции «Остановка на первой ошибке»](/files/68fafd24f77c30f21b08c420404aa65cf5012944)

#### Область действия этой настройки режима

Это **Остановка на первой ошибке** режим — это настройка на уровне пользователя и проекта. Включение этого режима *не* повлияет на ваши другие проекты или на любых соавторов в том же проекте.

### Отключение «Остановки при первой ошибке»

Когда **Остановка на первой ошибке** включён, вы можете вернуться к режиму компиляции по умолчанию, нажав синюю кнопку **Отключить «Остановку при первой ошибке»** расположенную в диалоговом окне, которое появляется при возникновении ошибки компиляции:

![Скриншот, показывающий сообщение о сбое компиляции](/files/05ebd5165905c688c0ee967e0094e4b99ea4237f)

Вы также можете перейти в **Пересобрать** раскрывающееся меню и выбрать **Попытаться компилировать, несмотря на ошибки** режим:

![Скриншот, показывающий, как отключить режим компиляции «Остановка при первой ошибке»](/files/f92479e60492a8e2596b27f9a8d5eb6256b28ab4)

### Дополнительные примечания и советы

Если в вашем проекте нет ошибок компиляции LaTeX, предварительный просмотр PDF будет показан как обычно. Если ваш проект *делает* содержит ошибки компиляции LaTeX, компиляция немедленно остановится на первой ошибке. Первое сообщение об ошибке отображается, как показано на скриншоте ниже, чтобы вы могли сосредоточиться на отладке ошибки в исходном коде. На этом скриншоте ошибка вызвана неправильным использованием `\caption{...}\label{...}` внутри окружения tabular. Строку 15 следует перенести перед `\begin{tabular}`.

![Скриншот, показывающий типичную ошибку LaTeX](/files/2ae748af96e7c0f7e70f0bb3de892101f575fded)

Нажмите на **Пересобрать** после исправления каждой ошибки, а затем повторяйте этот процесс отладки для каждой последующей ошибки компиляции. Когда в вашем проекте не останется ошибок LaTeX, режим **Остановка на первой ошибке** покажет успешно скомпилированный PDF.

### Преимущества использования режима «Остановка при первой ошибке»

* **Помогает отлаживать тайм-ауты компиляции.** Некоторые виды ошибок компиляции настолько серьёзны (например, случайная рекурсия), что могут заблокировать **Режим «Попытаться компилировать, несмотря на ошибки»** режим компиляции, что приводит к [тайм-ауту компиляции](/latex/ru/baza-znanii/038-fixing-and-preventing-compile-timeouts.md#fatal-compile-errors-blocking-the-compilation) в проекте Overleaf. Включение **Остановка на первой ошибке** режима может помочь обнаружить и отладить такие ошибки.
* **Не позволяйте своим ошибкам накапливаться.** Некоторым пользователям может больше нравиться поведение других редакторов LaTeX, в которых процесс компиляции останавливается на первой встреченной ошибке LaTeX, чтобы её можно было исправить перед повторной компиляцией. Предотвращение каскадного распространения ошибок — лавины последующих ошибок — избавляет от необходимости отлаживать более 100 сообщений об ошибках компиляции, что может стать сложным и довольно утомительным.
* **Включение режима «Остановка при первой ошибке» может быстро обнаружить ваши ошибки, если они есть.** Если у вас большой или сложный документ, компиляция которого занимает больше времени, режим **Попытаться компилировать, несмотря на ошибки** требует, чтобы вы дождались завершения компиляции. Если есть ошибки, которые нужно исправить, ожидание перед тем, как вы сможете увидеть первую ошибку компиляции и попытаться её исправить, может занять много времени.
* **Умение отлаживать ошибки — неотъемлемая часть изучения LaTeX.** Это **Остановка на первой ошибке** режим может помочь новичкам в LaTeX рано освоить и выработать хорошие привычки написания кода LaTeX, возможно ускоряя их путь к владению LaTeX. Ошибки LaTeX могут казаться настолько странными и эзотеричными, что очень велико искушение игнорировать их и позволить компилятору продолжать работу — надеясь, что PDF в конце концов появится, даже если в нём будут ошибки верстки. В долгосрочной перспективе игнорирование ошибок компиляции может привести к плохим привычкам программирования, которые в итоге могут подвести вас в будущем, например при подаче важной статьи в журнал! Если вы преподаёте курс по LaTeX, ваши студенты могут использовать **Остановка на первой ошибке** режим, чтобы развивать навыки отладки ошибок LaTeX.

## Ошибки, которые, по-видимому, не возникают в ваших файлах

Если вы вручную остановите компиляцию в **Попытаться компилировать, несмотря на ошибки** режиме, а затем включите **Остановка на первой ошибке**, следующая компиляция может привести к некоторым, казалось бы, случайным сообщениям об ошибках, таким как `! Файл закончился во время сканирования использования \@writefile`, которые, похоже, не исходят из ваших файлов. Такие ошибки могут быть вызваны усечёнными файлами, созданными и оставшимися после предыдущей незавершённой компиляции. В этом случае вы можете захотеть выполнить [Перекомпилировать с нуля](/latex/ru/baza-znanii/028-clearing-the-cache.md) чтобы следующая компиляция, всё ещё в **Остановка на первой ошибке** режиме, могла начаться с чистого листа и показать первую значимую ошибку. Если вы всё ещё получаете ошибки из, казалось бы, несуществующего файла — например, `output.aux`, `output.toc` и т. д. — взгляните на [эту страницу справки](/latex/ru/baza-znanii/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/ru/baza-znanii/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/ru/baza-znanii/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.
