Работа в системе LaTeX
de301fb4

Разбиение исходного файла на части


Команды, рассматриваемые в этом разделе, помогают разумно организовать исходный текст.

Часто бывает удобно разбить большой текст на несколько частей, хранящихся в разных файлах. Чтобы можно было объединить их в одно целое, в LaTeX'е предусмотрена команда \input. Если в тексте написать

\input{имя\_файла}

то TeX будет работать так, как если бы вместо строки с командой \input стоял текст файла, имя которого вы указали.

Обычно, готовя текст большого объема, создают небольшой " головной файл", в котором между \begin{document} и \end{document} размещены строки с командами \input, задающими включение файлов, в которых и записана основная часть текста. Например, книгу из четырех глав, записанных в файлах "ch1.tex",..., "ch4.tex", можно организовать в виде файла из девяти строчек (именно его, а не файлы с отдельными главами, надо будет передать для обработки LaTeX'у):

\documentclass[11pt]{report} \frenchspacing \pagestyle{plain} \begin{document} \input{ch1} \input{ch2} \input{ch3} \input{ch4} \end{document}

(Если расширение файла, являющегося аргументом команды \input, не указано, то LaTeX по умолчанию добавляет расширение tex.)

Ради реализма мы в этом примере включили в преамбулу парочку команд, которые могли бы там появиться и на практике. Первая из них означает, что после знаков препинания пробелы не увеличиваются, как это и принято в России и континентальной Европе (по умолчанию эти пробелы увеличиваются в соответствии с англо-саксонской традицией), а вторая — что номера страниц будут печататься снизу и при этом колонтитулов не будет. Позже мы рассмотрим эти вещи подробнее.

Если в вашем тексте присутствуют команды \input, то в процессе трансляции при начале чтения соответствующего файла на экран выдается его имя, чтобы вы понимали, к какому из ваших файлов будут относиться дальнейшие сообщения TeX'а (если таковые будут).

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

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

Для этого надо добавить в преамбулу команду \includeonly, в аргументе которой приведен (через запятые) список обрабатываемых файлов. Пусть, скажем, в вышеприведенном примере работа над первой главой уже завершена, за четвертую главу вы еще не принялись, а вторую и третью уже вовсю редактируете. Тогда головной файл можно организовать так:

\documentclass[11pt]{report} \frenchspacing \pagestyle{plain} \includeonly{ch2,ch3} \begin{document} \include{ch1} \include{ch2} \include{ch3} \include{ch4} \end{document} (Внимание! В аргументе команды \include расширение ".tex" опускать необходимо! Файлы с расширениями, отличными от ".tex", с помощью этой команды подключать нельзя.) Когда вы перейдете к работе над другими главами, аргумент команды \includeonly надо будет соответствующим образом изменить, а когда весь текст будет готов, можно вообще удалить \includeonly из файла. При этом количество запусков LaTeX'а, необходимых для получения правильных ссылок, задаваемых командами \ref и \pageref , будет меньше, чем при проведении аналогичных манипуляций с \input .

Команду \include нельзя употреблять в файле, который сам включается в текст с помощью \include (для \input такого запрета нет).


Содержание раздела