TeX

или TeX — система компьютерной вёрстки, разработанная американским профессором информатики Дональдом Кнутом в целях создания компьютерной типографии. В неё входят средства для секционирования документов, для работы с перекрёстными ссылками. В частности, благодаря этим возможностям, TeX популярен в академических кругах, особенно среди математиков и физиков.

Название произносится как «тех» (от  — «искусство», «мастерство»).

Тип MIME для TeX — application/x-tex.

TeX является свободным ПО.

Особенности 
В отличие от обыкновенных текстовых процессоров и систем компьютерной вёрстки, построенных по принципу WYSIWYG, в TeX’е пользователь лишь задает текст и его структуру, а TeX самостоятельно на основе выбранного пользователем шаблона форматирует документ, заменяя при этом дизайнера и верстальщика.
Документы набираются на собственном языке разметки в виде обычных ASCII-файлов, содержащих информацию о  текста или выводе изображений. Эти файлы (обычно имеющие расширение «.tex») транслируются специальной программой в файлы «.dvi» (device independent — «независимые от устройства»), которые могут быть отображены на экране или напечатаны. DVI-файлы можно специальными программами преобразовать в PostScript, PDF или другой электронный формат.

Ядро TeX’а представляет собой язык низкоуровневой разметки, содержащий команды отступа и смены шрифта. Огромные возможности в TeX’е предоставляют готовые наборы макросов и расширений. Наиболее распространённые расширения стандартного TeX’а (наборы шаблонов, стилей и т. д): LaTeX (произносится «латех» или «лейтех») и AMS-TeX. При использовании пакета расширения LaTeX можно превратить разросшуюся статью в книгу изменением одного слова в исходном файле, вставлять оглавление одной командой, не задумываться о нумерации разделов, теорем, рисунков. Есть много пакетов для оформления химических формул (например, пакет XyMTeX), диаграмм (xypic), создания презентаций и визитных карточек и тому подобного.

Использование 
TeX можно использовать для всех видов текста, начиная с короткого письма и заканчивая многотомными книгами, причём изначально TeX создавался для более длинных текстов и научных работ. Многие большие научные издательства используют его для книгопечатания или книжного набора. Особую силу имеют как формульный набор, так и очко шрифта.

С недавних пор стало возможным использование TeX для автоматического создания сложного макета для XML-данных. Различия в синтаксисе между двумя дескрипторными языками могут быть преодолены с помощью «TeXML». Таким образом, в контексте XML-публикации TeX можно рассматривать в качестве альтернативы XSL-FO.

Шрифты 
Для создания шрифтов совместно с TeX’ом используется специально разработанная Д. Кнутом система METAFONT, в которой шрифты описываются программами на специализированном языке Meta. Могут также использоваться векторные шрифты в формате PostScript Type 1, TrueType и OpenType.

История 

Первый том книги «Искусство программирования» Д. Кнута был опубликован в 1969 году и печатался методом монотипии, технологии XIX века, которая давала на выходе издание в «хорошем классическом стиле», что нравилось Кнуту. Когда в 1976 году публиковалось второе издание второго тома, всю книгу пришлось набирать вновь, поскольку монотипия почти повсеместно была замещена фотографической техникой, и оригинальные шрифты больше не использовались.
Однако 30 марта 1977 года, когда Кнут получил новые оттиски, он увидел, что они выглядят ужасно. Примерно в это же время Кнут впервые увидел результат работы высококачественной цифровой типографической системы и заинтересовался возможностями цифровой типографии. Не оправдавшие ожиданий оттиски дали ему дополнительный толчок к тому, чтобы, разработав свою типографическую систему, решить проблему раз и навсегда. 13 мая 1977 года он написал заметку самому себе, описывающую базовые возможности TeX’а.

Он планировал завершить систему во время своего творческого отпуска 1978 года, но финальная версия языка появилась на свет лишь в 1979 году. Летом 1978 года, когда Кнут писал первую версию TeX’а, в Стэнфорде находился . Осенью того же года он вернулся в MIT и переписал систему ввода-вывода TeX под операционную систему . Первая версия TeX’а была написана на языке программирования  и работала на PDP-10 под операционной системой . Для следующих версий Кнут изобрёл концепцию «грамотного программирования» (), способ получения совместимого исходного кода и документации к нему (конечно, в виде текста на TeX’е) из одного и того же оригинального файла. Этот язык был назван WEB и производил программы на Паскале.

Новая, переписанная с нуля версия TeX’а, была издана в 1982 году и названа TeX82. Помимо других изменений первоначальный алгоритм переносов был заменён новым, написанным Франком Ляном (Frank Liang). Чтобы обеспечить воспроизводимость результата на различном оборудовании, вместо арифметики с плавающей запятой TeX82 использовал арифметику с фиксированной запятой. Помимо этого под нажимом Гая Стила в TeX82 появился настоящий язык программирования.

В 1989 году Дональд Кнут выпустил новые версии систем TeX и METAFONT. Вопреки своему желанию сохранить программу неизменной, Кнут осознал, что 7-битного ASCII недостаточно, чтобы обеспечить ввод текста на разных языках. Таким образом, главным изменением в версии 3.0 была возможность работать с 8-битными входными данными, которые позволяли использовать 256 различных символов.

С версии 3.0 TeX использует оригинальную систему нумерации версий: каждое обновление добавляет дополнительную десятичную цифру в конце номера версии так, что она асимптотически приближается к π. Это отражает тот факт, что текущая версия TeX’а — 3.1415926 — очень стабильна, и возможны лишь мелкие обновления. Последнее обновление было в марте 2008 года. На версии 3.0 дизайн системы был заморожен, поэтому добавление новой функциональности не планируется, и все новые версии будут содержать только исправления ошибок. Хотя Дональд Кнут сам предложил несколько областей, в которых TeX мог бы быть улучшен, он тем не менее считал, что существование неизменной версии, которая бы выдавала одинаковый результат сейчас и в будущем, важнее, чем добавление новых возможностей. Поэтому он заявил, что «последнее изменение (сделанное после моей смерти)» сменит номер версии на , и с этого момента все ошибки станут особенностями. Точно так же версии системы METAFONT, начиная с версии 2.0, асимптотически приближаются к  и так же завершатся на  после смерти Кнута.

Сообщество 

Известные организации в сообществе TeX включают группу пользователей TeX ( Users Group сокращённо TUG), которая издает TUGboat и The PracTeX Journal, охватывающие широкий спектр тем в цифровой типографике, относящихся к TeX. Deutschsprachige Anwendervereinigung TeX (DANTE) — большая группа пользователей в Германии. Группа пользователей TeX была основана в 1980 году для образовательных и научных целей, представляет собой организацию для тех, кто интересуется типографикой и дизайном шрифтов, а также является пользователями системы набора текста TeX, изобретенной Кнутом. Группа пользователей TeX представляет интересы пользователей TeX во всем мире. Группа пользователей TeX издает журнал TUGboat три раза в год DANTE издает Die TeXnische Komödie четыре раза в год. Другие группы пользователей включают DK-TUG в Дании, GUTenberg во Франции, GuIT в Италии, NTG в Нидерландах и UK-TUG в Великобритании; группы пользователей совместно ведут полный список. Российская группа пользователей  CyrTUG самораспустилась в 1999 году.

Дистрибутивы 
Распространённые комплекты вёрстки на основе TeX’а: для Windows — TeX Live и MikTeX, для UNIX-подобных систем — TeX Live и teTeX (последний более не поддерживается — первый считается его преемником), для Mac OS — MacTeX.

Разновидности и расширения 
 LaTeX
 pdfTeX
 XeTeX
 LuaTeX
 Omega (TeX)
 BibTeX
 ABC (нотная запись)
 XyMTeX

См. также 
 CTAN — архив документации и программного обеспечения для TeX
 TUG — группа пользователей TeX’а
 ChiWriter — текстовый редактор для набора научных текстов для среды MS-DOS

Примечания

Литература

Ссылки 
 Кириллический TeX на сайте МГУ
 
  — русское ЖЖ-сообщество о TeX’е.
 TeXLive — дистрибутив TeX Live.
 MiKTeX — дистрибутив MiKTeX.
 TeX Users Group — группа пользователей TeX’а.

Кроссплатформенное программное обеспечение
Программное обеспечение с лицензией GNU GPL
Научное программное обеспечение
Предметно-ориентированные языки программирования