13.3. ЯЗЫКИ РАЗМЕТКИ
769
f) другие символы переключения режимов (например, символ ^ включает
режим верхнего индекса, символ \ переключает лексический анализатор
в режим создания атома).
Из сказанного выше видно, что обработка текста процессором языка раз-
метки T
E
X включает в себя прежде всего глубокое преобразование текста
на самом языке T
E
X, постепенно низводя его на самый низший уровень ко-
манд. Поэтому язык T
E
X снабжен мощной системой обобщенных вычисле-
ний, которая практически не видна его обычным пользователям, поскольку
они ограничиваются системами определений и метаопределений, образую-
щих пакеты и форматы языка T
E
X.
В современной терминологии, формат языка T
E
X — глобальная система
определений, задающая практически новый язык разметки, в основном рас-
ширяющий T
E
X.
21
Пакет аналогичен модулю в языках программирования
и пишется для более частных целей. Данный текст подготовлен с помощью
стандартного формата L
A
T
E
X2ε и пакета
ffit
, написанного одним из авторов.
Система обобщенных вычислений языка T
E
X важна еще и потому, что
она впитала в себя опыт мощного средства высокоуровневого программиро-
вания, бурно развивавшееся до 80-х гг. Возврат к этому средству на будущем
витке развития неизбежен, и поэтому забывать его не стоит. Это языки ма-
кроопределений или макрокоманд.
Основной внутренней единицей системы T
E
X является атом (токен, в
терминологии T
E
X) — последовательность символов, рассматриваемая как
неделимая. Обычные символы являются токенами. Далее, в обычном кон-
кретном синтаксисе как токен рассматривается последовательность, подоб-
ная
\this
, начинающаяся со спецсимвола
\
и содержащая лишь буквы. И, на-
конец, любой символ дает возможность определить простейший токен, на-
пример,
\#
.
Каждому токену, не являющемуся символом, должно быть сопоставлено
определение, или (макро)раскрытие, имеющее вид
\def\ИМЯ ПАРАМЕТРЫ {ТЕКСТ ПОДСТАНОВКИ}
Внутри текста подстановки параметры обозначаются выражениями
#1
, ...,
21
И что исключительно важно, одновременно запрещающий использование некоторых низ-
коуровневых возможностей языка T
E
X, замещенных более высокоуровневыми средствами
формата! В современных пакетах и инструментальных системах уж очень заботятся о со-
вместимости назад, стесняясь запретить низкоуровневые средства, вступающие в глубокое
концептуальное противоречие с предлагаемыми высокоуровневыми. Сообщество T
E
X с са-
мого начала отказалось от этого фетиша и не жалеет о нем.