> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TeX Live у Docker

### Docker

Docker — це легкий і портативний спосіб пакування та запуску застосунків в ізольованих контейнерах. Завдяки об'єднанню застосунку з усіма необхідними залежностями контейнер забезпечує однакову поведінку на різних машинах — від ноутбуків до виробничих серверів.

TeX Live — потужний, але великий дистрибутив, чутливий до відмінностей на рівні системи. Пакування TeX Live в Docker-образ робить інструментарій LaTeX передбачуваним, відтворюваним і простим у розповсюдженні.

Водночас деякі пакети TeX Live покладаються на доступ до оболонки. З міркувань безпеки контейнер має працювати в обмеженому середовищі, яке не дає користувачам виконувати довільні команди оболонки (наприклад, через `\write18` або shell escape). Така ізоляція захищає хост-систему та запобігає небажаному доступу до файлової системи контейнера чи таких інструментів, як `bash`.

### Повна редакція TeXLive

[TeXLive-Full@ayaka-notes](https://github.com/ayaka-notes/texlive-full/) — це повнофункціональний **Docker-образ TeXLive**, призначений для ізольованої компіляції LaTeX в [Ayakaleaf Pro](https://github.com/ayaka-notes/ayakaleaf-pro), [Overleaf CEP](https://github.com/yu-i-i/overleaf-cep) або в окремих середовищах компіляції LaTeX.

Цей образ має на меті надати майже повний дистрибутив TeXLive з попередньо встановленими поширеними шрифтами й інструментами, щоб мінімізувати збої компіляції через відсутні пакети чи шрифти. Примітка: цей Docker-образ **не містить** жодних компонентів sharelatex/overleaf. Він використовується для компіляції в Overleaf/Overleaf Pro.

#### Можливості:

* 🚀 Підтримка серверних архітектур x86\_64 і arm64
* 📦 Повна й оптимізована інсталяція TeXLive
* 🧩 Попередньо встановлені поширені шрифти й утиліти
* 🐳 Готовий до використання з Docker і Docker Compose
* 🧪 Протестовано з Overleaf Server Pro / Overleaf Pro
* 🔄 Регулярно оновлюється з найновішими випусками TeXLive
* 🏷 Теги для кількох версій TeXLive (2020 – найновіша)
* 🧑‍🔬 Підтримка Knitr для коду R у документах LaTeX

### Використання в Ayakaleaf Pro

TeX Live Full від Ayaka-notes спеціально розроблено для [ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro); якщо ви [користувач toolkit](https://github.com/overleaf/toolkit), можете додати такі змінні середовища до файлу `config/variables.env`.

Наприклад:

```dotenv title="config/variables.env" wrap theme={null}
ALL_TEX_LIVE_DOCKER_IMAGES=ghcr.io/ayaka-notes/texlive-full:2026.1, ghcr.io/ayaka-notes/texlive-full:2025.1
ALL_TEX_LIVE_DOCKER_IMAGE_NAMES=Texlive 2026, Texlive 2025
TEX_LIVE_DOCKER_IMAGE=ghcr.io/ayaka-notes/texlive-full:2026.1
```

### Версії TeX Live

Завдяки Github Action ми можемо збирати всі TeX-образи паралельно, серед них:

* `ghcr.io/ayaka-notes/texlive-full:2026.1` (також тег `latest`)
* `ghcr.io/ayaka-notes/texlive-full:2025.1`
* `ghcr.io/ayaka-notes/texlive-full:2024.1`
* `ghcr.io/ayaka-notes/texlive-full:2023.1`
* `ghcr.io/ayaka-notes/texlive-full:2022.1`
* `ghcr.io/ayaka-notes/texlive-full:2021.1`
* `ghcr.io/ayaka-notes/texlive-full:2020.1`
* `ghcr.io/ayaka-notes/texlive-full:base`

Ми використовуємо дзеркальний архів із [texlive info](https://texlive.info/tlnet-archive/), який містить майже всі версії texlive з 1996 по 2025 рік. А завдяки Dockerfile від Overleaf ми можемо збирати цей проєкт швидше.

> Чому TeX Live 2019 і старіші версії не підтримуються?
>
> Підтримувати ці старі образи надзвичайно складно. Крім того, сайт [texlive.info](https://texlive.info/) не надає інформації про версії TeX Live, випущені до 2019 року, тому ми не можемо зібрати образи для цих версій. Якщо вам потрібна певна стара версія, створіть issue і повідомте нас.

### Вміст образу

Docker-образ містить такі пакети:

* Усі пакети TeXLive (відповідного року)
* Пакети R (лише вибрані)
* fontconfig inkscape pandoc python3-pygments wget python3
* gnupg gnuplot perl-modules perl ca-certificates
* ghostscript qpdf r-base-core tar

Docker-образ містить такі шрифти:

* [Google Fonts](https://fonts.google.com/)
* [Microsoft msttcorefonts](https://packages.ubuntu.com/jammy/ttf-mscorefonts-installer)
* [Шрифти, які підтримує Overleaf](https://www.overleaf.com/learn/latex/Questions/Which_OTF_or_TTF_fonts_are_supported_via_fontspec%3F)

<Warning>
  Переконайтеся, що відповідні шрифти можна використовувати в комерційних цілях. Ми **не несемо відповідальності** за будь-які юридичні проблеми, що виникнуть унаслідок неправильного використання шрифтів. Завантажуючи образ, ви автоматично погоджуєтеся з цим.
</Warning>

### Ліцензія

MIT

### Проблеми

<Accordion title="Проблема 01: відсутність шрифтів у кеші">
  Якщо під час компіляції проєкту LaTeX в Overleaf виявляється відсутній шрифт, **компіляція може тривати дуже довго**, оскільки за відсутності шрифту texlive намагається **перебудувати весь кеш шрифтів**. Це тривалий процес.

  У нашому образі кеш шрифтів побудовано заздалегідь — ми виправили цю проблему [цим комітом](https://github.com/ayaka-notes/texlive-full/commit/0cb66b0dc8b82be628cf6999cfd659d9784e132f)
</Accordion>

<Accordion title="Проблема 02: надзвичайно повільний SyncTeX">
  Використовуючи цей образ у sharelatex, ви можете помітити, що SyncTeX працює надзвичайно повільно.

  Див.: [https://github.com/overleaf/overleaf/issues/1150](https://github.com/overleaf/overleaf/issues/1150) — просто вимкніть http 2.0.
</Accordion>

<Accordion title="Проблема 03: помилка повторної компіляції з офіційним образом Texlive">
  Якщо ви використовуєте офіційний образ texlive з Docker Hub `texlive/texlive`, можете помітити, що під час повторної компіляції проєкту виникає помилка. У нашому образі цю проблему виправлено, оскільки ми використовуємо найновіший базовий образ ubuntu і встановлюємо всі залежності з офіційного репозиторію ubuntu.
</Accordion>

### Інші технічні зауваги

Під час збирання образів texlive (до 2019 року) варто звернути увагу на такі проблеми:

* До texlive 2017 підтримуються лише `http`/`ftp`, тому завантажувати через `https` не вийде, якщо не змінити скрипт `peal`.
* До 2015 року надається лише файл sha256, тому перевірити за допомогою sha512 неможливо.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.