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



         

Макропакеты и форматы


Если получить программу TeX из кнутовского исходного текста (то есть перевести псевдокод в Pascal или C, а затем скомпилировать), то использовать полученную программу (" чистый TeX" — по-английски говорят еще "virgin TeX") для обработки текстов будет еще невозможно: чистый TeX не знает смысла ни спецзнаков2), ни макросов. В него встроены только "примитивные команды" (стр. 240).

Стало быть, прежде чем использовать TeX для дела, его надо обучить смыслу тех многочисленных макросов, которые используются в реальных tex-файлах. Набор TeX'овских макросов, используемый для обработки текстов, называется макропакетом. С одним из TeX'овских макропакетов вы уже неплохо знакомы: это тот самый LaTeX, которому посвящена вся эта книга.

Как же TeX узнает определения макросов из используемого вами макропакета? Ответ таков. Среди известных чистому TeX'у примитивных команд есть и команда, предназначенная для определения макросов (чем-то похожая на известные вам \newcommand и \renewcommand); если перед началом файла с текстом и формулами, который вы хотите обработать, приписать "исходный текст макропакета" — список всех используемых в макропакете (скажем, том же LaTeX'е) макроопределений — и передать полученный файл для обработки программе TeX, то TeX сначала узнает смысл используемых вами макросов, а к моменту начала собственно текста будет уже "во всеоружии" и благополучно создаст нужный вам dvi-файл.

На практике, однако, так никогда не делается: макропакеты имеют достаточно большой размер, и обработка их TeX'ом даже на современных компьютерах происходит не мгновенно, а уж в конце семидесятых годов потери времени при работе по такой схеме были бы совершенно неприемлемы. Поэтому Кнут применил в этом месте следующую оптимизацию: при установке TeX'а для работы с каким-то макропакетом TeX считывает исходный текст этого макропакета и записывает содержимое своих внутренних таблиц в специальный файл, называемый форматным; при запуске для работы с текстом TeX предварительно считывает информацию о макросах, содержащуюся в макропакете, из форматного файла (или попросту " формата", как иногда говорят), что существенно быстрее, чем всякий раз обрабатывать исходный текст макропакета заново.




Содержание  Назад  Вперед