Date Редакция Категория comp Теги LaTeX

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

Допустим, у нас есть следующий файл:

\documentclass[a4paper]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

\begin{document}

\section{Первая}
Текст секции.

\section{Вторая}
Текст секции.

\section{Третья}
Текст секции.

\end{document}

Сохраним каждую секцию в отдельном файле вида

\section{Первая}
Текст секции.

и включим эти файлы в документ:

\documentclass[a4paper]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

\begin{document}

\input{file1}
\input{file2}
\input{file3}

\end{document}

В нашем случае файлы называются file1.tex, file2.tex, file3.tex, хотя ни имя файла, ни расширение особого значения не имеют. Расширение .tex можно опустить.

Теперь мы можем, закомментировав ненужные input'ы, работать с оставшейся частью документа.

Кроме \input, для вставки в документ текстовых файлов используется команда \include. Она эквивалентна

\clearpage
\input{file}
\clearpage

т. е. помещенный в файл фрагмент документа будет начинаться с новой страницы. Поэтому с помощью \include удобно вставлять файлы с отдельными главами документа. При этом расширение .tex нужно опустить. Кроме того, \include, в отличие от \input, нельзя использовать рекурсивно, т. е. нельзя помещать include'ы в уже вложенные файлы.

Выделять интересующий фрагмент документа при помощи комментариев не слишком удобно, так как при этом сбивается нумерация страниц, переделывается оглавление документа, нарушаются ссылки на литературу и т. п. Чтобы этого не происходило, в преамбуле документа используется команда \includeonly с указанием имен файлов, которые необходимо включить в документ. \includeonly используется только совместно с командами \include, на \input она не действует.

Допустим, что на определенном этапе подготовки документа нас интересует только материал, содержащийся в файлах file2.tex, file3.tex

\documentclass[a4paper]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

\includeonly{file2,file3} % пробела после запятой быть не должно

\begin{document}

\include{file1}
\include{file2}
\include{file3}

\end{document}

В этом случае в документ будут вставлено только содержимое файлов file2.tex и file3.tex (каждого -- с новой страницы), но нумерация страниц, секций, оглавление документа и т. п. не изменятся -- для не вошедших в \includeonly файлов они останутся теми же, что и после последней компиляции всего документа. Для достижения этого результата потребуется дважды транслировать документ.



Комментарии

comments powered by Disqus