Що таке TeX? | Aspose.TeX .NET
Чим TeX НЕ Є
TeX точно не є форматом взагалі.
ЩО ТАКЕ TeX?
Отже, що ТАКЕ TeX? Ну, це питання, як сказав Гамлет1. Спробуємо відповісти на нього максимально просто.
Уявіть, що у нас є мова програмування, яка складається з двох елементарних команд (так звані керуючі послідовності), або примітивів, \a
і \b
. І на цій мові ми можемо писати програми для верстки документів (книг, статей тощо). Назвемо цю мову (L1). Для того, щоб ці програми виконувалися певним чином, у нас є певний механізм, який інтерпретує команди цієї мови.
Тепер припустимо, що під час написання програми верстки для якогось документа ми виявили, що підпослідовність \a \b \a
зустрічається досить часто. А також припустимо, що в нашій мові є інший примітив \def
, який дозволяє нам визначати підпрограми або макроси. Назвемо цю мову (L2). За цих обставин ми можемо визначити макрос \def\c{\a \b \a}
на початку програми та замінити кожне входження підпослідовності на \c
як для кращої читабельності, так і для скорочення.
Тепер, якщо ми хочемо набрати інший документ, у програмі якого ця підпослідовність команд також часто зустрічається, нам доведеться визначити цей макрос знову. Але припустімо, що наша система здатна завантажити макрос \c
у його внутрішній стан, а потім зберегти цей стан як двійковий файл (дамп), який потім буде автоматично завантажено («поверх» (L2) набір мовних команд) перед обробкою програм набору кожного документа, у якому потрібен макрос \c
. Набір примітивів, розширений макросом \c
, ми називатимемо форматом. Таким чином, наш формат є макророзширенням низькорівневої примітивної мови (L2).
Механізм також містить низку внутрішніх регістрів, або внутрішніх параметрів, до яких можна отримати доступ за допомогою керуючих послідовностей. Окрім визначень макросів, формат може містити вирази ініціалізації для цих параметрів.
Сталося так, що Дональд Е. Кнут визначив мову, подібну до **(L2) **, але з набагато ширшим набором примітивів, які він назвав TeX. Він також створив двигун, який розумів (і досі розуміє) мову TeX. Він також назвав це TeX.
На щастя, це було не єдине, що він робив. Він також запропонував макророзширення, або формат, який він назвав Plain TeX, що зробило написання програм більш зручним. Початковий набір примітивів TeX іноді називають VirTeX («Vir» для «незайманого»), і, формально, також є форматом, якщо розглядати разом із стандартними внутрішніми параметрами.
Тож, з одного боку, TeX ЦЕ мова програмування. А з іншого боку, це ЦЕ механізм інтерпретатора, який розуміє цю мову. І, з третього боку, TeX є більш загальним поняттям, що означає систему верстки в цілому.
Єдине, що тут залишається зауважити, це те, що фактично символи самого тексту, який набирається, також є командами, які змушують механізм TeX вводити відповідні символи (з урахуванням поточного кодування введення) за допомогою поточних налаштувань шрифту (які, у свою чергу, керуються керуючими послідовностями). Таким чином, при визначенні макросів ми також можемо використовувати символи.
Ми сподіваємося, що відтепер питання “Що таке TeX?” більше не існує у вашому розумі.
1 ↩︎