Крупные проекты LaTeX: структура, просмотр глав и именование

БлогEasyLaTeX OfficialОпубликовано

Поддержка большого проекта LaTeX становится дорогой, если непонятно, в каком файле делать правку, компиляция замедляется, а разбросанные пакеты конфликтуют. Разграничьте обязанности файлов, централизуйте преамбулу, ограничивайте предпросмотр и согласуйте имена.

Организуйте каталог по обязанностям

Разделите главы, таблицы и изображения, чтобы имена подсказывали, где искать:

Plain text
project/├── main.tex              % Класс и порядок глав├── preamble.tex          % Пакеты и команды проекта├── chapters/│   ├── intro.tex│   ├── method.tex│   └── results.tex├── tables/               % Исходники таблиц для \input└── figures/

Для этого основного файла нужны preamble.tex и три файла глав по указанным путям. Для русского текста выберите XeLaTeX:

LaTeX
% main.tex\documentclass[11pt]{article}\usepackage{fontspec}\setmainfont{CMU Serif}\setsansfont{CMU Sans Serif}\setmonofont{CMU Typewriter Text}\usepackage[russian]{babel}\input{preamble}​% Раскомментируйте только для просмотра главы; для итогового вывода оставьте комментарий% \includeonly{chapters/method}​\begin{document}\include{chapters/intro}\include{chapters/method}\include{chapters/results}\end{document}

Основной файл хранит класс, общую настройку и порядок глав. Редактирование главы обычно означает изменение одного файла в chapters/.

Подключайте пакеты через одну точку входа

Подключение пакета в нескольких местах с разными параметрами может вызвать Option clash for package .... Храните список пакетов в preamble.tex:

LaTeX
% preamble.tex — все пакеты проекта подключаются здесь\usepackage{amsmath,amssymb}\usepackage{graphicx}\usepackage{booktabs}\usepackage[hidelinks]{hyperref}

Подключайте его через \input до \begin{document}. Порядок пакетов важен; hyperref обычно ближе к концу. Файлы глав не должны независимо повторно подключать те же пакеты. Языковые и шрифтовые настройки русского примера также можно централизовать в преамбуле, оставив одно подключение.

Просматривайте выбранные главы через \includeonly

При предпросмотре \includeonly ограничивает набор подключённых глав. Нумерация и ссылки исключённых глав зависят от существующей вспомогательной информации; не предполагайте её сохранность в каждом задании платформы.

Команда действует на \include, а не \input. Ссылки на главу без доступной вспомогательной информации могут отображаться как ??.

LaTeX
% Просмотр только главы о методе\includeonly{chapters/method}

Обновляются только включённые главы. При изменении длины номера пропущенных страниц могут устареть. Перед передачей снимите ограничение и скомпилируйте весь документ.

Используйте префиксы меток

ОбъектПрефиксПример
Разделsec:\label{sec:method}
Рисунокfig:\label{fig:pipeline}
Таблицаtab:\label{tab:ablation}
Формулаeq:\label{eq:update}

Повторяющиеся метки могут не останавливать компиляцию, но вызывают multiply-defined labels и неверные ссылки. Префиксы упрощают поиск по проекту; сами имена всё равно должны быть уникальными.

В плавающем объекте ставьте \label после \caption. Обратный порядок может без ошибки компиляции привязать метку к предыдущему счётчику.

Проверьте пути, метки и итоговую сборку

После правки сопоставьте список подключений с деревом файлов, проверьте цели ссылок и решите, нужна ли полная компиляция.

СообщениеПричинаДействие
There were multiply-defined labels.Имя метки повторяетсяНайдите и переименуйте повторы; обновите ссылки полной компиляцией
Reference 'fig:x' undefinedНет сведений о метке или глава исключенаСкомпилируйте весь документ и проверьте расположение метки
Label(s) may have changed.Ссылки изменились при компиляцииДождитесь повторных проходов; исследуйте устойчивое предупреждение
Option clash for package hyperref.Пакет подключён с конфликтующими параметрамиСосредоточьте его в preamble.tex
\include cannot be nested.Глава содержит другой \includeВнутри главы используйте \input

По теме: сокращение повторяющегося кода, диагностика компиляции и безопасные правки ИИ.

Главное

  • Разделяйте основную структуру, главы, исходники таблиц и изображения.
  • Подключайте пакеты в одном месте.
  • Используйте просмотр глав только для локальной проверки; перед передачей компилируйте всё.
  • Используйте удобные для поиска префиксы и уникальные метки.

Импортируйте весь каталог в EasyLaTeX и выберите main.tex основным файлом.

Крупные проекты LaTeX: структура, просмотр глав и именование | EasyLaTeX