Сборка большого документа из нескольких файлов (input и include)

Зачем делить большой проект на отдельные файлы

Дипломная работа, магистерская диссертация или монография содержит от 60 до 200+ страниц, сотни формул, рисунков и таблиц. Вести такой объем в одном файле main.tex неудобно: поиск нужного абзаца превращается в бесконечный скроллинг, а случайная ошибка в одном месте ломает компиляцию всей работы.

Модульная архитектура разбивает проект на логические части: введение, отдельные главы, заключение, список литературы и приложения лежат в изолированных файлах, собираемых главным корневым документом.

Разница между командами \input и \include

В LaTeX существует две директивы подключения внешних файлов, имеющие принципиальные различия (это особенно важно при выносе приложений и листингов в дипломной работе):

  • \input{путь/к/файлу} — буквально вставляет содержимое файла в текущее место документа «как есть». Не создает разрывов страниц. Идеально для преамбулы (\input{preamble.tex}), таблиц или фрагментов текста внутри раздела.
  • \include{путь/к/файлу} — вставляет файл, всегда предваряя и завершая его командой \clearpage (начиная новую страницу). Создает собственный вспомогательный файл .aux, что позволяет использовать механизм выборочной компиляции. Идеально для крупных глав (chapter).

Разбить диплом на несколько файлов latex: эталонная иерархия папок

Вот проверенная академическая структура проекта (разбить диплом на несколько файлов latex), рекомендованная при оформлении диплома по ГОСТ в LaTeX:

Структура файлов
my-diploma/
├── main.tex             % Главный файл со сборкой
├── preamble.tex         % Все пакеты и настройки ГОСТ
├── biblio.bib           % База источников BibTeX
├── chapters/            % Папка с главами работы
│   ├── 00-intro.tex     % Введение
│   ├── 01-analysis.tex  % Глава 1: Анализ предметной области
│   ├── 02-design.tex    % Глава 2: Проектирование системы
│   ├── 03-impl.tex      % Глава 3: Реализация и тестирование
│   └── 04-concl.tex     % Заключение
└── appendices/          % Приложения с кодом
    └── app-a-code.tex

В главном файле main.tex сборка выглядит компактно и наглядно:

main.tex
\documentclass[14pt,a4paper]{report}
\input{preamble} % Подключаем преамбулу

\begin{document}
\include{chapters/00-intro}
\include{chapters/01-analysis}
\include{chapters/02-design}
\include{chapters/03-impl}
\include{chapters/04-concl}

\bibliographystyle{gost-numeric}
\bibliography{biblio}
\end{document}

Команда include latex и выборочная компиляция через includeonly

Когда вы работаете над конкретной главой, нет смысла каждый раз перекомпилировать весь стостраничный документ. Команда include latex поддерживает волшебную директиву \includeonly в преамбуле:

LaTeX
% Компилировать СТРОГО главу 2, сохраняя сквозные номера страниц и формул!
\includeonly{chapters/02-design}

Благодаря отдельным .aux файлам LaTeX сохранит верные перекрестные ссылки на формулы из других глав, но сборка займет 1 секунду вместо 15.

Продвинутый подход: пакет subfiles для автономной компиляции глав

Пакет subfiles позволяет компилировать каждую главу как автономный независимый документ (нажатием кнопки сборки прямо внутри 02-design.tex), так и в составе единого проекта main.tex без изменения кода.

Практические советы

1

Не указывайте расширение .tex

При вызове \include{chapters/intro} не дописывайте расширение .tex: LaTeX подставит его автоматически.

2

Запрет вложенных include

Внутри файла, подключенного через \include, нельзя вызывать другой \include. Для вложенных подфайлов используйте команду \input.

Попробуйте прямо сейчас

Организуйте структуру ВКР в Labkeeper

Онлайн-редактор с поддержкой многофайловых проектов LaTeX, быстрым переключением глав и компиляцией в один клик.

LaTeX editor screenshot
  • Полновесная компиляция: Получайте PDF профессионального качества с помощью встроенного LaTeX-компилятора.
  • 60 секунд на выполнение: Работайте со сложными документами без ограничений — лимит времени компиляции в разы выше, чем в аналогичных сервисах.
  • Умная конвертация: Любые вычислительные формулы автоматически преобразовываются в красивый LaTeX
  • Гибридный синтаксис: Используйте легковесные вставки Markdown прямо в сложном LaTeX-коде для ускорения работы.
bg

Другие статьи