> 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/uk/baza-znan/066-how-to-find-and-fix-errors-reported-in-generated-files.md).

# Як знаходити та виправляти помилки, повідомлені у згенерованих файлах

## Вступ

Іноді Overleaf повідомляє про помилки, які виникають через файли з назвами на кшталт `output.toc`, `output.bbl`, тощо, але цих файлів *навіть не існує у вашому проєкті*. То звідки ж беруться такі файли *походять* і, що важливіше, як ви *знайдіть* та *виправляєте* помилки?

> ![Gen-toc-error.png](/files/a83081b17ce9f980cb568ccabc531f27ac2f38ad) «Але в мене ж навіть не **повідомляли, що версія 3 повільно** цей `output.toc` файл у моєму проєкті!»

Ці «загадкові файли» — це артефакти: допоміжні файли, що генеруються під час процесу компіляції LaTeX, але вони також можуть спричиняти помилки, які зазвичай походять від проблем у коді у вихідних файлах вашого проєкту. У цій довідковій статті використовується [приклад із реальними помилками](#playing-detective-locating-errors-in-generated-files) щоб показати, як простежити такі помилки до їхнього джерела у вихідному(их) файлі(ах) вашого проєкту.

## Файли, що генеруються під час процесу компіляції LaTeX

Окрім вихідного `.pdf` файла, процес компіляції LaTeX генерує кілька типів файлів, які містять інформацію про мітки, перехресні посилання, номери сторінок тощо. Деякі допоміжні типи файлів не створюються безпосередньо компілятором LaTeX, а іншими інструментами обробки, що використовуються під час верстки: наприклад, відформатованими списками посилань та покажчиками. Ці згенеровані файли мають бути прочитані компілятором під час наступних запусків, щоб фінальний `.pdf` файл був заповнений правильними списками, цитуваннями та перехресними посиланнями.

Потреба в тому, щоб LaTeX і пов’язані інструменти обробки записували й читали допоміжні файли даних, означає, що може знадобитися кілька кроків компіляції/обробки, перш ніж сукупний набір даних файлів зійдеться (стабілізується), щоб утворити фінальний верстаний (стабільний) `.pdf` файл. Типовий цикл верстки може бути таким:

`pdflatex`$$\mapsto$$`bibtex`$$\mapsto$$`pdflatex`$$\mapsto$$`pdflatex`

У локальній інсталяції LaTeX вам, можливо, доведеться виконувати кожен проміжний крок самостійно, або ж ви можете скористатися інструментом збирання, таким як [make](https://www.gnu.org/software/make/manual/), [latexmk](https://ctan.org/pkg/latexmk) або [arara](https://ctan.org/pkg/arara), щоб автоматизувати цей ланцюжок процесів. [Overleaf використовує latexmk](/latex/uk/baza-znan/064-how-does-overleaf-compile-my-project.md), і це відео показує, що відбувається щоразу, коли ви натискаєте кнопку «Recompile» у вашому проєкті Overleaf.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/Uo3I2FXEI8H6aFPBZq171/e2139f9575a4db6955dc2278dc08283c/latexmk-ol.mp4>" %}

Зазвичай згенеровані файли мають те саме ім’я файла, що й `.tex` файл, який компілюється; наприклад, якщо ви компілюєте `**main**.tex`, то згенеровані файли називатимуться `**main**.aux`, `**main**.toc`, `**main**.lof` тощо. Однак, *в Overleaf* компіляцію `\jobname` завжди встановлено на `**output**`, тож [згенеровані файли](/latex/uk/baza-znan/150-view-generated-files.md) у вашому проєкті Overleaf завжди називаються `**output**.aux`, `**output**.toc`, `**output**.lof` тощо. Ці згенеровані файли можна завантажити з вашого проєкту Overleaf, але їх не можна переглядати або редагувати в Overleaf.

## Помилки компіляції, повідомлені зі згенерованих файлів

Помилки в коді у головному проєкті `.tex` файлі можуть передаватися до згенерованих файлів. Наприклад, неекранований `&` % `\section{Introduction & Background}` може потрапити до згенерованого `.toc` файла. Коли згенерований `.toc` файл згодом зчитується наступним `pdflatex` запуском компіляції, тоді виникає повідомлення про помилку як «таке, що походить із .toc файла». Однак поточні журнали LaTeX і звітування про помилки не проводять жодного зв’язку між рядками у `.toc` файлі (та інших згенерованих файлах) і їхнім початковим розташуванням у вихідному `.tex` файлі: може бути не одразу очевидно, де саме слід виправити початкову помилку.

Ось приклад того, як помилки відображаються в іншому редакторі LaTeX: хоча ви можете клацнути повідомлення про помилку, щоб відкрити відповідний рядок у згенерованому `.toc` або `.aux` файлі, не існує шляху, щоб перейти від помилки до початкового розташування у `.tex` файлі. І навіть якщо ви виправите помилку, замінивши `&` з `\&` у `.toc` у файлі, це насправді не розв’язує проблему: наступного разу, коли ви скомпілюєте `.tex` файл, `.toc` файл буде згенеровано знову, і та сама помилка буде знову записана в `.toc` файлі.

![Texstudio-errors-generated-files.gif](/files/a4ff50a16040ce0441095928421b5d1287f350ce)

Коли помилку повідомляють як таку, що походить із згенерованих файлів, правильний спосіб її виправити — знайти справжню початкову помилку у вихідних файлах і виправити саме їх. Повідомлення про помилки зазвичай містять контекстну інформацію — якийсь текст або код, що оточує помилку, — тож пошук тексту у вихідних файлах допоможе їх знайти. Самі помилки часто є типовими: деякі поширені помилки можна переглянути на [цю довідкову сторінку](/latex/uk/osnovi-latex/05-errors.md), або в [списку TeX FAQ](https://texfaq.org/#errors).

## Спочатку спробуйте очистити згенеровані файли

Іноді помилки в згенерованих файлах — це залишки від попередньої компіляції. Навіть якщо ви виправили помилки у своєму `.tex` файлі та перекомпілювали, згенеровані файли, які все ще містять помилки, можуть і далі зчитуватися компілятором, спричиняючи ті самі помилки, що й раніше. Ви можете спробувати видалити згенеровані файли перед повторною компіляцією. Інструкції щодо того, як зробити це в Overleaf, можна знайти [тут](/latex/uk/baza-znan/028-clearing-the-cache.md).

Якщо після видалення всіх згенерованих файлів і повторної компіляції ви все ще бачите ті самі помилки, ймовірно, у ваших вихідних файлах є справжні помилки.

## Граємо у детектива: пошук помилок у згенерованих файлах

У наступних розділах наведено кілька порад, де шукати такі помилки. Для практики розслідування ми використаємо такий *навмисно наповнений помилками* приклад проєкту. Готові? Почнімо!

[Відкрийте *наповнений помилками* проєкт Overleaf!](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demo+of+LaTeX+compile+errors+reported+from+generated+files\&main_document=main.tex\&snip_uri=https%3A%2F%2Fassets.ctfassets.net%2Fnrgyaltdicpt%2F5qdEqgUidaYDHjOlBoKM7K%2F55395921a114edb36ed3d51d7b1c6edb%2Fdemoerrors.zip) Проєкт має виглядати приблизно так 😲:

![Зображення з помилками проєкту LaTeX](/files/5c300053d992267fece5a75b57bc9e873673a320)

### Помилки з .aux файлів

Функція `.aux` файл містить інформацію про використання `\label{...}` декларацій `\cite{...}` у `.tex` файла, тож це корисні речі для перевірки.

Погляньмо на цю першу помилку з нашого прикладу проєкту, наповненого помилками.

![приклад помилки в .aux файлі через неправильну декларацію \label](/files/5c18415941ec811fb9437f20cde043f2c68a1573)

Помилка `Missing \endcsname inserted.` у `\alpha` може здатися досить криптичною на перший погляд і не дуже корисною для нашого налагодження. Але з тексту (контексту) повідомлення про помилку бачимо, що вона виникає десь поруч із кодом, який має `sec:\alpha`, що пов’язано з певною міткою або лічильником, пронумерованим 1.1. Отже, варто уважно переглянути будь-які `\label{...}` у нашому `.tex` файли, які містять фрагмент `sec:\alpha`.

Невдовзі ви знайдете рядок 37 нашого прикладу проєкту:

```latex
\label{sec:\alpha}
```

Аргумент, переданий до `\label{...}` , не повинен містити жодних команд LaTeX або керувальних послідовностей, таких як `\alpha`. Отже, виправлення мітки на щось на кшталт `\label{sec:alpha}`, а також будь-яких відповідних `\ref{...}`посилань, усуне цю помилку.

Ось ще одна помилка, повідомлена з `.aux` файла, у нашому прикладі проєкту:

![приклад помилки в .aux файлі через пробіл у ключі \cite{...}](/files/ec4f40e74daf6824de08979c15bcd8c337f42654)

Цього разу компілятор скаржиться на пробіл у `\citation`; де ключ починається з «That». Тож нам слід шукати `\cite{That ...}` у нашому `.tex` файлі... і ми знаходимо його в рядку 23:

```latex
... justo \cite{That mandatory talk} eget magna ...
```

Ключі цитування не повинні містити пробілів, тож пробіли в цьому `\cite{...}`, а також відповідний ключ BIBTeX у `.bib` файлі, слід видалити.

### Помилки з .toc файлів

Функція `.toc` файл містить записи для `\tableofcontents`змісту. Вони заповнюються із заголовків розділів у документі LaTeX, напр.: `\chapter{...}`, `\section{...}`, тощо. Отже, якщо ви бачите помилки, повідомлені з `.toc` файлів, корисно перевірити ваші заголовки розділів, які містять текст, згаданий у повідомленні про помилку.

![приклад помилки в .toc файлі через неекранований & у ключі \section{...}](/files/df43707da3c56559b12900d4d3915a850bbb41a8)

Це схоже на заголовок розділу, який буде пронумеровано як «1», і містить текст `Introduction & Welcome`. Швидкий пошук у `.tex` файлі приведе нас до рядка 12:

```latex
\section{Introduction & Welcome}
```

Функція `&` не екрановано, тож треба змінити його на `\&` у `.tex` файлі.

Інший подібний приклад:

![приклад помилки в .toc файлі через математичну команду не в математичному режимі в ключі \section{...}](/files/ff607014d1b723f66a8bc9ee55ae28ade2c2cb4c)

Так само наш здогад був би шукати заголовок розділу, який буде пронумеровано як «1.1» і, ймовірно, містить `Setting \alpha`. Наш здогад виявляється правильним: у рядку 36 `.tex` файл:

```latex
\subsection{Setting \alpha}
```

`\alpha` це математична команда, але ми забули помістити її тут у математичний режим, тож треба виправити це на

```latex
\subsection{Setting $\alpha$}
```

або

```latex
\subsection{Setting \(\alpha\)}
```

Іноді помилки виникають у `.toc` файлі через помилки в коді, який використовується для стилізації записів у змісті:

![приклад помилки в .toc файлі через неправильний код під час стилізації запису змісту](/files/7fa88f70b33dd13e89a80cc482871f8befaff49c)

Тут пошук за `\itshae` приведе нас до друкарської помилки в рядку 5 нашого прикладу `.tex`: має бути `\itshape` замість цього. У цьому випадку помилку можна знайти в преамбулі нашого `.tex` файла, тож ми можемо одразу виправити її. Але якщо ви використовуєте `.cls` або `.sty` файл, наданий вашим закладом, і підозрюєте, що помилки спричинені неправильною конфігурацією в наданих файлах, слід звернутися до автора або супроводжувача шаблону чи пакета, щоб вони могли оновити шаблон.

### Помилки з .lof і .lot файлів

Функція `.lof` файл містить записи для `\listoffigures`, і заповнюються `\caption{...}` значення `figure` середовищ.

Так само, `.lot` файл використовує `\caption{...}` із `table` середовищ, щоб створювати записи для `\listoftables`.

Отже, якщо є помилки LaTeX із `.lof` або `.lot` файлів, слід перевірити `\caption{...}` , який містить відповідні текстові фрагменти.

На основі цього повідомлення про помилку ми шукатимемо `Effects of \alpha and var_coeff` у нашому `\caption{...}`s, особливо для `figure`s:

![приклад помилки в .lof файлі через математичну команду не в математичному режимі в ключі \caption{...}](/files/ff74d2e376da57dd1c1ad45ad93be65058376611)

і переходимо до рядка 19 у нашому `.tex` файл:

```latex
\caption{Effects of \alpha and var_coeff}
```

Функція `\alpha` слід розмістити в математичному режимі; а якщо `var_coeff` має бути назвою змінної, підкреслення потрібно екранувати. Не використовуйте `\verb|var_coeff|` бо це може бути цілком катастрофічно й у `\caption{...}`теж!

```latex
\caption{Effects of $\alpha$ and \texttt{var\_coeff}}
```

Подібно, дивлячись на цю помилку, ми шукали б `деякі зразкові дані з n^i` % `table` `\caption{...}`, припускаючи, що ми забули помістити `n^i` також у математичний режим.

![приклад помилки в .lot файлі через верхній індекс не в математичному режимі в ключі таблиці \caption{...}](/files/0f32012f7bb6ed3f7935151c9546eb9dfeb83a32)

І тому ми виправляємо рядок 31

```latex
\caption{Some sample data with n^i}
```

на

```latex
\caption{Some sample data with $n^i$}
```

### Помилки з .bbl файлів

Функція `.bbl` файл містить записи для списку літератури (бібліографії) і генерується BIBTeX після обробки `.bib` файла, використовуючи інформацію про стиль із `.bst` файла. Помилки, повідомлені з `.bbl` зазвичай походять із `.bib` файлі.

Ось поширена помилка, яку ми часто бачимо в підтримці Overleaf:

![приклад помилки в .bbl файлі через неекранований & у .bib файлі](/files/0aff93e80d8ee2a6b9829e16d1e32a1d879a256d)

Пошук за `This & that` у `.bib` файлі прикладу проєкту приведе нас до рядка 13, де ми розуміємо, що `&` слід екранувати як `\&` або замінити словом `та`.

```bibtex
    title   = {This & That},
```

Автори часто стикаються з помилками, пов’язаними з символами Unicode у `.bbl` (а отже й у `.bib`) файлах — особливо якщо джерела інформації було скопійовано та вставлено звідкись ще:

![приклад помилки в .bbl файлі через непідтримуваний символ Unicode у .bib файлі](/files/3c5dbe31994f07036fa59b675faf0114ea8d502f)

Скопіювавши символ ♣ із повідомлення про помилку та виконавши пошук у `.bib` файлі, ви потрапите до рядка 3:

```bibtex
    title   = {Research ♣ Development},
```

Деякі символи Unicode не підтримуються `latex` та `pdflatex` компіляторами. Щоб уникнути помилки, ви можете спробувати [змінити компілятор вашого проєкту](/latex/uk/baza-znan/026-changing-compiler.md) на `XeLaTeX` або `LuaLaTeX`. Але навіть тоді вам потрібно переконатися, що ваш проєкт сумісний із цими компіляторами, і що ви використали шрифт, який містить гліф для позначення ♣, щоб він правильно відображався у вихідному PDF. Тому краще використати відповідні команди LaTeX:

```bibtex
    title   = {Research $\clubsuit$ Development},
```

Однак іноді символ може бути значно важче помітити:

![приклад помилки в .bbl файлі через непідтримуваний, недрукований символ Unicode у .bib файлі](/files/b18acb333431f1d58d236dab80f98870769aaf97)

Тут U+3000 — це [символ Unicode `ІДЕОГРАФІЧНИЙ ПРОБІЛ`](https://www.fileformat.info/info/unicode/char/3000/index.htm), і це справді пробіл. Може бути важко скопіювати саме цей символ із повідомлення про помилку, щоб шукати його у `.bib` файлі. Тож нам доведеться спробувати інший спосіб знайти його, використавши `\DeclareUnicodeCharacter` щоб замінити `U+3000` чимось помітнішим! Додайте такі рядки до преамбули вашого проєкту, перед `\begin{document}`:

```latex
\usepackage{xcolor}
\DeclareUnicodeCharacter{3000}{\textcolor{red}{BAD!!}}
```

Після компіляції вашого проєкту помилка зникне; але варто уважно подивитися у вихідному PDF на BAD!!:

![вихідний PDF, що замінює U+3000 червоним BAD!!](/files/dfc5b32c855bf1e23f4804b66871c1c64dd579ab)

Отже, тепер ми знаємо, що поганий символ знаходиться між `значення` та `Wondrous`, для бібліографічного запису від «An Author». На рядку 5 файла `.bib` це виглядає цілком нешкідливо, оскільки символ невидимий: але якщо ви вручну наберете цей `...of Wondrous...` звичайним натисканням на пробіл, помилка зникне після повторної компіляції.

```bibtex
    journal = {Journal of　Wondrous Musings},
```

#### Примітка про biblatex

Якщо ви використовуєте `biblatex` пакет, то подібні помилки у `.bib` файлах, ймовірно, всі повідомлятимуться як такі, що походять із `\printbibliography` рядка у вашому `.tex` файлі. Процес налагодження подібний: використовуйте короткі текстові фрагменти в повідомленнях про помилки, щоб шукати у вашому `.bib` файлі, знаходити проблемні рядки та виправляти їх.

### Помилки з .bst файлів

`.bst` файли — це стилі бібліографії, які BIBTeX використовує для обробки й форматування списку літератури. Якщо ви бачите помилки з `.bst` файлів, це може бути через помилки у `.bst` самому, особливо якщо це дуже, дуже старий файл стилю, який може вже бути несумісним із нещодавніми пакетами LaTeX. Але насправді це також може бути через помилки у `.bib` файлі. Найпоширеніша помилка в цій категорії виглядає так:

![Bst-error-example-01.png](/files/ab4de8800bc508737864cc18a75b5856126275e1)

Запис із ключем BIBTeX `Someone:etal:2008` має `поле автора` поле в рядку 12 `.bib` файл:

```bibtex
    author  = {Strange Someone, Night Stranger, and Random Person},
```

У `.bib` файлі, [список з кількох імен](/latex/uk/posilannya-ta-cituvannya/01-bibliography-management-with-bibtex.md#multiple-authors) має відокремлюватися `та`and, а не комами й не `&`. Отже, це `поле автора` поле слід виправити на

```bibtex
    author  = {Strange Someone and Night Stranger and Random Person},
```

### Помилки з .ttt і .fff файлів

Ці типи файлів генеруються лише якщо ви завантажите [`endfloat` accents](https://www.ctan.org/pkg/endfloat), який використовується, щоб примусово перемістити всі середовища таблиць і рисунків у кінець документа відповідно до вимог деяких академічних журналів під час подання статті.

Щоб побачити приклади помилок із цих згенерованих файлів, розкоментуйте рядок 3 `\usepackage{endfloat}` цього `.tex` у файлі нашого прикладу проєкту.

![Ttt-error-example-01.png](/files/80f296818f6c995068f0441fc31be47458830173)

Функція `.ttt` файл містить вміст усіх `table` середовищ у документі, тож ми шукатимемо `dummy & data` у `.tex` файлі, звертаючи увагу на таблиці. Ми дійдемо до рядка 29 у `.tex` файлі, де бачимо проблему: у нас три стовпці, на один більше, ніж оголошено два. Отже, один зайвий стовпець, можливо, слід видалити; або ми повинні вставити `\\` після `dummy` щоб почати новий рядок; або, можливо, ми все-таки мали оголосити три стовпці `c | c | c` зрештою!

![Fff-error-example-01.png](/files/c052ce3a8a0504df3d4f6be636402c22270738ac)

Так само, `.fff` файл містить вміст усіх `figure` середовищ, і пошук за цією помилково набраною `\includegraphcs` приведе нас до рядка 18 `.tex` файлу, де ми можемо виправити його на `\includegraphics`.

## Додаткове читання

* [Як Overleaf компілює мій проєкт?](/latex/uk/baza-znan/064-how-does-overleaf-compile-my-project.md)
* [Поширені помилки LaTeX](/latex/uk/osnovi-latex/05-errors.md)
* [списку TeX FAQ](https://texfaq.org/#errors)


---

# 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/uk/baza-znan/066-how-to-find-and-fix-errors-reported-in-generated-files.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.
