LuaTeX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
LuaTeX
Логотип программы LuaTeX
Скриншот программы LuaTeX
Тип Настольное издательское ПО
Авторы Т. Хокуотер, Х. Хенкель, Г. Хэген
Разработчики Т. Хокуотер, Х. Хенкель, Г. Хэген и др. (7 активных разработчиков)
Написана на Lua, C
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2007 (2007)
Последняя версия 1.17 (21 декабря 2023; 10 месяцев назад (2023-12-21)[1])
Репозиторий gitlab.lisn.upsaclay.fr/…
Состояние Активный
Лицензия GNU General Public License
Сайт luatex.org
Логотип Викисклада Медиафайлы на Викискладе

LuaTeX — система компьютерной вёрстки, основанная на TeX. Представляет собой расширенную версию pdfTeX с встроенным движком Lua. После тестирования была принята командой pdfTeX как преемник pdfTeX (в свою очередь являющегося расширением eTeX, производящим документы PDF). Позднее в проект была включена функциональность Aleph (в частности, различные направления вёрстки). Изначально проект спонсировался Oriental TeX project, основанным И. Хамидом, Г. Хэгеном и Т. Хокуотером. Входит в наиболее популярные дистрибутивы TeX: TeXLive, MikTeX[2].

Цели проекта

[править | править код]

Главная цель проекта — предложить версию TeX, все внутренние механизмы которого доступны из Lua. В процессе открытия механизмов TeX многие части внутреннего кода были переписаны. Вместо жёсткого встраивания новых возможностей в сам TeX пользователи (или авторы пакетов) могут писать свои расширения. LuaTeX имеет нативную поддержку шрифтов OpenType[2]. В отличие от XeTeX, доступ к шрифтам осуществляется не через библиотеки операционной системы, а через библиотеку, основанную на FontForge[3].

Связанный проект — MPLib[4] (расширенный библиотечный модуль MetaPost), который добавляет в TeX графический движок. В команду разработки LuaTeX входят Л. Скарсо, Т. Хокуотер, Х. Хенкель и Г. Хэген.

Возможности

[править | править код]
  • Возможность внедрения кода на Lua в исходный текст программ и документов. LuaTeX может работать, в зависимости от ключей в командной строке, в качестве интерпретатора Lua или компилятора в байт-код.
  • Поддержка создания документов как в формате PDF, так и DVI.
  • Поддержка кодировки UTF-8 для исходных документов.
  • Поддержка шрифтов OpenType в тексте и в формулах.
  • Полный доступ к внутренним механизмам TeX и к средствам операционной системы. Возможность программирования колбэков для таких задач, как поиск файлов, чтение и препроцессинг текстового ввода, определение шрифтов, создание токенов, манипуляции со списками узлов, отображение информации[3].
  • Полная интеграция с MetaPost, возможность внедрения кода MetaPost в исходный текст документов и библиотек, написанных на языке TeX.
  • Возможность обращения к данным, содержащимся в файлах различных форматов (к примеру, XML), а также к базам данных средствами Lua.
  • Высокая степень поддержки микротипографики с использованием пакета microtype.
  • Большая, нежели в традиционном TeX, разрядность внутренних регистров и счётчиков.
  • Поддержка вёрстки в различных направлениях.

Первая публичная бета-версия вышла в TUG 2007 в Сан-Диего. Первый формальный релиз был запланирован на конец 2009, первая стабильная промышленная версия была выпущена в 2010[5]. Версия 1.00 выпущена в сентябре 2016.

На октябрь 2010 года и ConTeXt mark IV, и LaTeX с дополнительными пакетами (например, luaotfload, luamplib, luatexbase, luatextra) используют новые возможности LuaTeX. Оба поддерживаются в TeX Live 2010 с LuaTeX 0.60 и в LyX[6]. Специальная поддержка в plain TeX ещё в разработке по состоянию на 2019 год.

Примечания

[править | править код]
  1. LuaTeX reference manual
  2. 1 2 CTAN.
  3. 1 2 LuaTeX.
  4. mplib.
  5. LuaTeX roadmap. Дата обращения: 6 февраля 2019. Архивировано 1 февраля 2021 года.
  6. LyX wiki | LyX / LuaTeX (англ.). wiki.lyx.org. Дата обращения: 31 августа 2017. Архивировано 31 августа 2017 года.