Обзор LuaTeX: возможности, совместимость, установка и место среди TeX-движков
LuaTeX — не редактор документов и не программа для чтения PDF, а программируемый движок набора на базе TeX, который объединяет идеи pdfTeX, расширения e-TeX и Aleph с встроенным интерпретатором Lua. Его выбирают, когда исходный документ нужно не просто сверстать в PDF, а управлять шрифтами, Unicode-текстом, внутренними списками узлов TeX, генерацией графики и автоматизацией прямо во время компиляции. На 15 сентября 2026 года последним upstream-тегом проекта является LuaTeX 1.27.0 от 17 августа 2026 года. При этом стабильная ветка текущей TeX Live 2026 зафиксирована на LuaTeX 1.24.0; обычная команда LuaLaTeX в этой поставке запускается через LuaHBTeX 1.24.0 с интегрированным HarfBuzz. Поэтому номер upstream-разработки и номер движка в поддерживаемой годовой дистрибуции нужно различать.
| Параметр | LuaTeX |
|---|---|
| Тип | TeX-движок со встроенным Lua |
| Последний upstream-тег | 1.27.0, 17 августа 2026 года |
| Версия в TeX Live 2026 | 1.24.0 |
| Основной результат | PDF; доступен режим DVI |
| Текст | Unicode, входная кодировка UTF-8 по умолчанию |
| Шрифты | OpenType, TrueType, традиционные TeX-метрики; системные шрифты через макропакеты и инфраструктуру |
| Скрипты | Lua 5.3.6 в сборке TeX Live 2026 |
| Распространение | Свободное ПО; обычно устанавливается вместе с TeX Live, MacTeX или MiKTeX |
| Интерфейс | Командная строка; графический редактор в состав LuaTeX не входит |
| Регистрация и облако | Не требуются для локальной работы движка |
Скачать LuaTeX
Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.
Безопаснее всего получать LuaTeX не как случайный отдельный исполняемый файл, а в составе поддерживаемой TeX-дистрибуции. Официальный сайт проекта прямо связывает выпуск LuaTeX с ежегодными релизами TeX Live и промежуточными исправлениями. Для обычного пользователя это означает, что основным каналом установки служит TeX Live 2026; на macOS разработчики TeX Live рекомендуют нативный пакет MacTeX, который включает те же основные деревья TeX и бинарные файлы, но добавляет настройки и приложения, специфичные для macOS.
В TeX Live 2026 LuaTeX 1.24.0 доступен вместе с остальной инфраструктурой: менеджером пакетов, форматами, шрифтами и документацией. Более новые upstream-теги 1.25.x, 1.26.x и 1.27.0 относятся к продолжающейся разработке после фиксации ветки TeX Live 2026; это не причина заменять согласованный бинарник дистрибуции вручную в рабочем окружении. На Windows официальная поставка TeX Live использует 64-разрядные исполняемые файлы и заявляет поддержку Windows 10 и новее. Для GNU/Linux и ряда Unix-подобных систем предусмотрены готовые платформенные сборки, а исходники можно собрать и для систем, для которых готового бинарного пакета нет. На macOS актуальный MacTeX 2026 поддерживает macOS 11 Big Sur и более новые версии на Intel и Apple Silicon.
После установки наличие нужного движка проверяют командой luatex —version. Если задача связана именно с LaTeX, полезно отдельно выполнить lualatex —version: в TeX Live 2026 баннер показывает LuaHBTeX 1.24.0. Такое различие нормально и отражает современную архитектуру LuaLaTeX, а не ошибочную установку.
Что такое LuaTeX
LuaTeX — расширенная версия pdfTeX, использующая Lua как встроенный язык сценариев. Проект создавался как открытый и настраиваемый вариант TeX с максимально разумной обратной совместимостью, но без попытки навечно сохранить каждую внутреннюю деталь старых движков. Первая публичная бета была представлена в 2007 году, а первая стабильная версия 1.00 вышла в 2016 году. Проект связан с сообществом ConTeXt; в информации самого бинарного файла текущими сопровождающими называются Hans Hagen и Luigi Scarso.
Главная идея LuaTeX — не «добавить еще один набор команд LaTeX», а открыть внутренние механизмы TeX для программирования. Lua-код может участвовать в чтении входа, обработке шрифтов, построении и изменении списков узлов, переносах, работе с PDF-объектами и других этапах набора. За счет callbacks разработчик макропакета получает точки входа в процесс, которые в классическом TeX потребовали бы изменения самого движка или сложных обходных приемов.
LuaTeX не следует смешивать с LuaLaTeX. LuaTeX — движок, а LuaLaTeX — формат LaTeX, использующий LuaTeX-совместимый движок и экосистему LaTeX. В современной TeX Live команда lualatex запускает LuaHBTeX, где к базе LuaTeX добавлена интеграция HarfBuzz. Аналогично LuaMetaTeX — не «новая версия LuaTeX 2», а отдельный потомок, который стал основным движком современного ConTeXt и переносит еще больше логики из ядра в Lua.
Для сайта о PDF важно отделить этап создания от этапа чтения. LuaTeX формирует PDF из исходников TeX и ресурсов, но не предлагает привычных функций просмотрщика: эскизов страниц, прокрутки, аннотаций мышью или поиска по уже готовому чужому PDF как основной задачи. После компиляции результат открывают отдельным приложением — например, легким просмотрщиком или универсальным инструментом вроде Okular.
Основные функции LuaTeX
Unicode и современная текстовая модель
LuaTeX использует Unicode и принимает UTF-8 как стандартную входную кодировку. Это принципиально упрощает документы, где в одном исходнике встречаются разные алфавиты, математические символы и специальные знаки. В отличие от классического подхода с многочисленными восьмибитными кодировками, движок работает с широким диапазоном символов внутри собственного представления текста.
OpenType, TrueType и управление шрифтами
Движок способен работать с OpenType и TrueType, а также с традиционными TeX-форматами шрифтов. Интерфейс шрифтов открыт для Lua, поэтому макропакет может загружать данные, строить виртуальные шрифты, применять собственную логику лигатур, кернинга и подстановок. Это делает LuaTeX особенно интересным для нестандартной типографики, многоязычного набора, математических шрифтов и исследований шрифтовых технологий.
Встроенный Lua и автоматизация
Lua встроен в процесс, а не запускается отдельным внешним интерпретатором после компиляции. Код можно помещать в документ через механизмы макропакета или подключать из файлов. Это подходит для вычисления данных, генерации содержимого, чтения структурированных файлов, подготовки таблиц, сложных преобразований текста и создания специализированных инструментов вокруг TeX.
В составе TeX Live тот же бинарный файл при вызове как texlua работает как самостоятельный интерпретатор Lua, интегрированный с инфраструктурой TeX. Это удобно для переносимых служебных скриптов дистрибутива: пользователь получает один и тот же язык автоматизации на Windows, macOS и Unix-подобных системах без отдельной установки Lua.
Callbacks и доступ к узлам TeX
Одна из наиболее характерных функций LuaTeX — callbacks, то есть обратные вызовы в важных точках обработки документа. Через них можно вмешиваться в токенизацию, формирование абзаца, работу с шрифтами, вывод страниц и другие стадии. Дополнительно Lua API дает доступ к спискам узлов: символам, клею, штрафам, правилам, вставкам и объектам, из которых TeX строит страницу.
PDF, DVI и работа с графикой
По умолчанию LuaTeX ориентирован на прямой вывод PDF. В TeX Live также существуют команды dviluatex и dvilualatex для DVI-режима, поэтому движок не ограничен только PDF-конвейером. Встроенный графический слой умеет включать распространенные растровые и PDF-ресурсы, а MPlib — библиотечная версия MetaPost — позволяет генерировать векторную графику внутри процесса без отдельного запуска классического MetaPost для каждой операции.
Расширяемость вместо фиксированного набора функций
Интерфейс и удобство использования
У самого LuaTeX нет графического интерфейса. Его «рабочая зона» — командная строка, исходный файл TeX, каталог проекта и текстовый журнал компиляции. Команда получает имя исходника, читает формат и ресурсы, выводит диагностические сообщения и создает PDF либо DVI. Редактор, просмотрщик, менеджер проекта и подсветка синтаксиса выбираются отдельно.
Для начинающего пользователя это менее наглядно, чем офисный редактор или PDF-программа. Ошибка показывается как сообщение TeX с номером строки, стеком макросов или контекстом выполнения. При серьезном документе приходится понимать разницу между движком, форматом, классом, пакетами, шрифтами и вспомогательными утилитами. Зато интерфейс отлично подходит автоматизации: одна и та же команда выполняется в локальном терминале, CI-системе и серверном сборочном контейнере.
Если LuaTeX используется через LuaLaTeX в TeXstudio, TeXworks, Visual Studio Code или другом редакторе, пользователь получает кнопки сборки, список ошибок и интегрированный просмотр PDF. Эти элементы принадлежат редактору, а не LuaTeX. Такая модульность важна при выборе продукта: менять редактор можно без смены движка, а один и тот же проект собирать в разных средах.
Поддерживаемые форматы и совместимость
| Категория | Поддержка и замечания |
|---|---|
| Исходный текст | TeX/LaTeX-исходники; UTF-8 по умолчанию |
| Скрипты | Lua, выполняемый внутри движка или через texlua |
| Шрифты | OpenType, TrueType, традиционные TeX-метрики; фактический поиск и функции зависят от формата и пакетов |
| Основной вывод | |
| Альтернативный вывод | DVI через соответствующий режим/исполняемую команду |
| Графические ресурсы | Низкоуровневый image API перечисляет PDF, PNG, JPEG, JPEG 2000 и JBIG2; MPlib используется для MetaPost-графики |
| Готовые офисные файлы | DOCX, ODT и XLSX не являются прямым входным форматом LuaTeX |
| Редактирование чужого PDF | Не является задачей движка |
Совместимость с традиционными TeX-документами высокая, но не абсолютная. Цель проекта — содержательная обратная совместимость, а не побитовое повторение pdfTeX. Документ, который зависит от специфичных примитивов pdfTeX, восьмибитной шрифтовой конфигурации или особенностей старых пакетов, может потребовать адаптации. Для типичного современного LaTeX-проекта пакеты скрывают значительную часть различий.
Формат PDF создается напрямую, поэтому отдельный виртуальный принтер или внешний конвертер для стандартной сборки не нужен. Если после выпуска требуется переставить страницы, добавить интерактивные комментарии или вручную отредактировать существующий PDF, следует использовать специализированное ПО. Например, задачи визуального редактирования лучше соответствуют классу программ вроде PDF-XChange Editor, а не TeX-движку.
Производительность и стабильность
LuaTeX считается стабильным движком, но его производительность нельзя оценивать как у обычного PDF-просмотрщика. Время сборки зависит от размера исходников, количества шрифтов, сложности макросов, Lua-кода, библиографии, рисунков и числа проходов. Сам движок добавляет интерпретатор Lua и более сложную шрифтовую инфраструктуру, поэтому на традиционных документах обычно не выбирается ради минимального времени запуска; его преимущество — дополнительные возможности и программируемость.
Для надежности важнее всего фиксировать окружение. Документ может зависеть не только от LuaTeX 1.24.0, но и от конкретных версий LaTeX, luaotfload, fontspec, библиографических пакетов, шрифтов и внешних программ. Обновление TeX Live меняет эту совокупность. Для издательского архива разумно сохранять исходники, локальные классы, перечень нестандартных шрифтов и данные о версии дистрибутива.
Известные ограничения чаще проявляются не как «движок падает на больших PDF», а как несовместимость пакета, шрифта или Lua-кода с конкретной веткой. В производственной TeX Live 2026 используется 1.24.0, тогда как upstream к августу 2026 года уже дошел до тега 1.27.0. Для критической печатной продукции обновление лучше проводить на копии окружения с контрольной сборкой нескольких эталонных документов.
Хронология развития и поддержки
LuaTeX вырос из задачи модернизировать TeX без превращения ядра в монолит из специальных функций. В 2007 году проект публично показал бета-версию; в следующие годы API, модель узлов, шрифтовая подсистема и PDF-бэкенд активно менялись. Этот ранний период важен при чтении старых статей: примеры для веток 0.x могут использовать интерфейсы и примитивы, которые давно переименованы или удалены.
С 2020 года в TeX Live появился LuaHBTeX — вариант LuaTeX с интеграцией HarfBuzz. Именно он используется командой lualatex в современной поставке. Это одна из причин, почему вывод lualatex —version нельзя использовать как доказательство запуска «чистого» бинарника luatex: LuaLaTeX и LuaTeX сегодня связаны тесно, но технически различаются.
В ветке LuaTeX 1.17, выпущенной в 2023 году, по умолчанию отключили библиотеку socket; включение возможно специальным параметром, а полный shell escape также расширяет разрешения. Это изменение показывает направление поддержки: сохранение программируемости при более осторожных настройках безопасности.
Для TeX Live 2026 создан отдельный тег 1.24.0-TeXLive-2026. После него upstream выпускал серии 1.25.x и 1.26.x, а 17 августа 2026 года появился тег 1.27.0. Для обычной работы важнее версия в установленной годовой дистрибуции: TeX Live собирает согласованный комплект движка, макропакетов и библиотек, тогда как свежий upstream-тег нужен прежде всего разработчикам и раннему тестированию.
Лицензирование и версии
LuaTeX распространяется как свободное ПО; каталог CTAN указывает лицензию GNU General Public License версии 2 или новее. Платной редакции LuaTeX, подписки, пробного периода или ограничения по числу документов нет. Регистрация учетной записи для запуска локального движка также не нужна.
Стоимость может появляться вокруг рабочего процесса, но не из-за лицензии LuaTeX: коммерческие шрифты, платный редактор, облачный сервис совместной работы, хостинг CI или профессиональная поддержка оплачиваются отдельно. Сам движок можно использовать локально бесплатно в рамках условий свободной лицензии.
Версии лучше рассматривать в двух измерениях. Первое — номер upstream LuaTeX, на дату проверки до 1.27.0. Второе — версия дистрибуции и закрепленного в ней движка, например TeX Live 2026 с LuaTeX 1.24.0. Для воспроизводимости документа полезнее записать оба значения, потому что один и тот же движок работает вместе с тысячами пакетов, шрифтов и утилит.
Системные требования
Проект LuaTeX не публикует потребительскую таблицу минимальных характеристик процессора, объема RAM и видеокарты, поскольку движок обычно приходит как часть TeX-дистрибуции. Поэтому корректнее опираться на подтвержденные требования TeX Live 2026 и MacTeX, не выдумывая минимальный объем памяти.
Windows
TeX Live 2026 поддерживает Windows 10 и более новые версии и поставляет 64-разрядные исполняемые файлы. Windows 7 и Vista могут частично работать, но официально поддерживаемыми не считаются. Windows XP и более ранние версии установщиком уже не обслуживаются.
macOS
Для macOS TeX Live рекомендует MacTeX. MacTeX 2026 поддерживает macOS 11 Big Sur и новее как на Intel, так и на Arm. В прямом установщике TeX Live существует универсальная современная Darwin-платформа, а отдельная legacy-сборка предназначена для старых x86_64-систем, но для обычной актуальной установки предпочтительнее MacTeX.
GNU/Linux и другие Unix-подобные системы
TeX Live 2026 публикует готовые бинарные платформы для GNU/Linux x86_64, x86, ARM64, ARMv7/Raspberry Pi и x86_64 с musl, а также для Cygwin, FreeBSD, NetBSD и Solaris. Набор может отличаться по архитектурам; исходники TeX Live допускают сборку на системах, где готового бинарника нет.
Карта критических зависимостей
Аккаунт: не требуется. Локальная компиляция не привязана к облачной учетной записи и не активируется через сервер производителя. Это удобно для офлайн-среды и долгосрочных архивов.
Интернет: после полной установки для самого LuaTeX не нужен. Сеть потребуется для первоначальной загрузки TeX Live, обновлений и установки отсутствующих пакетов. Если проект использует внешние сетевые данные через собственный Lua-код, это уже зависимость конкретного проекта, а не базовая функция движка.
Шрифты: один из наиболее чувствительных компонентов. Проект, который ссылается на конкретный системный OpenType-шрифт, соберется одинаково только там, где доступна та же гарнитура и совместимая версия. Для переносимости лучше документировать шрифты и соблюдать их лицензию при архивировании.
Макропакеты и вспомогательные программы: LuaTeX формирует ядро, но реальная сборка LaTeX часто зависит от fontspec, luaotfload, hyperref, babel или polyglossia, библиографического процессора, индексатора и других компонентов. Ошибка «LuaTeX не работает» нередко на самом деле означает отсутствующий пакет или несовместимую внешнюю утилиту.
Безопасность: TeX способен читать и создавать файлы, а при разрешенном shell escape — запускать внешние команды. TeX Live по умолчанию использует ограниченный режим shell escape; полный режим следует включать только для доверенных документов. Начиная с LuaTeX 1.17 socket-библиотека по умолчанию отключена. Для незнакомых проектов безопаснее использовать отдельный каталог, не давать без необходимости полный shell escape и просмотреть служебные скрипты до запуска.
Преимущества и недостатки LuaTeX
Плюсы и минусы
• Unicode без восьмибитной модели как основы. Удобно для многоязычных документов и современных наборов символов.
• OpenType и TrueType. Современная шрифтовая база доступна без традиционной цепочки преобразования в старые TeX-форматы.
• Встроенный Lua. Вычисления, генерация текста и обработка данных могут выполняться во время компиляции.
• Глубокий API. Callbacks и доступ к узлам позволяют создавать типографические функции, недоступные на уровне обычных макросов.
• Прямой PDF-вывод и MPlib. Движок подходит для полностью программируемого издательского конвейера.
• Кроссплатформенность. LuaTeX входит в крупные TeX-дистрибуции и работает на Windows, macOS, Linux и других Unix-подобных системах.
• Свободная лицензия и локальная обработка. Нет подписки, обязательной регистрации или передачи документа в облако.
Минусы
• Нет собственного GUI. Для удобного редактирования и просмотра нужен отдельный редактор и PDF-просмотрщик.
• Порог освоения выше, чем у офисного редактора. Сложные ошибки требуют понимания TeX, LaTeX, пакетов и иногда Lua.
• Не все документы pdfTeX переносимы без правок. Специфичные примитивы, старые шрифтовые схемы и устаревшие пакеты могут потребовать адаптации.
• Версия движка не описывает все окружение. Результат зависит от макропакетов, шрифтов и вспомогательных программ.
• Низкоуровневый Lua API требует осторожности. Код, напрямую зависящий от внутренних узлов, чувствительнее к изменениям, чем обычный LaTeX.
• Не решает задачи просмотра и ручного редактирования PDF. После генерации документа требуется отдельное приложение.
Сравнение с аналогами
| Инструмент | Главная роль | Unicode и современные шрифты | Программируемость | |
|---|---|---|---|---|
| LuaTeX | Программируемый TeX-движок | Да, Unicode, OpenType/TrueType | Очень высокая: встроенный Lua и callbacks | Прямое создание PDF |
| pdfTeX | Классический стабильный PDF-движок | Ограничен традиционной моделью по сравнению с LuaTeX | TeX-макросы, без встроенного Lua | Прямое создание PDF |
| XeTeX | Unicode-движок с системными шрифтами | Да, OpenType/TrueType | Меньше внутренних точек программирования | LaTeX-цепочка формирует PDF |
| LuaMetaTeX | Потомок LuaTeX для современного ConTeXt | Да, логика сильнее вынесена в Lua | Очень высокая | Используется в экосистеме ConTeXt |
| Sumatra PDF | Просмотр готовых документов | Не TeX-движок | Не предназначен для программирования набора | Открывает PDF, но не компилирует TeX |
LuaTeX и Sumatra PDF. Это не конкуренты, а разные этапы цепочки. LuaTeX создает PDF из исходника; Sumatra PDF открывает готовый файл для чтения и проверки. На Windows такое сочетание особенно естественно: редактор вызывает LuaLaTeX, затем просмотрщик быстро перезагружает результат. Если нужен более функциональный просмотр с аннотациями, можно рассмотреть Foxit Reader или Adobe Acrobat Reader; это дополнения к TeX-конвейеру, а не альтернативные движки набора.
Паспорт переноса данных
Исходники TeX. Это наиболее переносимая часть проекта. Обычные текстовые файлы легко хранить в системе контроля версий, сравнивать и открывать на другой платформе. Для полной воспроизводимости рядом нужно сохранять локальные классы, стили, изображения, библиографические базы и служебные скрипты.
Шрифты. Ссылка на шрифт по системному имени не гарантирует одинаковый результат на другом компьютере. При переносе следует зафиксировать название и версию гарнитуры, а при необходимости — законно включить файлы шрифтов в проект или разворачивать их отдельно. Замена гарнитуры меняет метрики и может перестроить страницы.
PDF. Готовый PDF хорошо переносится как финальный результат и обычно одинаково отображается в разных просмотрщиках. Но это не полноценный обратимый формат проекта: из PDF нельзя надежно восстановить исходные макросы, Lua-код и семантическую структуру документа. Поэтому архивировать только PDF недостаточно.
Выход из LuaTeX. Если проект нужно вернуть на pdfLaTeX или XeLaTeX, сначала отделяют переносимые LaTeX-команды от Lua-специфичной логики. Прямые блоки Lua, callbacks и пакеты только для LuaTeX придется заменить. Чем сильнее проект опирается на стандартный LaTeX и высокоуровневые пакеты, тем проще такой откат.
Инструкция по установке
Windows: TeX Live 2026
1. Получите официальный установщик TeX Live 2026 из канала TeX Users Group. Не используйте сторонний одиночный luatex.exe без понятного происхождения и согласованного набора библиотек.
2. Запустите Windows-установщик. TeX Live 2026 рассчитан на 64-разрядную Windows 10 и новее. Базовый графический режим подходит большинству пользователей; расширенный режим нужен для выбора схемы и каталогов.
3. Выберите схему установки. Полная схема удобна, если неизвестно, какие пакеты потребуются; сокращенная экономит место, но отсутствующие компоненты придется устанавливать позже.
4. Дождитесь завершения настройки путей. Windows-установщик TeX Live выполняет необходимые изменения PATH автоматически.
5. Откройте новый терминал и выполните luatex —version. Для LaTeX также выполните lualatex —version и учитывайте, что современная команда покажет LuaHBTeX.
6. Создайте минимальный документ в отдельной папке и соберите его через lualatex. Успешным результатом считаются PDF и журнал без фатальной ошибки.
macOS: MacTeX 2026
1. Используйте MacTeX 2026 — официальный рекомендованный вариант TeX Live для macOS 11 и новее на Intel и Apple Silicon.
2. Установите пакет стандартным способом macOS. MacTeX добавляет системную интеграцию и приложения, которых нет в минимальном ядре TeX Live.
3. После установки откройте Terminal и проверьте luatex —version и lualatex —version.
4. Если несколько выпусков TeX установлены параллельно, убедитесь, что активен ожидаемый TeX-дистрибутив. Для воспроизводимых проектов записывайте год TeX Live вместе с версией движка.
GNU/Linux и Unix-подобные системы
1. Для одинакового окружения на разных дистрибутивах можно использовать сетевой установщик TeX Live 2026. На Unix основной сценарий запускается через install-tl.
2. Выберите подходящую бинарную платформу и схему. TeX Live содержит готовые сборки для нескольких архитектур GNU/Linux и ряда других Unix-систем.
3. Если установщик не создавал системные ссылки, добавьте каталог TEXDIR/bin/ваша-платформа в PATH по инструкции, которую установщик показывает в конце.
4. Проверьте версии движка и соберите контрольный документ.
Первичная проверка после установки
Проверка должна отделять движок от редактора. Сначала запустите версию из терминала. Затем соберите короткий UTF-8-документ с текстом на двух языках и современным OpenType-шрифтом через LuaLaTeX. Если команда не найдена — проблема в PATH или установке. Если движок запускается, но LaTeX сообщает об отсутствующем пакете, проблема уже относится к составу дистрибутива.
Удаление также выполняется средствами дистрибуции, а не удалением отдельного luatex-бинарника. В Windows TeX Live создает запись деинсталляции; в macOS и Unix нужно следовать правилам конкретной установки. Перед удалением сохраните пользовательские деревья TEXMFHOME, собственные классы, шрифты и проекты, если они хранятся внутри каталогов, которые планируется стереть.
Практические кейсы
Многоязычная статья с системными OpenType-шрифтами
Цель: сверстать статью с кириллицей, латиницей и математикой в одной UTF-8-кодировке. Подготовка: установить TeX Live 2026 и выбранную гарнитуру, убедиться, что лицензия разрешает ее использование. Шаги: выбрать LuaLaTeX, подключить fontspec, задать основной шрифт и языковые пакеты, собрать документ. Проверка: открыть PDF и проверить кириллицу, переносы, математические символы и встраивание шрифтов инструментами PDF-просмотрщика. Ограничение: наличие шрифта по одному и тому же системному имени на разных компьютерах не гарантировано, поэтому окружение нужно документировать.
Генерация данных во время компиляции
Цель: автоматически сформировать фрагмент документа из вычисляемых данных без ручного копирования результатов. Подготовка: определить простой и детерминированный формат исходных данных. Шаги: написать Lua-функцию, которая читает локальный файл или вычисляет значения, и вызвать ее из TeX через предусмотренный механизм. Проверка: сравнить созданную таблицу или текст с исходными данными и сохранить журнал сборки. Ограничение: произвольное выполнение команд ОС для такой задачи обычно не требуется; не включайте полный shell escape без необходимости.
Миграция проекта с pdfLaTeX
Цель: перейти на современные шрифты и Unicode, сохранив структуру документа. Подготовка: зафиксировать рабочую PDF-версию старого проекта и список пакетов. Шаги: переключить движок на LuaLaTeX, заменить несовместимую восьмибитную шрифтовую конфигурацию на fontspec, убрать прямые проверки примитивов pdfTeX и пройти сообщения об устаревших пакетах. Проверка: сравнить оглавление, номера страниц, ссылки, формулы и ключевые разрывы строк с эталоном. Ограничение: совпадение страниц побитово не является целью; изменение метрик шрифта закономерно меняет верстку.
Навигатор по сбоям
Симптом: команда luatex или lualatex не найдена. Сначала проверьте, завершена ли установка и открыт ли новый терминал. На Unix проверьте PATH к каталогу TeX Live; на Windows путь обычно настраивает установщик. Контроль — команда версии должна запускаться вне редактора.
Симптом: не найден шрифт. Проверьте точное имя гарнитуры, ее установку и состояние кэша luaotfload. Если документ переносили с другого компьютера, сравните версии шрифтов. Безопасное решение — не заменять шрифт случайным аналогом до оценки влияния на верстку.
Симптом: пакет требует запуска внешней программы. Не включайте полный shell escape автоматически. Уточните документацию пакета и возможность работы в ограниченном режиме. Для неизвестного проекта сначала просмотрите исходники и запускайте сборку в отдельном каталоге.
Часто задаваемые вопросы
Можно ли использовать LuaTeX без LaTeX?
Да. LuaTeX — самостоятельный TeX-движок и может запускать plain TeX или другой подготовленный формат. Команда LuaLaTeX нужна тогда, когда проект использует макросы и инфраструктуру LaTeX; отсутствие LaTeX не лишает сам движок встроенного Lua и его низкоуровневых возможностей.
Как узнать, какой движок фактически запустил редактор?
Смотрите первую строку журнала сборки или запускайте соответствующую команду с параметром —version. В TeX Live 2026 вызов lualatex показывает LuaHBTeX 1.24.0, а вызов luatex — LuaTeX 1.24.0. Это надежнее, чем ориентироваться только на название профиля в редакторе.
Почему метаданные PDF могут упоминать LuaTeX, если сборка шла LuaHBTeX?
LuaHBTeX построен на LuaTeX и добавляет интегрированный HarfBuzz-модуль, поэтому некоторые внутренние идентификаторы и поле Producer могут сохранять имя LuaTeX. Для точного определения исполняемого движка ориентируйтесь на баннер в журнале компиляции.
Почему тот же исходник может разбиться на страницы иначе, чем в pdfLaTeX?
Смена движка меняет шрифтовый и текстовый конвейер, а переход на OpenType-гарнитуру меняет метрики символов. Даже при одинаковой структуре документа длина строк, переносы и высота блоков могут измениться. При миграции сравнивают смысловую структуру и критичные места верстки, а не ожидают побитово идентичный PDF.
Является ли texlua обычной заменой системному Lua?
texlua запускает встроенный интерпретатор Lua из TeX-инфраструктуры и удобен для переносимых служебных скриптов. Но внешние бинарные модули должны соответствовать платформе и ABI используемой Lua; поэтому скрипт, зависящий от произвольного набора модулей системного Lua, не следует считать автоматически совместимым.
Какой справочник LuaTeX использовать для низкоуровневого API?
Берите руководство, поставленное вместе с той же версией движка. Официальный сайт отдельно предупреждает, что автоматически обновляемый snapshot документации может описывать состояние разработки, а окончательным критерием поддерживаемых функций остается установленный бинарный файл.
Вывод
LuaTeX подходит авторам и разработчикам, которым нужен современный TeX-движок с Unicode, OpenType/TrueType, прямым PDF-выводом и глубокой программируемостью через Lua. Он особенно силен в многоязычной и математической верстке, автоматизированных издательских системах, собственных классах и пакетах, а также в проектах, где стандартных макросов TeX недостаточно.
Главный аргумент в пользу LuaTeX — не отдельная функция, а архитектура: TeX становится программируемой платформой, в которой внутренние этапы набора доступны Lua-коду. Главный риск той же архитектуры — сложность окружения и зависимость продвинутых решений от версий пакетов и API. Поэтому лучший сценарий использования — устанавливать LuaTeX через поддерживаемую TeX-дистрибуцию, фиксировать окружение проекта и отделять генерацию PDF от его просмотра и последующего редактирования.