> 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/07-management-in-a-large-project.md).

# الإدارة في مشروع كبير

## مقدمة

في المشاريع الكبيرة، مثل الكتب، فإن إبقاء أجزاء من مستندك في عدة ملفات .tex يجعل مهمة تصحيح الأخطاء وإجراء المزيد من التغييرات أسهل. ومن الأسهل تحديد كلمة أو عنصر معين في ملف قصير. ولهذا الغرض تشرح هذه المقالة كيفية إدارة المشاريع الكبيرة.

## إدخال الملفات وتضمينها

الأدوات القياسية لإدراج ملف LaTeX داخل ملف آخر هي `\input` و `\include`.

**أمر \input**

\input{filename}

استخدم هذا الأمر في متن المستند لإدراج محتويات ملف آخر باسم `filename.tex`؛ يجب ألا يحتوي هذا الملف على أي كود لمقدمة LaTeX (أي لا يوجد `\documentclass`, `\begin{document}` أو `\end{document}` ). لن تبدأ LaTeX صفحة جديدة قبل معالجة المادة الموجودة في `filename.tex`. `\input` يتيح لك تضمين `\input` الأوامر، داخل ملفات يتم إدخالها بالفعل بواسطة الملف الجذري.

**أمر \include**

\include{filename}

استخدم هذا الأمر في متن المستند لإدراج محتويات ملف آخر باسم `filename.tex`؛ مرة أخرى يجب ألا يحتوي هذا الملف على أي مقدمة LaTeX. ستبدأ LaTeX صفحة جديدة قبل معالجة المادة المُدخلة من `filename.tex`. احرص على عدم تضمين الامتداد `.tex` في اسم الملف، لأن ذلك سيمنع إدخال الملف (يمكن اختياريًا تضمين الامتداد مع `الإدخال` و `حزمة import`). لا يمكن تضمين `تضمين` الأوامر. كل ملف يتم `\include`تضمينه له ملف .aux خاص به يخزن معلومات التسميات التي تم إنشاؤها ومحتويات فهرس المحتويات وقائمة الأشكال، إلخ. يمكنك استخدام `\includeonly` مع قائمة مفصولة بفواصل لأسماء الملفات (تأكد من عدم وجود مسافات في البداية أو النهاية). إذا فعلت ذلك فلن تعالج LaTeX إلا الملفات الموجودة في تلك القائمة. يمكن استخدام هذا لتحسين سرعة التجميع إذا كنت تعمل فقط على جزء صغير من مستند كبير. ومع ذلك ستظل أرقام الصفحات والإشارات المتبادلة تعمل، لأن ملفات .aux الخاصة بالملفات المستبعدة ستظل تُعالج.

[افتح مثالًا لمشروع كبير على Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## المقدمة في ملف منفصل

إذا كانت مقدمة مستندك تحتوي على العديد من الأوامر المعرّفة من قِبل المستخدم أو تعريفات المصطلحات الخاصة بـ [المسرد](/latex/ar/bnyh-almstnd/05-glossaries.md)، فيمكنك وضعها في ملف منفصل. والطريقة الصحيحة هي إنشاء حزمة مخصصة، وهي ملف بامتداد .sty. لنرَ مثالًا:

```latex
\ProvidesPackage{example}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage[spanish, english]{babel}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{textcomp}
\usepackage{pgfplots}

\pgfplotsset{width=10cm,compat=1.9}

%أنماط الترويسة
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textbf{\textit{\nouppercase{\leftmark}}}}
\fancyhead[LO]{\textbf{\textit{\nouppercase{\rightmark}}}}
\fancypagestyle{plain}{ %
\fancyhf{} % إزالة كل شيء
\renewcommand{\headrulewidth}{0pt} % إزالة الخطوط أيضًا
\renewcommand{\footrulewidth}{0pt}}

%يجعل الأوامر \proof و\qedsymbol و\theoremstyle متاحة
\usepackage{amsthm}

%مسطرة
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

%تعريف اللمّة وعداد اللمّة
\newtheorem{lemma}{Lemma}[section]

%عداد التعريف
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]

%عداد النتيجة
\newtheorem{corolary}{Corolary}[section]

%أوامر للأعداد الطبيعية والأعداد الصحيحة والطوبولوجيا والغلاف المحدب والكرة والقرص والبُعد والحدود وغير ذلك قليلًا
\newcommand{\E}{{\mathcal{E}}}
\newcommand{\F}{{\mathcal{F}}}
...

%بيئة مثال
\theoremstyle{remark}
\newtheorem{examle}{Example}

%عداد المثال
\newcommand{\reiniciar}{\setcounter{example}{0}}
```

كان من الممكن وضع جميع الأوامر في هذا الملف داخل المقدمة، لكن الملف الرئيسي كان سيصبح مُربكًا بسبب هذه الكمية الكبيرة من الشيفرة، كما أن تحديد متن المستند الفعلي داخل ملف كبير كهذا كان سيصبح مهمة شاقة.

يمكن أيضًا وضع هذا الملف في ملف .tex عادي واستيراده باستخدام الأمر `حزمة import` (انظر إلى [القسم التالي](#importing-files)،) لكن ملف .sty يمنع الأخطاء المحتملة إذا تم استيراد الملف عن طريق الخطأ أكثر من مرة.

لاحظ أن السطر الأول من المثال هو

```latex
\ProvidesPackage{example}
```

وهذا يعني أننا علينا استيراد هذه الحزمة على أنها *المعرَّفة يدويًا* في الملف الرئيسي، أي باستخدام الأمر

```latex
\usepackage{example}
```

كما هو موضح في [المقدمة](#introduction).

*ملاحظة: ملف .sty أكثر مرونة بكثير، ويمكن استخدامه لتعريف وحدات الماكرو الخاصة بك، كما يمكن تمرير معاملات اختيارية، انظر* [*كتابة حزمة خاصة بك*](/latex/ar/mlfat-alfeh/03-writing-your-own-package.md).

[افتح مثالًا لمشروع كبير على Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## استخدام حزمة import

كما ذُكر أعلاه، فإن الأدوات القياسية لإدراج ملف LaTeX داخل ملف آخر هي `\input` و `\include`، لكنها عُرضة للأخطاء إذا كانت هناك حاجة لاستيراد ملفات متداخلة. ولهذا السبب قد ترغب في التفكير في الحزمة **حزمة import**.

فيما يلي مثال لكتاب تُخزن فيه الأقسام والأوامر المعرّفة من قِبل المستخدم في ملفات منفصلة، وتُخزن فيه ملفات الصور لكل فصل في مجلدات منفصلة مع ملف .tex الخاص بكل فصل.

```latex
\documentclass[a4paper,11pt]{book}
\usepackage{import}
\usepackage{example}

\usepackage{makeidx}
\makeindex

\begin{document}

\frontmatter
\import{./}{title.tex}

\clearpage
\thispagestyle{empty}

\tableofcontents

\mainmatter
\chapter{First chapter}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}

\chapter{Additional chapter}
\import{sections/}{section2-1.tex}

\chapter{Last chapter}
\import{sections/}{section3-1.tex}

\backmatter

\import{./}{bibliography.tex}

\end{document}
```

كما ترى، المثال هو كتاب يتألف من ثلاثة فصول وعدة أقسام في ملف رئيسي مرتب يجلب ملفات خارجية لإنتاج المستند النهائي. ويُستخدم الأمر `\frontmatter` في فئة مستند book لصفحات المستند الأولى، ويتم ضبط نمط ترقيم الصفحات إلى الأرقام الرومانية بواسطة هذا الأمر؛ الأمر `\mainmatter` يعيد تعيين ترقيم الصفحات ويغيّر النمط إلى العربية، `\backmatter` ويعطّل ترقيم الفصول (مناسب للمراجع والملاحق).

```latex
\chapter{First chapter}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}
```

أولًا، أضف هذا السطر إلى مقدمة مستندك:

```latex
\usepackage{import}
```

ثم استخدم `\import{ }{ }`المعامل الأول داخل الأقواس المعقوفة هو الدليل الذي يوجد فيه الملف، ويمكن أن يكون نسبيًا إلى دليل العمل الحالي أو مطلقًا. أما المعامل الثاني فهو اسم الملف المراد استيراده

كما يتوفر أيضًا الأمر `\subimport` الذي له الصياغة نفسها، لكن إذا استُخدم في أحد الملفات المستوردة في الملف الرئيسي، فسيكون المسار نسبيًا إلى ذلك الملف الفرعي. على سبيل المثال، فيما يلي محتويات الملف "section1-1.tex" الذي استُورد في المثال السابق:

```latex
\section{القسم الأول}

فيما يلي مخطط ثلاثي الأبعاد بسيط

\begin{figure}[h]
\centering
\subimport{img/}{plot1.tex}
\caption{Caption}
\label{fig:my_label}
\end{figure}

[...]
```

كما ترى، يستورد هذا الملف [مخطط pgf](/latex/ar/khas-balmjal/08-pgfplots-package.md) ملفًا يُسمى "plot1.tex" ينشئ مخططًا ثلاثي الأبعاد. ويتم استيراد هذا الملف بواسطة

```latex
\subimport{img/}{plot1.tex}
```

من مجلد "img"، الموجود داخل مجلد "sections".

إذا `\import` استُخدم بدلاً من ذلك، فسيكون المسار *img/* نسبيًا إلى الملف الرئيسي، بدلاً من مجلد "sections" حيث يتم حفظ "section1-1.tex".

[افتح مثالًا لمشروع كبير على Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

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

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

* [مشاريع LaTeX متعددة الملفات](/latex/ar/bnyh-almstnd/08-multi-file-latex-projects.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/mlfat-alfeh/03-writing-your-own-package.md)
* [كتابة صنف خاص بك](/latex/ar/mlfat-alfeh/04-writing-your-own-class.md)
* [المقدمة التي ليست قصيرة جدًا إلى LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [`حزمة import` توثيق الحزمة](ftp://sunsite.icm.edu.pl/pub/CTAN/macros/latex/contrib/import/import.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/07-management-in-a-large-project.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.
