> 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/038-fixing-and-preventing-compile-timeouts.md).

# Виправлення та запобігання тайм-аутам компіляції

Коли ви натискаєте **Перекомпіляція** кнопку у вашому проєкті Overleaf, ви запускаєте процес, який читає файли вашого проєкту й перетворює їх на PDF у верстці. Якщо ви отримуєте помилку перевищення часу компіляції, це означає, що процес компіляції не зміг завершитися в межах [ліміту часу для вашого тарифного плану Overleaf](/latex/uk/baza-znan/119-overleaf-plan-limits.md).

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

## Кроки для усунення перевищення часу компіляції

Виконайте ці кроки, щоб виявити та виправити поширені проблеми, які спричиняють перевищення часу компіляції:

1. [Перевірте наявність помилок компіляції та виправте їх, використовуючи **Зупинятись на першій помилці** mode](#first-errors)
2. [Спробуйте **Fast\[draft\]** режим і оптимізуйте розміри зображень](#second-images)
3. [Оцініть ваш проєкт на наявність завдань, що забирають багато часу](#third-assess)

Окрім виконання цих кроків, будь ласка, перегляньте поради щодо того, що робити в [конкретних ситуаціях перевищення часу](#anchor-advice) а також які [найкращі практики](#anchor-best) слід дотримуватися, щоб запобігти перевищенню часу компіляції.

Хоча багато проєктів можна скомпілювати за час, наданий безплатним планом Overleaf, якщо ви готуєте великий або складний документ, вам може знадобитися [підписатися на преміум-план](https://www.overleaf.com/user/subscription/plans) щоб отримати більше часу на компіляцію.

## Крок 1: Перевірте наявність помилок компіляції та виправте їх

Деякі помилки компіляції або накопичення кількох помилок можуть повністю заблокувати [процес збірки latexmk](https://learn.overleaf.com/learn/Kb/How_does_Overleaf_compile_my_project%3F) і призвести до перевищення часу компіляції. Щоб знайти та виправити помилки, увімкніть **Зупинятись на першій помилці** режим компіляції в **Перекомпіляція** випадному меню:

![Знімок екрана, що показує, як увімкнути режим компіляції «Зупинятись на першій помилці»](/files/6a51b629ba590ce70d1b727b140796ab61f5d958)

Функція [**Зупинятись на першій помилці**](/latex/uk/baza-znan/149-using-the-stop-on-first-error-compilation-mode.md) режим компіляції робить саме те, чого ви очікуєте — він нег **Зупинятись на першій помилці** айно зупиняє компіляцію, коли виникає помилка. Коли це стається, PDF не генерується, і буде показано повідомлення з описом помилки. Увімкнення

натискання на кожне повідомлення про помилку переведе вас до рядка у вихідному коді, який спричиняє проблему, щоб ви могли виправити свій код. Кілька поширених помилок пояснено на [цю сторінку](/latex/uk/osnovi-latex/05-errors.md), а деякі поради з налагодження LaTeX наведено на [цю сторінку](/latex/uk/zapitannya-ta-vidpovidi/81-tips-and-tricks-for-troubleshooting-latex.md). Також, будь ласка, дивіться [розділ у цій статті](#anchor-fatal) який містить деякі поширені **фатальні помилки компіляції** що спричиняють перевищення часу компіляції.

## Крок 2: Спробуйте компіляцію в режимі Fast \[draft]

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

Одним зі способів з’ясувати, чи саме обробка зображень спричиняє перевищення часу, є спроба компіляції в **Швидкий \[чернетка]** режимі. Для цього виберіть **Швидкий \[чернетка]** опцію в **меню Recompile**. Це замінює всі ваші графіки на рамки й значно пришвидшує компіляцію PDF:

![Налаштування режиму компіляції draft для проєкту Overleaf](/files/e84b0fa0438cd1733855532211ec7c08fc91a104)

Якщо ваш документ компілюється в **Швидкий \[чернетка]** режимі, але не завершує компіляцію в **звичайному** режимі, причиною можуть бути великі або численні файли зображень.

### Оптимізація файлів зображень

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

* Використовуйте PDF-файли замість PNG-файлів для діаграм і графіків.
* Використовуйте JPEG лише для фотографій.

Додаткові поради дивіться: [Оптимізація великих файлів зображень](/latex/uk/baza-znan/113-optimising-very-large-image-files.md).

## Крок 3: Оцініть ваш проєкт на наявність завдань, що забирають багато часу, і фатальних помилок

Якщо обидва **Зупинятись на першій помилці** та **Fast\[draft]** режими компіляції все ще призводять до перевищення часу компіляції, вам, можливо, доведеться глибше дослідити, щоб визначити причину перевищення часу компіляції та, сподіваємося, усунути її.

1\. [Перегляньте список практик і пакетів, що забирають багато часу, які можуть сповільнювати компіляцію](#anchor-slow)

2\. [Перегляньте список поширених фатальних помилок, які можуть призводити до перевищення часу](#anchor-fatal)

3\. [Перевірте поради для конкретних сценаріїв перевищення часу, які найкраще описують вашу ситуацію](#anchor-advice)

### Практики та пакети, що забирають багато часу

Деякі практики та пакети можуть призводити до дуже повільної компіляції і навіть до перевищення часу.

**Включення складних рисунків TikZ або pgfplots**

`TikZ` та [`pgfplots`](https://ctan.org/pkg/pgfplots?lang=en) створюють чудову графіку, але можуть [займати багато часу для компіляції](https://tex.stackexchange.com/a/254946/226). Існує [кілька способів винести зображення TikZ в окремі файли](/latex/uk/zapitannya-ta-vidpovidi/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md) щоб LaTeX не доводилося перемальовувати їх щоразу, коли він створює новий PDF.

**Використання пакета mhchem**

Останні версії [`mhchem` accents](https://ctan.org/pkg/mhchem?lang=en) можуть компілюватися довше. Залежно від того, для чого ви його використовуєте, [`chemformula` accents](https://ctan.org/pkg/chemformula) може зменшити час, потрібний для компіляції. Якщо ви вже використовували `mhchem`, ви можете спробувати підставити `chemformula` замість нього:

```latex
% \usepackage{mhchem}
\usepackage{chemformula}
\let\ce\ch
```

* **Примітка**: `mhchem` та `chemformula`є відмінності в синтаксисі та можливостях, тож це не завжди добре спрацює. Наприклад, `\ce{2H2O}` буде нормально відображатися з `mhchem`, але з `chemformula` вам доведеться записати це як `\ch{2 H2O}` з пробілом після початкового `2`.

**Включення викликів трасування або налагодження**

Якщо у вас випадково є команда `\tracingall` у вашому документі, вона може записувати *багато* даних у `.log`. Запис і обробка `\tracingall` даних у `.log` файлі може зробити компіляцію надзвичайно повільною. Рекомендується видалити `\tracingall` виклики або, якщо вам потрібно використовувати подібні методи для налагодження, скористатися [`трасуванням` accents](http://ctan.org/pkg/trace) замість нього.

**Використання пакета acro**

Користувачі [`acro` accents](https://www.ctan.org/pkg/acro) повідомляли, що версія 3 повільно [завантажує оголошення скорочень. Одним із наслідків](https://github.com/cgnieder/acro/issues/205) збільшеного часу компіляції `acro`є можливість спровокувати перевищення часу компіляції; на щастя, є обхідний шлях: використання версії 2 `acro` пакет.

Перехід з версії 3 назад на версію 2 може вимагати редагування вашого проєкту, щоб переконатися, що він сумісний із параметрами, можливостями та командами версії 2. Документація для версії 2 доступна, вона міститься в попередніх випусках вихідного коду, які можна [завантажити з GitHub](https://github.com/cgnieder/acro/releases/tag/v2.10).

Ось деякі речі, які слід перевірити, коли ви повертаєтесь до версії 2 — цей список далеко не вичерпний:

1. Змініть основний `.tex` на:
   * змініть `\usepackage{acro}` на `\usepackage{acro}[=v2]`
   * змініть `include=...` ключ опції `\printacronyms` на `include-classes=...`
2. У будь-якій команді `\DeclareAcronym` переконайтеся, що `tag=...` ключ опції змінено на `class=...`.

Будь ласка, зверніться до [`acro` документації версії 2.10](https://github.com/cgnieder/acro/releases/tag/v2.10) щодо команд і параметрів, доступних у версії 2, але не у версії 3.

**Використання зображень EPS або SVG**

Використання зображень EPS або SVG може вимагати додаткової обробки для перетворення їх у формат PDF. Ця додаткова обробка збільшить час, потрібний для компіляції вашого проєкту.

* Хоча **latex** компілятор безпосередньо підтримуватиме зображення EPS, **pdfLaTeX** компілятор не підтримує зображення EPS, тому під час його використання потрібен додатковий крок для перетворення цих зображень у PDF. Обробку виконує `epstopdf` пакет, який використовує `Ghostscript` для перетворення файлів EPS у PDF. Цей крок перетворення може значно збільшити час, потрібний для компіляції проєкту.
* Файли зображень SVG не підтримуються жодним компілятором LaTeX безпосередньо і вимагають використання `пакета svg` і команди `\includesvg` , яку він надає. Пакет `пакета svg` використовує `inkscape` для перетворення зображень SVG у PDF. Цей крок перетворення може значно збільшити час, потрібний для компіляції проєкту.

Для швидшого результату, який може допомогти уникнути перевищення часу компіляції, використовуйте PDF-версії ваших зображень замість форматів EPS або SVG.

**Використання пакета tabularray**

Функція `tabularray` пакет надає альтернативу стандартним командам і середовищам для створення таблиць у LaTeX. На жаль, пакет `tabularray` працює дуже повільно, особливо для більших таблиць і тих, що використовують певні типи стовпців. Наразі рекомендується використовувати стандартні методи визначення таблиць замість `tabularray` через міркування щодо часу компіляції.

**Створення нескінченного циклу в команді**

Під час компіляції команди LaTeX дуже рідко можуть спричинити «нескінченний цикл». Нескінченні цикли найчастіше спричиняються помилками в пакетах або у визначених користувачем командах.

Якщо ви підозрюєте, що у вас може бути цикл, перевірте, чи не створили ви випадково [рекурсивне](https://en.wikipedia.org/wiki/Recursion) визначення в одній із ваших власних команд, наприклад `\newcommand{\foo}{\foo}`.

### Деякі причини фатальних помилок компіляції

Нижче наведено деякі відомі причини фатальних помилок.

**Включення порожніх рядків у чутливі команди заголовка**

Класи LaTeX і журнальні шаблони часто надають спеціальні команди для вказування частин заголовка документа. Ці команди зазвичай призначені для простих аргументів, і їх використання неочікуваними способами може призвести до помилок компіляції і навіть перевищення часу. Найважливіше, команди на кшталт `\author{...}`, `\date{...}` та `\title{...}` не повинні містити порожніх рядків.

**Включення надто великої кількості фіксованих float-об’єктів**

Якщо у вас забагато таблиць або рисунків із `[H]` ідентифікатором розміщення з пакета `float` це може спричинити нескінченний цикл, коли LaTeX намагається знайти для всіх них відповідні місця. Подумайте про заміну всіх `[H]` з `[hbt!]` і, за потреби, інколи `\clearpage` щоб вивести з черги всі таблиці та рисунки перед вставленням розриву сторінки.

**Помилки в команді \caption і середовищах tabular**

Ось список проблем, пов’язаних із таблицями, на які слід звернути увагу — загалом намагайтеся бути обережними під час верстки таблиць!

* `\caption{...}` завжди слід розміщувати *поза* сайті `tabular` середовищем, тому що це може спричинити фатальні помилки, якщо завантажено [`caption` accents](https://ctan.org/pkg/caption) , як показано в наступному прикладі:

  ```latex
  \documentclass{article}
  \usepackage{caption}
  \begin{document}

  \begin{table}
      \begin{tabular}{c|c}
          \caption{Caption}% \caption{...} should be OUTSIDE the tabular environment
          a & b \\
          c & d \\
      \end{tabular}
  \end{table}
  \end{document}
  ```

  [Відкрити цей приклад **який спричиняє помилку перевищення часу Overleaf**](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Overleaf+timeout+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bcaption%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Btable%7D%0A++++%5Cbegin%7Btabular%7D%7Bc%7Cc%7D%0A++++++++%5Ccaption%7BCaption%7D%25+%5Ccaption%7B...%7D+should+be+OUTSIDE+the+tabular+environment%0A++++++++a+%26+b+%5C%5C%0A++++++++c+%26+d+%5C%5C%0A++++%5Cend%7Btabular%7D%0A%5Cend%7Btable%7D%0A%5Cend%7Bdocument)
* Натомість зверніть увагу, що `longtable` середовище *не* потребує `\caption{...}` у ньому, як показано на прикладі в нашій [статті довідки щодо таблиць](/latex/uk/risunki-ta-tablici/01-tables.md#multi-page-tables).
* `\caption{...}` не повинно містити `\\`, `\newline`, `\centering`, `\raggedright` тощо.
* З деякими шаблонами або пакетами, `\ref{...}` або `\cite{...}` у `\caption` може знадобитися префікс `\protect` щоб уникнути фатальних помилок; наприклад, `\protect\cite{...}`.
* Перевірте наявність неповних `\cmidrule{...}` у `tabular` середовищ; він потребує діапазону стовпців, тож вам потрібно буде написати `\cmidrule{3-3}` замість просто `\cmidrule{3}` якщо ви хочете горизонтальну лінію, що охоплює лише один стовпець.
* Уникайте вкладених `tabular` середовищ. Подивіться на [`makecell` accents](https://ctan.org/pkg/makecell?lang=en) якщо ви хочете додавати ручні розриви рядка в комірці таблиці, або на `p{...}` тип стовпця та/або [`tabularx`](https://ctan.org/pkg/tabularx) пакет, якщо ви шукаєте способи створення стовпців, які автоматично переносять довгі рядки.
* Якщо у вас є рядки таблиці, що починаються з `[...` вам може знадобитися додати `\\relax` після `\\` у попередньому рядку.

**Використання пакетів soul або changes**

Якщо ви використовуєте [`soul`](https://ctan.org/pkg/soul) або [`changes`](https://ctan.org/pkg/changes) пакет для виділення тексту або закреслення тексту, тоді `\cite` та `\ref` може знадобитися префікс `\protect`; наприклад, `\protect\cite{...}`.

**Використання tikzpicture**

Перевірте наявність відсутніх `;` в кінці команд path/node і `]` в кінці списків параметрів у `tikzpicture`s.

**Використання пакета breqn**

Функція [`breqn`](https://ctan.org/pkg/breqn) пакета `dmath` середовище може потрапити в нескінченний цикл; замініть його на `align` і за потреби розбивайте рядки вручну.

**Використання пакета babel**

Деякі [`babel`](https://ctan.org/pkg/babel) мовні параметри змінюють значення певних символів, що може спричинити проблеми, коли ці символи використовуються у своєму «звичайному» контексті; наприклад, у математичному режимі. Щоб уникнути цього, спробуйте використовувати параметр `shorthands=off` під час завантаження babel (наприклад, `\usepackage[shorthands=off]{babel}`).

**Використання пакета jabbrv**

Деякі шаблони використовують [`jabbrv` accents](https://github.com/compholio/jabbrv) для автоматичного скорочення назв журналів (див. [цей приклад Overleaf](https://www.overleaf.com/latex/templates/automatic-journal-abbreviations/mxfsdscmvxcr)). Коли поле журналу у `.bib` файлі містить наголошені символи Unicode (наприклад, Biología), це може заблокувати компіляцію і спричинити перевищення часу на Overleaf. Замість цього потрібно використовувати команди LaTeX, наприклад `Biolog{\'i}a` або ви можете [змінити компілятор проєкту](/latex/uk/baza-znan/026-changing-compiler.md) на `XeLaTeX` або `LuaLaTeX`, обидва з яких мають вбудовану підтримку читання символів Unicode.

## Поради для деяких конкретних ситуацій перевищення часу

### Мій проєкт компілювався без жодних помилок, але тепер я бачу перевищення часу компіляції

Іноді невелика зміна може спричинити перевищення часу компіляції. Щоб допомогти виявити причину проблеми та виправити її, спробуйте такі кроки:

1. Використайте [Повторна компіляція з нуля](/latex/uk/baza-znan/028-clearing-the-cache.md) щоб очистити всі застарілі згенеровані файли, які можуть спричиняти проблеми.
2. Використовуйте [функцію Overleaf History](/latex/uk/inshi-temi/49-using-the-history-feature.md) щоб знайти ваші найостанніші зміни. Дивіться список причин фатальних помилок компіляції вище.
3. Використовуйте [Зупинятись на першій помилці](/latex/uk/baza-znan/149-using-the-stop-on-first-error-compilation-mode.md) опцію, щоб знайти та виправити будь-яку помилку, яку ви випадково внесли.

Можливо, невелика зміна призвела до фатальної помилки компіляції — будь ласка, дивіться [список фатальних помилок компіляції вище](#anchor-fatal) для деяких можливих причин.

### Я щойно завантажив проєкт до Overleaf і отримав перевищення часу компіляції

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

* Якщо проєкт успішно компілювався без проблем на вашому локальному комп’ютері, але не компілюється в Overleaf, можливо, ви використовуєте іншу версію **TeX Live** на своєму комп’ютері. Ви можете [змінити версію TeX Live для вашого проєкту](https://www.overleaf.com/blog/new-feature-select-your-tex-live-compiler-version) щоб вона точніше відповідала тій, яка успішно компілювала ваш проєкт локально.
* Ваш завантажений проєкт може мати не оптимальну структуру файлів для Overleaf. Якщо ваш основний tex-файл знаходиться в папці, компілятор може мати труднощі з пошуком деяких залежних файлів. Якщо ваш основний tex-файл знаходиться в папці, спробуйте перебудувати проєкт так, щоб основний tex-файл був на верхньому рівні вашого проєкту.

Виконання [наведених вище інструкцій щодо пошуку та виправлення помилок](#first-errors) часто може виявити відсутні файли, проблеми з версією TeX Live та проблеми з організацією проєкту.

### Я створив копію проєкту, який компілювався, але тепер я отримую перевищення часу компіляції

Нові проєкти, включно з копіями наявних проєктів, за замовчуванням використовуватимуть найновішу версію TeX Live. Якщо ваш оригінальний проєкт був на старішій версії TeX Live, можливо, існують несумісності з найновішою версією, які спричиняють проблеми. Спробуйте [змінити версію TeX Live](https://www.overleaf.com/blog/new-feature-select-your-tex-live-compiler-version) у вашій новій копії так, щоб вона відповідала версії оригінального проєкту.

### Я не можу змусити свій проєкт компілюватися, коли я включаю всі розділи, але кожен окремо компілюється нормально

Скористайтеся [наведеною вище порадою щодо використання опції компіляції Fast\[draft\]](#second-images) щоб перевірити, чи весь проєкт можна скомпілювати в режимі Fast\[draft].

У деяких випадках можна успішно скомпілювати великий проєкт у два етапи: спочатку запустивши його в режимі Fast\[draft], а потім скомпілювавши в нормальному режимі.

Перевірте кожен розділ вашого проєкту, щоб виявити можливі джерела повільної компіляції. До них можуть належати [великі файли зображень, які можна оптимізувати](#anchor-optimize), або інші [практики чи пакети, що забирають багато часу](#anchor-slow).

### Мій проєкт іноді перевищує час, але не може стабільно компілюватися

Можливо, ваш проєкт працює дуже близько до максимального часу компіляції. Дотримуйтеся наведеної вище поради щодо [виправлення помилок](#first-errors), [оптимізації зображень](#second-images), і [уникнення практик або пакетів, що забирають багато часу](#third-assess).

## Найкращі практики для запобігання перевищенню часу компіляції

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

### Виправляйте всі помилки компіляції, коли вони виникають

Помилки компіляції позначаються червоною спливаючою бульбашкою поруч із кнопкою Recompile, як описано на [цю сторінку](/latex/uk/zapitannya-ta-vidpovidi/81-tips-and-tricks-for-troubleshooting-latex.md). Якщо ви натиснете на червону бульбашку, ви побачите повідомлення про помилку. Натискання на кожне повідомлення про помилку переведе вас до відповідного рядка у вихідному коді, щоб ви могли виправити свій код. Ми рекомендуємо виправляти помилки якомога швидше, оскільки їх накопичення може призвести до важких для налагодження та фатальних помилок у майбутньому.

[Ця сторінка](/latex/uk/osnovi-latex/05-errors.md) пояснює кілька поширених помилок компіляції. Якщо вам важко зрозуміти повідомлення про помилку, часто пошук в інтернеті за текстом помилки приведе вас до допису в блозі або на форумі, де помилку пояснено й запропоновано рішення.

### Позначайте версії вашого проєкту перед великими змінами або важливими етапами

Використовуйте [функцію Overleaf History](/latex/uk/inshi-temi/49-using-the-history-feature.md) щоб позначати версії вашого проєкту, аби ви могли легко порівняти поточний проєкт із попередніми версіями. Це може допомогти вам швидко знайти будь-які нові джерела помилок компіляції.

### Упорядкуйте свої файли

Проблеми легше знаходити й виправляти, якщо ваш проєкт добре впорядкований. Крім того, належне керування проєктом може дати змогу компілювати окремі розділи вашого проєкту, що полегшує виявлення областей, які можуть спричиняти надто тривалу компіляцію. Будь ласка, [дивіться тут](/latex/uk/struktura-dokumenta/07-management-in-a-large-project.md) щоб отримати поради щодо керування великими проєктами.

## Більше інформації про компіляцію та час компіляції

### Що ж таке «компіляція»?

Компіляція — це процес перетворення вашого коду LaTeX у зверстаний PDF-файл. [Дізнайтеся більше про те, як Overleaf компілює проєкти LaTeX](/latex/uk/baza-znan/064-how-does-overleaf-compile-my-project.md).

### Ліміти добросовісного використання

Деякі великі або складні документи можуть потребувати більше часу для компіляції, ніж ліміт тайм-ауту на безкоштовному плані Overleaf, і можуть вимагати збільшеного часу компіляції, доступного в нашому [платні тарифні плани](https://www.overleaf.com/user/subscription/plans).

### Все ще не вдалося?

Якщо у вас виникає тайм-аут компіляції, який ви не можете вирішити за допомогою порад тут, будь ласка [повідомте нас](https://www.overleaf.com/contact).


---

# 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/038-fixing-and-preventing-compile-timeouts.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.
