(Строго говоря, сказанное в предыдущем абзаце не вполне соответствует действительности. Использование файлов формата — не только оптимизация, поскольку таблицы переносов, необходимые для верстки абзацев, могут быть обработаны TeX'ом только на стадии генерации форматного файла.)
Первый макропакет написал одновременно с программой TeX сам Кнут: это пакет Plain TeX, который также описан в книге [2].
Следующим после Plain TeX'а макропакетом, получившим распространение, стал AMS-TeX, созданный Майклом Спиваком (Michael Spivak). По сравнению с Plain TeX'ом в него были добавлены удобные средства для набора сложных формул, особенно многострочных. Подчеркнем, что всех AMS-TeX'овских эффектов можно добиться и в Plain TeX'е — возможности TeX'а новый макропакет расширить не может, — но там это требует громоздких записей и довольно серьезного знания TeX'овских внутренних механизмов; Спивак создал для этих целей удобные сокращенные обозначения (то есть макроопределения!), которыми математики стали с удовольствием пользоваться (и до сих пор пользуются).
В 1984 году Лесли Лэмпорт (Leslie Lamport) создал макропакет LaTeX (его заключительная версия, вышедшая в 1989 году, называется LaTeX 2.09). Возможно, одной из важнейших новых черт LaTeX 'а явилась возможность автоматической нумерации и — главное — автоматической генерации ссылок с помощью команд \label, \ref и \pageref. Достижение этого эффекта средствами Plain TeX'а требует весьма изощренного программирования.
Наконец, в 1995 году появилась новая версия LaTeX'а, а именно тот самый LaTeX
Подведем предварительные итоги: при практической работе программу TeX запускают не просто так, но с указанием форматного файла, соответствующего используемому макропакету; форматные файлы генерируются при установке TeX'а из исходных текстов макропакетов. Отметим еще, что исходные тексты макропакетов переносимы между платформами (DOS, Linux и т.п.), а форматные файлы зависят от реализации TeX'а.