> 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/ar/alaselh-walajwbh/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md).

# لدي الكثير من الأشكال من tikz أو matlab2tikz أو pgfplots، لذا أحصل على انتهاء مهلة التجميع. هل يمكنني e

## كيفية إخراج رسومات TikZ إلى ملفات خارجية

استخدم مكتبة TikZ [المسماة `خارجي`](https://tikz.dev/library-external) لإنشاء رسومات TikZ وتخزينها (كاش) كملفات PDF — وهي عملية يُشار إليها غالبًا باسم “*إخراجها إلى ملفات خارجية*”.

حمّل المكتبة عبر `\usetikzlibrary{external}`، ثم فعّل الإخراج إلى ملفات خارجية باستخدام الأمر `\tikzexternalize`:

```latex
\usetikzlibrary{external}
\tikzexternalize[<options>]
```

حيث `<options>` هي قائمة اختيارية من المعلمات (أزواج مفتاح–قيمة) تُستخدم لضبط `خارجي` المكتبة.

* **ملاحظة** : لكي يعمل الإخراج الخارجي لرسومات TikZ على Overleaf، يجب أن يُعطى `\tikzexternalize` الأمر ***يجب*** أن يكون موجودًا في الملف الرئيسي للمشروع `.tex` الملف.

لنلقِ نظرة على مثال بسيط يستخدم رسماً مُعاد إنتاجه من [توثيق TikZ](https://tikz.dev/library-external):

```latex
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]

\begin{document}
% سيتم كتابة هذا الشكل من TikZ إلى
% ملف باسم 'output-figure0.pdf'
% داخل مجلد 'tikz'
\begin{tikzpicture}

  \node {الجذر}
    child {node {اليسار}}
    child {node {اليمين}
      child {node {الفرع}}
      child {node {الفرع}}
    };

\end{tikzpicture}

\end{document}
```

لاستكشاف هذا المثال، يمكنك [فتحه على Overleaf.](https://www.overleaf.com/project/new/template/27519?id=1174669946\&templateName=Example+to+externalize+a+TikZ+graphic\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

تستخدم الشيفرة في مثالنا الخيار `prefix=tikz/` مع `\tikzexternalize`:

```latex
\tikzexternalize[prefix=tikz/]
```

الخيار `prefix=tikz/` يوفّر اسم مجلد (هنا، `tikz`) لاستخدامه لتخزين الرسومات المُولَّدة (المُخرجة خارجيًا) — ستحتاج إلى إنشاء ذلك المجلد يدويًا في مشروعك. ومع ذلك، قبل أن يتمكن LaTeX (شيفرة TikZ) من الكتابة إلى ذلك المجلد، يجب أن يحتوي على ملف — أي ملف (وهمي) سيكون كافيًا؛ على سبيل المثال، يمكنك إضافة ملف نصي فارغ `foo.txt` في `tikz` المجلد.

يتعامل Overleaf مع رسومات TikZ PDF المُخرجة خارجيًا على أنها ملفات مخرجات مُولَّدة، لذلك لن تظهر في قائمة الملفات المرئية في المشروع — فهي موجودة داخل المشروع، لكنها مخفية عن العرض — يمكنك عرض قائمة [الملفات المُولَّدة](/latex/ar/qaadh-almarfh/150-view-generated-files.md) لرؤيتها.

يُلخّص مقطع الفيديو القصير التالي تجميع المثال أعلاه ويُظهر كيفية الوصول إلى قائمة الملفات التي ولّدها TikZ:

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/6VZVoHzhpNzOWSTvsWYm08/80d178255345da83bcd82b5fc64e5c6b/TikZExternalize.mp4>" %}

## بعض الملاحظات

قد يكون إخراج رسومات TikZ إلى ملفات خارجية مُرهقًا حسابيًا لمحرك TeX الأساسي (pdfTeX وXeTeX وLuaTeX وما إلى ذلك)، لذلك `خارجي` توفّر المكتبة خيارًا لـ«تحسين» العملية. إذا فعّلت التحسين، فسيحاول TikZ تقليل عبئه من خلال «تجاهل» بعض الأوامر المعقدة (المكلفة)، وإن كانت غير أساسية (بالنسبة إلى TikZ)، وذلك عبر إعادة تعريفها (فورًا). بالإضافة إلى ذلك، قد تتسبب بعض الأوامر من حزم أخرى في حدوث أخطاء في وضع الإخراج الخارجي؛ على سبيل المثال، `\includepdf` من `pdfpages` الحزمة. ولتجاوز ذلك، ستحتاج إلى «إزالة» مثل هذه الأوامر عبر التحسين:

```latex
\tikzexternalize[prefix=tikz/,optimize command away=\includepdf]
```

## الكثير من الرسومات المعقدة للإخراج الخارجي!

إذا كانت رسوماتك معقدة و/أو كثيرة، فمن المحتمل أن تواجه [مهلة انتهاء التجميع](/latex/ar/qaadh-almarfh/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) في Overleaf أثناء التجميع الأولي — أثناء توليد الملفات المُخرجة خارجيًا. ستسرد هذه الفقرة بعض الحلول الممكنة لتجنّب انتهاء مهلة التجميع.

### البناء تدريجيًا

قد يساعدك بناء مشروعك تدريجيًا عبر [التعليق على](https://ctan.org/pkg/comment?lang=en) أجزاء مختلفة من مشروعك، لكن تذكّر أن جميع الملفات المُولَّدة تُحذف تلقائيًا على الخوادم على فترات ثابتة. وقد يفشل مشروعك بعد ذلك في التجميع عند تسجيل دخولك مرة أخرى، وستضطر إلى توليدها كلها تدريجيًا من جديد.

### إنشاء الرسومات محليًا

* **ملاحظة** : يفترض هذا القسم أن مشروعك يستخدم `\tikzexternalize[prefix=tikz/]` لتخزين الرسومات المُولَّدة في مجلد باسم `tikz`.

كحل بديل، [قم بتنزيل مشروعك على Overleaf](/latex/ar/qaadh-almarfh/036-exporting-your-work-from-overleaf.md) وقم بتجميعه على جهاز محلي لإخراج ملفات الرسومات (توليدها) إلى ملفات خارجية. بعد انتهاء التجميع، يجب أن يحتوي `tikz` المجلد على عدة أنواع من الملفات لكل رسم مُولَّد، بما في ذلك `*somegraphic*.pdf`, `*somegraphic*.md5` و `*somegraphic*.dpth`. إذا قمت بتحميل تلك الملفات إلى `tikz` مجلد

* **ملاحظة (أسماء ملفات الرسومات)** : يعيّن Overleaf `\jobname` إلى `المخرجات`، مما يؤثر في الاسم المُعطى لرسومات TikZ المُخرجة خارجيًا (المولَّدة): افتراضيًا، تُسمّى ملفات الرسومات المُولَّدة `output-figureN.EXT` حيث
  * `N` هو عدد صحيح مشتق من التسلسل/الترتيب الذي تظهر فيه الرسومات (`N`=0, 1, 2, ...);
  * `EXT` هو أحد امتدادات الملفات المستخدمة من قِبل TikZ، بما في ذلك `pdf`, `md5` و `dpth` (أيضًا `log`).
* **تحذير** : إذا أجريت، بعد تحميل ملفات الرسومات، تغييرات لاحقًا على شيفرة TikZ في مشروعك، فقد يكون من الضروري حذف ملفات الرسومات المقابلة في `tikz` المجلد حتى يتمكن Overleaf من توليد نسخة جديدة واستخدامها. أو يمكنك إعادة توليد الملفات على جهازك المحلي وإعادة تحميلها إلى Overleaf. تذكّر أنك تحتاج إلى استبدال جميع ملفات `.pdf`, `.md5` و `.dpth` الخاصة بذلك الرسم TikZ تحديدًا.

### إنشاء الرسومات في مشروع منفصل

خيار آخر هو إنشاء مشروع منفصل خاص بالرسومات يحتوي فقط على شكل/أشكال TikZ. وبمجرد الانتهاء من تلك الأشكال، يمكنك تحميل ملف PDF من ذلك المشروع المنفصل إلى مشروعك الرئيسي كما يلي:

* انقر على أيقونة تحميل الملفات (![Overleaf file upload icon](/files/367522a5f2b50f118145561b2ec1eaf225e0fe42)) أعلى لوحة قائمة الملفات؛
* اختر **من مشروع آخر**;
* من القائمة المنسدلة، اختر المشروع الذي يحتوي على رسومات TikZ؛
* اختر **من ملفات الإخراج**;
* اختر **output.pdf** و(اختياريًا) سمِّ الملف المُحمَّل.

بعد التحميل، يمكنك الوصول إلى الأشكال الفردية باختيار الصفحة المناسبة من ملف PDF المُحمَّل؛ على سبيل المثال، عبر أمر مثل:

```latex
\includegraphics[page=1]{tikzpics.pdf}
```

ال [الفيديو في نهاية هذا المقال](#videodemo) يوضّح كيفية تحميل ملف PDF من مشروع منفصل.

#### كيفية إنشاء مشروع رسومات منفصل

استخدم `standalone` أو `preview` الحزمة لإنشاء مشروع منفصل يحتوي على رسومات TikZ — ستحتوي ملفات PDF الناتجة على صفحات مقصوصة بإحكام تطابق حجم الرسومات.

**مثال: حزمة standalone**

إليك بعض الشيفرة النموذجية التي تستخدم `standalone` الحزمة:

```latex
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node[fill=yellow]{مرحبًا!};
\end{tikzpicture}

\begin{tikzpicture}
\node[fill=pink]{العالم!};
\end{tikzpicture}
\end{document}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+standalone+package+and+TikZ\&snip=%5Cdocumentclass%5Btikz%5D%7Bstandalone%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dyellow%5D%7BHello%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dpink%5D%7BWorld%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![مثال على حزمة LaTeX standalone](/files/82ab5d505bd0dd19574ccffb2727adaeb3d2ad81)

**مثال: حزمة preview**

إليك بعض الشيفرة النموذجية التي تستخدم `preview` الحزمة:

```latex
\documentclass{article}
\usepackage[active,tightpage]{preview}
\setlength{\PreviewBorder}{0pt}
\usepackage{tikz}
\PreviewEnvironment[{[]}]{tikzpicture}
\begin{document}
\begin{tikzpicture}
\node[fill=yellow]{مرحبًا!};
\end{tikzpicture}

\begin{tikzpicture}
\node[fill=pink]{العالم!};
\end{tikzpicture}
\end{document}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+preview+package+and+TikZ\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bactive%2Ctightpage%5D%7Bpreview%7D%0A%5Csetlength%7B%5CPreviewBorder%7D%7B0pt%7D%0A%5Cusepackage%7Btikz%7D%0A%5CPreviewEnvironment%5B%7B%5B%5D%7D%5D%7Btikzpicture%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dyellow%5D%7BHello%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dpink%5D%7BWorld%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![مثال على حزمة LaTeX preview](/files/717ca4210a9fd3a7029890de19eee7e4b574ace8)

### عرض فيديو توضيحي: تحميل ملفات من مشروع Overleaf آخر

يوضّح الفيديو التالي كيفية تحميل ملف PDF (من مشروع Overleaf آخر) يحتوي على رسومات فقط — هنا، نستخدم `standalone` الحزمة لإنشاء ملف PDF يحتوي على رسومات توضيحية قائمة على TikZ.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/6l4dDatlnqzIymJLofSnQP/61f8ad4b872f5a82f3cd45c487e2f101/TikzSeparateProjects.mp4>" %}


---

# 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/ar/alaselh-walajwbh/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.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.
