> 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/bnyh-almstnd/08-multi-file-latex-projects.md).

# مشاريع LaTeX متعددة الملفات

## مقدمة

في [مستندات LaTeX الكبيرة](/latex/ar/bnyh-almstnd/07-management-in-a-large-project.md) عادةً ما يكون لدى المرء عدة `.tex` ملفات، واحد لكل فصل أو قسم، ثم تُجمَّع معًا لإنشاء مخرجات واحدة. يساعد هذا على إبقاء كل شيء منظمًا ويجعل تصحيح المستند أسهل، لكن كلما ازداد حجم المستند استغرق التجميع وقتًا أطول. وقد يكون هذا محبطًا لأن المرء عادةً لا يهتم إلا بالعمل في ملف معيّن في كل مرة.

النهج الطبيعي لتجاوز ذلك هو تجميع كل ملف على حدة. هناك حزمتان رئيستان تتيحان تجميع الملفات المفردة في مشروع متعدد الملفات. ويعتمد الاختيار الذي تقوم به على ما تحتاج إليه.

* مع [موقع **subfiles** الحزمة](#the-subfiles-package) يمكنك تجميع كل ملف فرعي بصورة مستقلة، وسيستخدم كل ملف فرعي تلقائيًا المقدمة الموجودة في الملف الرئيسي.
* مع [موقع **standalone** الحزمة](#the-standalone-package) يعمل كل ملف فرعي كملف مستقل، ويمكن لاحقًا ضمّ الملفات الفرعية في مستند رئيسي يسحب المقدمات من كل واحد منها. ويكون ذلك مفيدًا بشكل خاص إذا كنت بحاجة إلى إعادة استخدام الملف نفسه في أكثر من مستند، وصورة TikZ مثال جيد على ذلك.

## ملاحظات حول \documentclass في ملفات Overleaf ‎.tex

كما هو موضح في مقطع الفيديو التالي، حتى إذا كنت قد عيّنت الملف الرئيسي لمشروعك `.tex` يمكنك اختيار ملف آخر للتجميع—بشرط أن يحتوي على `\documentclass` تعريف. ومع ذلك، ولضمان تجميع جميع عناصر مشروعك بشكل صحيح — مثل المسارد، والوصول إلى المسارات إلى `.bib` الملفات وغيرها — نوصي بشدة بألا تُجمَّع إلا الملفات الموجودة في الدليل الجذر لمشروعك.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/U2nGfRx9NwNGX0vWXNebP/1ca4b9a4b2f36d5ca9c0dbaa87f44bfa/maincompile.mp4>" %}

## حزمة subfiles

تُعدّ هذه الحزمة مناسبة لمعظم الحالات، وهي سهلة الاستخدام حقًا.

تحتوي الأمثلة في هذا القسم على البنية الهرمية التالية للملفات:

![CompileSubfilesEx1OverleafV2.png](/files/5b18030b5f72270470a4a34724bbb0a484dc4bc1)

### الملف الرئيسي

في الملف الرئيسي يلزم استخدام أمرين خاصين.

```latex
\documentclass{article}
\usepackage{graphicx}
\graphicspath{{images/}}

\usepackage{blindtext}

\usepackage{subfiles} % من الأفضل تحميلها أخيرًا في المقدمة

\title{مثال على حزمة Subfiles}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Introduction}

\subfile{sections/introduction}

\section{القسم الثاني}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/606404bb440a80568ef658f964170944bb379037)

يتطلب التجميع لكل ملف السطر

```latex
\usepackage{subfiles}
```

في المقدمة، وهذا يفعّل `subfiles` الحزمة. ثم يجب استيراد كل ملف فرعي خارجي باستخدام الأمر `\subfile{}`. في المثال، يتم استيراد الملفين `introduction.tex` و `section2.tex` إلى الملف الرئيسي من مجلد `sections` لاحظ أن امتداد الملف ليس إلزاميًا.

[افتح `subfiles` مثال الحزمة في Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### الملفات الفرعية

بمجرد أن تكون قد أعددت الملف الرئيسي، يجب أن يكون لكل ملف فرعي بنية خاصة.

```latex
\documentclass[../main.tex]{subfiles}
\graphicspath{{\subfix{../images/}}}
\begin{document}
\textbf{مرحبًا بالعالم!}
\begin{figure}[bh]
\centering
\includegraphics[width=3cm]{overleaf-logo}

\label{fig:img1}
\caption{شعار Overleaf}
\end{figure}

مرحبًا، هنا بعض النصوص بلا معنى...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/392da0cbce67a40914c8dd1e57c53b0ad1fa9509)

الآن يمكن تجميع هذا الملف كملف مستقل، وستكون فئة المستند وبقية المقدمة مماثلة لما هو معرّف في المستند الرئيسي.

الأمر الأول هنا هو

```latex
\documentclass[../main.tex]{subfiles}
```

المعامل داخل الأقواس، `../main.tex`، هو المسار النسبي إلى المستند الرئيسي. في هذه الحالة يكون الملف `introduction.tex` داخل المجلد `sections`، ولذلك يكون الملف `main.tex` على مستوى واحد أعلى من المجلد الحالي (وهذا ما يعنيه `../` ).

ستحتاج أيضًا إلى استخدام الأمر `\subfix` مع مسار المجلد النسبي عند تحديد `\graphicspath` في `introduction.tex`:

```latex
\graphicspath{{\subfix{../images/}}}
```

ثم تُكتب المحتويات الفعلية داخل `\begin{document}` و `\end{document}`. سيتم تجاهل كل ما هو خارج هذه البيئة، أو بشكل أدق، سيُعتبر جزءًا من المقدمة. تجنب ترك أسطر فارغة في أعلى الملف وأسفله.

[افتح `subfiles` مثال الحزمة في Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## حزمة standalone

الحزمة **standalone** توفر الوظيفة نفسها التي توفرها **subfiles** وهي أكثر مرونة، لكن الصياغة أكثر تعقيدًا وعرضةً للأخطاء. الفرق الرئيسي هو أن لكل ملف فرعي مقدمته الخاصة.

تحتوي الأمثلة في هذا القسم على البنية الهرمية التالية للملفات:

![CompileSubfilesEx3OverleafV2.png](/files/fdf1464f023d78cfbdf7da5cf0238de8434dda30)

### الملف الرئيسي

الملف الرئيسي مشابه جدًا لملف أي مشروع آخر متعدد الملفات.

```latex
\documentclass{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}

\title{مثال على حزمة Standalone}
\author{Overleaf}
\date{مايو 2021}

\begin{document}

\maketitle

\section{القسم الأول}
\import{sections/}{introduction}

\section{القسم الثاني}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/52eaa053a6fbb5d4452f72dbd0fdd34fb6a9c648)

السطر

```latex
\usepackage[subpreambles=true]{standalone}
```

يُمكّن **standalone** الحزمة، ويجب وضعه مبكرًا في المستند. يخبر المعامل داخل الأقواس LaTeX باستيراد المقدمة من كل ملف فرعي (تُستورد الحزم مرة واحدة فقط)، وإذا تم حذفه فتأكد من أن لديك جميع الأوامر اللازمة في مقدمة المستند الرئيسي حتى تعمل الملفات الفرعية. يجب توخي الحذر بسبب احتمالات عدم التوافق في المقدمات المختلفة.

في متن المستند الرئيسي، يُستورد كل ملف فرعي باستخدام `\import{}{}`. ويمكن أيضًا استخدام الأمر القياسي `\input{}` ، لكن الأمر في هذا المثال موصى به لـ [إدارة المشاريع الكبيرة](/latex/ar/bnyh-almstnd/07-management-in-a-large-project.md) لأنه يمنع الأخطاء في الملفات المتداخلة.

[افتح مثالًا على `standalone` الحزمة في Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### الملفات الفرعية

يجب أن يكون لكل ملف فرعي مقدمته الخاصة وأن يستورد جميع الحزم اللازمة ليعمل كمستند مستقل.

```latex
\documentclass[class=article, crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\usepackage{blindtext}

\begin{document}
سيتم عرض شكل TikZ أدناه هذا السطر

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{مخطط بسيط جميل}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/2adbe031e6e5d3cea98b13ee2766b5f9cdfc08a4)

السطر الأول في الملف الفرعي هو

```latex
\documentclass[class=article, crop=false]{standalone}
```

يُصرّح بأن هذا ملف يُستخدم مع **standalone** الحزمة، وهناك معاملان اختياريان داخل الأقواس.

* `class=article`. يعيّن `article` كفئة أساسية، ويمكن استخدام أي فئة أخرى: book، report، إلخ. (باستثناء beamer).
* `crop=false`. إذا تم حذف هذا الخيار فسيتم قصّ الناتج إلى حجم أدنى.

الأمر التالي ليس إلزاميًا

```latex
\usepackage[subpreambles=true]{standalone}
```

لكن يجب استخدامه في هذا المثال لأن هناك ملفًا **standalone** متداخلًا هنا. تُدرج [صورة TikZ](/latex/ar/alashkal-waljdawl/05-tikz-package.md) باستخدام [`\subimport{../}{diagram.tex}`](/latex/ar/bnyh-almstnd/07-management-in-a-large-project.md#importing-files)، ويمكنك رؤية محتويات الملف "diagram.tex" أدناه:

```latex
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Nodes
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Lines
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);

\end{tikzpicture}
\end{document}
```

[افتح هذا المثال لـ Standalone TikZ في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Standalone+TikZ+example\&snip=%5Cdocumentclass%7Bstandalone%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cusetikzlibrary%7Bpositioning%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Btikzpicture%7D%5B%0Aroundnode%2F.style%3D%7Bcircle%2C+draw%3Dgreen%2160%2C+fill%3Dgreen%215%2C+very+thick%2C+minimum+size%3D7mm%7D%2C%0Asquarednode%2F.style%3D%7Brectangle%2C+draw%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%2C+minimum+size%3D5mm%7D%2C%0A%5D%0A%25Nodes%0A%5Cnode%5Bsquarednode%5D++++++%28maintopic%29++++++++++++++++++++++++++++++%7B2%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28uppercircle%29+++++++%5Babove%3Dof+maintopic%5D+%7B1%7D%3B%0A%5Cnode%5Bsquarednode%5D++++++%28rightsquare%29+++++++%5Bright%3Dof+maintopic%5D+%7B3%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28lowercircle%29+++++++%5Bbelow%3Dof+maintopic%5D+%7B4%7D%3B%0A%0A%25Lines%0A%5Cdraw%5B-%3E%5D+%28uppercircle.south%29+--+%28maintopic.north%29%3B%0A%5Cdraw%5B-%3E%5D+%28maintopic.east%29+--+%28rightsquare.west%29%3B%0A%5Cdraw%5B-%3E%5D+%28rightsquare.south%29+..+controls+%2B%28down%3A7mm%29+and+%2B%28right%3A7mm%29+..+%28lowercircle.east%29%3B%0A%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

![CompileSubfilesEx5.png](/files/c467f1b36ca9fbdf66d4a85783f218f32c55b13a)

هذه هي الميزة الرئيسية في **standalone**، إذ يمكنك استيراد هذا الملف في أي مستند آخر وإعادة استخدام الشيفرة. على سبيل المثال، يمكن لاحقًا استخدام هذا المخطط في عرض تقديمي دون أي تغييرات إضافية.

[افتح مثالًا على `standalone` الحزمة في Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## قراءة إضافية

لمزيد من المعلومات، انظر

* [الإدارة في مشروع كبير](/latex/ar/bnyh-almstnd/07-management-in-a-large-project.md)
* [الإحالة المتبادلة بين الأقسام والمعادلات](/latex/ar/bnyh-almstnd/03-cross-referencing-sections-equations-and-floats.md)
* [الفهارس](/latex/ar/bnyh-almstnd/04-indices.md)
* [المسارد](/latex/ar/bnyh-almstnd/05-glossaries.md)
* [الروابط التشعبية](/latex/ar/bnyh-almstnd/09-hyperlinks.md)
* [ترقيم الصفحات](/latex/ar/altnsyq/03-page-numbering.md)
* [المستندات أحادية الوجه ومزدوجة الوجه](/latex/ar/altnsyq/08-single-sided-and-double-sided-documents.md)
* [أعمدة متعددة](/latex/ar/altnsyq/09-multiple-columns.md)
* [تنسيق الفقرات](/latex/ar/altnsyq/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [حجم الصفحة والهوامش](/latex/ar/altnsyq/07-page-size-and-margins.md)
* [العدادات](/latex/ar/altnsyq/10-counters.md)
* [ملاحظات الهامش](/latex/ar/altnsyq/15-margin-notes.md)
* [الخط العريض والمائل والتحته خط](/latex/ar/asasyat-latex/03-bold-italics-and-underlining.md)
* [أحجام الخطوط، والعائلات، والأنماط](/latex/ar/alkhtwt/01-font-sizes-families-and-styles.md)
* [وجوه الخطوط](/latex/ar/alkhtwt/02-font-typefaces.md)
* [دعم الخطوط الحديثة مع XeLaTeX](/latex/ar/alkhtwt/03-xelatex.md)
* [دعم اللغات الدولية](/latex/ar/allghat/03-international-language-support.md)
* [أحجام الخطوط، والعائلات، والأنماط](/latex/ar/alkhtwt/01-font-sizes-families-and-styles.md)
* [تجميع المشاريع الكبيرة](/latex/ar/qaadh-almarfh/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [إدراج الصور](/latex/ar/mzyd-mn-almwdhwaat/27-inserting-images.md)
* [حزمة TikZ](/latex/ar/alashkal-waljdawl/05-tikz-package.md)
* [كتابة حزمة خاصة بك](/latex/ar/mlfat-alfeh/03-writing-your-own-package.md)
* [كتابة صنف خاص بك](/latex/ar/mlfat-alfeh/04-writing-your-own-class.md)
* [ال **subfiles** توثيق الحزمة](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [ال **standalone** توثيق الحزمة](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/standalone/standalone.pdf)


---

# 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/bnyh-almstnd/08-multi-file-latex-projects.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.
