> ## 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 على الوصول إلى الصدفة (shell). ولأسباب أمنية، يجب أن تعمل الحاوية في بيئة مقيّدة تمنع المستخدمين من تنفيذ أوامر صدفة عشوائية (على سبيل المثال عبر `\write18` أو shell escape). ويحمي هذا العزل النظام المضيف ويتجنب الوصول غير المقصود إلى نظام الملفات الأساسي للحاوية أو إلى أدوات مثل `bash`.

### إصدار TeXLive الكامل

[TeXLive-Full@ayaka-notes](https://github.com/ayaka-notes/texlive-full/) هي **صورة TeXLive Docker** كاملة الميزات، مصممة للترجمة المعزولة لـ 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)، ويمكنك إضافة متغيرات البيئة التالية إلى الملف `config/variables.env` إذا كنت [من مستخدمي toolkit](https://github.com/overleaf/toolkit).

على سبيل المثال:

```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: مشكلة عدم العثور على الخط في الذاكرة المؤقتة">
  عندما يترجم overleaf مشروع latex، إذا حدث عدم عثور على خط، **فقد تجد أن عملية الترجمة تستغرق وقتًا طويلًا**، وذلك لأنه عند فقدان خط، ستحاول texlive **إعادة بناء ذاكرة الخطوط المؤقتة بالكامل**. وهذه عملية تستهلك وقتًا طويلًا.

  في صورتنا، قمنا ببناء ذاكرة الخطوط المؤقتة مسبقًا، وأصلحنا هذه المشكلة عبر [هذا الـ commit](https://github.com/ayaka-notes/texlive-full/commit/0cb66b0dc8b82be628cf6999cfd659d9784e132f)
</Accordion>

<Accordion title="المشكلة 02: بطء شديد في Sync Tex">
  عند استخدام هذه الصورة في sharelatex، قد تجد أن sync tex بطيء للغاية.

  راجع: [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.