Один корневой файл, много глав

include vs input, includeonly и написание одной главы за раз.

Один корневой файл, много глав

Работать с тезисом в одном файле .tex становится невыносимо где-то во второй главе: прокрутка заменяет мышление, а каждая компиляция обрабатывает всё. Стандартное решение — это один корневой файл, содержащий класс и преамбулу, причем каждая глава находится в отдельном файле. Корневой файл сшивает их вместе.

Корневой файл

% main.tex
\documentclass{report}
\begin{document}
\include{chapters/intro}
\include{chapters/methods}
\include{chapters/results}
\end{document}

main.tex — единственный файл, который вы когда-либо компилировали. Каждый \include называет другой файл без расширения .tex, используя косую черту на каждой платформе, и извлекает его содержимое в этот момент. Сами файлы глав содержат только контент, обычно начинающийся с \chapter{...}. У них нет \documentclass и собственной среды document, потому что они являются фрагментами этого документа, а не документами.

включение вместо ввода

Две команды включения ведут себя по-разному, и различия решают, какую и где использовать. \include начинает новую страницу перед материалом, что соответствует главам, и записывает отдельный файл .aux для каждого включенного файла, что делает возможной выборочную компиляцию. \input представляет собой обычную текстовую вставку: без разрыва страницы, без отдельного .aux, и его можно вложить внутрь другого ввода. Это делает \input подходящим инструментом для фрагментов размером меньше главы, например, для большой таблицы, хранящейся в отдельном файле, или в общем файле макросов. Следует помнить одно структурное правило: \include не может быть вложен во включаемый файл, тогда как \input можно использовать где угодно.

Составление одной главы за раз

\includeonly{chapters/methods}

Размещенный в преамбуле, \includeonly сообщает LaTeX обрабатывать только перечисленные файлы, продолжая читать сохраненные данные .aux всех остальных. Компиляция становится значительно быстрее, а поскольку метки и количество страниц других глав воспроизводятся из их файлов .aux, перекрестные ссылки и нумерация в главе, которую вы пишете, остаются верными. Эта вторая половина является причиной того, что я предпочитаю это закомментировать строки \include, что полностью забывает другие главы и превращает каждую \ref в них в ??.

Прокомментируйте строку \includeonly для полных сборок и всегда запускайте полную компиляцию перед публикацией PDF-файла, поскольку устаревшие данные .aux могут отставать от изменений, внесенных в исключенных главах. Какие файлы в полученной папке являются вашими, а какие сгенерированы, смотрите файлы в реальном проекте.

Вернуться к Полная форма