> 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/uk/struktura-dokumenta/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` команди. Кожен файл, який `\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/uk/struktura-dokumenta/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}{Лема}[section]

%Лічильник означень
\theoremstyle{definition}
\newtheorem{definition}{Означення}[section]

%Лічильник наслідків
\newtheorem{corolary}{Наслідок}[section]

%Команди для натуральних чисел, цілих чисел, топології, опуклої оболонки, Ball, Disc, Dimension, boundary та ще кількох
\newcommand{\E}{{\mathcal{E}}}
\newcommand{\F}{{\mathcal{F}}}
...

%Середовище прикладу
\theoremstyle{remark}
\newtheorem{examle}{Приклад}

%Лічильник прикладів
\newcommand{\reiniciar}{\setcounter{example}{0}}
```

Усі команди в цьому файлі можна було б помістити в преамбулу, але головний файл став би через це заплутаним через таку велику кількість коду, а знайти власне тіло документа у такому великому файлі було б клопітким завданням.

Цей файл також можна було б помістити в звичайний файл .tex і імпортувати за допомогою команди `import` (див. [наступний розділ](#importing-files)), але файл .sty запобігає можливим помилкам, якщо файл випадково імпортовано більше ніж один раз.

Зверніть увагу, що перший рядок прикладу — це

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

це означає, що нам потрібно імпортувати цей пакет як *прикладі* у головному файлі, тобто за допомогою команди

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

як показано в [вступі](#introduction).

*Примітка: файл .sty набагато гнучкіший, його можна використовувати для визначення власних макросів, а також передавати необов’язкові параметри; див.* [*Створення власного пакета*](/latex/uk/faili-klasiv/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{Перший розділ}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}

\chapter{Додатковий розділ}
\import{sections/}{section2-1.tex}

\chapter{Останній розділ}
\import{sections/}{section3-1.tex}

\backmatter

\import{./}{bibliography.tex}

\end{document}
```

Як бачите, у прикладі є книга з трьома розділами та кількома підрозділами в охайному головному файлі, який підтягує зовнішні файли для створення кінцевого документа. Команда `\frontmatter` у класі документа book використовується для перших сторінок документа, цією командою стиль нумерації сторінок задається як римські цифри; команда `\mainmatter` скидає нумерацію сторінок і змінює стиль на арабський, `\backmatter` вимикає нумерацію розділів (підходить для бібліографії та додатків).

```latex
\chapter{Перший розділ}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}
```

Спочатку додайте цей рядок до преамбули вашого документа:

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

Потім використовуйте `\import{ }{ }`. Перший параметр у фігурних дужках — це каталог, де розташований файл; він може бути відносним до поточного робочого каталогу або абсолютним. Другий параметр — це ім’я файлу, який потрібно імпортувати

Також доступна команда `\subimport` яка має той самий синтаксис, але якщо її використовують в одному з файлів, імпортованих у головний файл, шлях буде відносним до цього підфайлу. Наприклад, нижче наведено вміст файлу «section1-1.tex», який було імпортовано в попередньому прикладі:

```latex
\section{Перший розділ}

Нижче наведено простий 3D-графік

\begin{figure}[h]
\centering
\subimport{img/}{plot1.tex}
\caption{Підпис}
\label{fig:my_label}
\end{figure}

[...]
```

Як бачите, цей файл імпортує [pgf-графік](/latex/uk/specializovani/08-pgfplots-package.md) файл під назвою «plot1.tex», який створює 3D-графік. Цей файл імпортується

```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/uk/struktura-dokumenta/08-multi-file-latex-projects.md)
* [Перехресні посилання на розділи та рівняння](/latex/uk/struktura-dokumenta/03-cross-referencing-sections-equations-and-floats.md)
* [Покажчики](/latex/uk/struktura-dokumenta/04-indices.md)
* [Глосарії](/latex/uk/struktura-dokumenta/05-glossaries.md)
* [Гіперпосилання](/latex/uk/struktura-dokumenta/09-hyperlinks.md)
* [Нумерація сторінок](/latex/uk/formatuvannya/03-page-numbering.md)
* [Односторонні та двосторонні документи](/latex/uk/formatuvannya/08-single-sided-and-double-sided-documents.md)
* [Кілька колонок](/latex/uk/formatuvannya/09-multiple-columns.md)
* [Форматування абзаців](/latex/uk/formatuvannya/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Розмір сторінки та поля](/latex/uk/formatuvannya/07-page-size-and-margins.md)
* [Лічильники](/latex/uk/formatuvannya/10-counters.md)
* [Нотатки на полях](/latex/uk/formatuvannya/15-margin-notes.md)
* [Жирний, курсив і підкреслення](/latex/uk/osnovi-latex/03-bold-italics-and-underlining.md)
* [Розміри, гарнітури та стилі шрифтів](/latex/uk/shrifti/01-font-sizes-families-and-styles.md)
* [Гарнітури шрифтів](/latex/uk/shrifti/02-font-typefaces.md)
* [Підтримка сучасних шрифтів у XeLaTeX](/latex/uk/shrifti/03-xelatex.md)
* [Підтримка міжнародних мов](/latex/uk/movi/03-international-language-support.md)
* [Розміри, гарнітури та стилі шрифтів](/latex/uk/shrifti/01-font-sizes-families-and-styles.md)
* [Створення власного пакета](/latex/uk/faili-klasiv/03-writing-your-own-package.md)
* [Створення власного класу](/latex/uk/faili-klasiv/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/uk/struktura-dokumenta/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.
