XeTeX — консольный движок TeX для Unicode-вёрстки и современных шрифтов. Он полезен для научных текстов, многоязычных изданий, книг и автоматической генерации PDF, где исходник хранится как текст, а результат собирается командой. На Xeon Live можно скачать XeTeX бесплатно в составе TeX-среды и перейти к настройке рабочего процесса.
Важно понимать роль продукта: XeTeX не является визуальным редактором PDF. Он получает TeX-исходник, выполняет набор, работает с Unicode и шрифтами OpenType, TrueType, Graphite и AAT, формирует XDV и в обычном режиме передаёт его xdvipdfmx для выпуска PDF. В практической работе чаще используется команда xelatex — тот же движок с заранее загруженным форматом LaTeX. Поэтому пользователю нужны текстовый редактор, TeX-дистрибутив, командная строка или IDE и просмотрщик готового PDF.
XeTeX входит в современную TeX-экосистему как наборный движок, а не как отдельная программа с собственной лентой и панелью инструментов. Текущий выпуск движка в ветке TeX Live 2026 имеет номер 0.999998. Сам TeX Live 2026 выпущен 1 марта 2026 года. В распространённой схеме пользователь устанавливает TeX Live, редактирует файл .tex, запускает xelatex и получает PDF вместе с журналом .log и служебными файлами.
Рабочая зона XeTeX фактически распределена между тремя инструментами. Редактор отвечает только за текст исходника и сохранение UTF-8. Терминал или кнопка Build запускает xelatex. Просмотрщик показывает PDF. В TeXstudio эти части объединены удобнее, но сам движок остаётся тем же; отдельный обзор TeXstudio полезен тем, кому нужен графический редактор к консольному XeTeX. Для автоматизации редактор вообще не требуется: сборка запускается из shell, Makefile, CI или latexmk.
XeTeX сначала создаёт расширенный DVI-формат XDV, затем xdvipdfmx преобразует его в PDF. При обычной команде xelatex этот переход скрыт. Параметр -no-pdf сохраняет XDV отдельно, а -output-driver задаёт обработчик. Поэтому ошибки разделяются между набором и стадией выпуска PDF.
Для повседневного проекта важнее четыре файла. Исходник .tex содержит структуру и текст; .pdf — готовый документ; .log — полный журнал; .aux, .toc, .out и сходные файлы передают данные между проходами. SyncTeX создаёт файл .synctex.gz и связывает строки исходника с местом в PDF. Служебные файлы сохраняют до завершения сборки, поскольку перекрёстные ссылки и оглавление используют данные предыдущего запуска.
Для первого запуска достаточно короткого файла с классом article и пакетом fontspec. Такая минимальная сборка одновременно проверяет три критических слоя: команда xelatex доступна в PATH, LaTeX-формат загружается, а XeTeX видит системный OpenType или TrueType-шрифт. Сразу включаются параметры диагностики, чтобы любая ошибка указывала имя файла и строку, а процесс останавливался на первом критическом сбое.
Создайте каталог проекта и файл main.tex. Редактор сохраняет его в UTF-8 без преобразования кириллицы в восьмибитную кодировку. В начале файла задайте класс документа, затем подключите fontspec и назначьте основной шрифт командой setmainfont. Для первой проверки подходит установленное семейство с кириллицей, например DejaVu Serif или Noto Serif. После begin document добавьте короткий русский абзац, английскую строку и несколько греческих символов. Такая строка сразу показывает, что исходник действительно проходит как Unicode.
В новых XeLaTeX-проектах пакет inputenc для UTF-8 не нужен: движок работает с Unicode непосредственно. Пакет fontenc с традиционными восьмибитными кодировками также не является основным способом подключения системного OpenType-шрифта. Старый шаблон переносится аккуратно: сначала собирается исходная версия, затем по одному удаляются устаревшие шрифтовые настройки и подключается fontspec. Так проще увидеть, какой пакет меняет метрики или конфликтует с новой схемой.
Перейдите в каталог проекта в терминале и выполните xelatex -interaction=nonstopmode -halt-on-error -file-line-error -synctex=1 main.tex. Параметр nonstopmode не останавливает процесс на каждом диагностическом вопросе, halt-on-error завершает работу на первой ошибке, file-line-error добавляет к сообщению имя файла и номер строки, а synctex=1 создаёт данные для переходов между исходником и PDF. Эти параметры удобны и вручную, и в автоматической сборке.
После первой удачной сборки полезно зафиксировать команду в README проекта или конфигурации редактора. Один и тот же main.tex должен собираться одинаковым движком из терминала и IDE. Разные кнопки Build, которые запускают pdfLaTeX и XeLaTeX, дают разные шрифтовые модели и часто становятся причиной неочевидных ошибок. Для проекта XeTeX команда xelatex остаётся единой точкой входа.
Работа с современными шрифтами — главная практическая причина выбора XeLaTeX. fontspec предоставляет высокоуровневый интерфейс к OpenType, TrueType и другим поддерживаемым технологиям. Семейство задаётся по системному имени или по файлу. Первый вариант удобен на одной рабочей станции, второй лучше контролируется в команде и в архиве проекта. Результат всегда проверяется на конкретных начертаниях и знаках, потому что имя семейства не гарантирует наличие кириллицы, капители или математических глифов.
На Linux и системах с fontconfig начните с fc-match. Команда fc-match "Имя семейства" возвращает файл и стиль, которые система подставит по этому имени. fc-list перечисляет установленные семейства. В macOS и Windows имя проверяется средствами системы или редактора шрифтов, а затем подтверждается минимальным документом. Такой порядок исключает ситуацию, когда в исходнике написано маркетинговое название, а fontspec ожидает другое внутреннее имя.
Для корпоративной гарнитуры проверяют именно рабочие файлы, а не только красивый заголовок. Основной текст должен содержать кириллицу, цифры, знаки валют, длинное тире, кавычки и специальные символы проекта. Для словаря добавляют фонетические знаки и диакритику. Для технической документации — математические знаки и символы единиц. Такой тест показывает реальное покрытие семейства до того, как документ разрастётся до сотен страниц.
Системное имя зависит от окружения. Для долгоживущего или командного проекта шрифты размещают в отдельной папке репозитория только при лицензии, разрешающей такое распространение, а fontspec получает Path, Extension и имена файлов начертаний. В результате сборка не зависит от того, какие версии гарнитуры случайно установлены в операционной системе. Такой подход особенно полезен для издательского макета, где изменение метрик шрифта сдвигает переносы и страницы.
fontspec даёт доступ к функциям OpenType через понятные параметры. Для цифр используются варианты Numbers, для лигатур — Ligatures, для стилистических наборов — RawFeature или специализированные параметры. XeTeX также умеет обращаться к низкоуровневым OpenType script и language tags. Включение функции имеет смысл только у шрифта, где соответствующая таблица действительно присутствует. SmallCaps не превращает обычные строчные буквы в настоящую капитель, когда дизайнер гарнитуры её не создал.
Для глубокой диагностики XeTeX предоставляет XeTeXtracingfonts: ненулевое значение записывает в log сведения о найденных шрифтах. Низкоуровневые примитивы XeTeXfonttype, XeTeXcountglyphs, XeTeXglyphindex и XeTeXglyphbounds предназначены для разработчиков классов и шрифтовых инструментов. Обычному автору достаточно fontspec, проверки log и контрольной страницы с реальными символами проекта.
Unicode снимает проблему входной кодировки, но не решает языковую типографику автоматически. Правила переносов, направление письма, подписи и выбор гарнитуры задаются языковым пакетом и шрифтом. Для XeLaTeX применяются Babel и Polyglossia; актуальная Polyglossia 2.12 ориентирована на XeLaTeX и LuaLaTeX и опирается на fontspec. В документе отдельно задаются основной язык и дополнительные языки, а для письменности с особой гарнитурой определяется собственное семейство.
Начните с основного языка документа. В Polyglossia используется setdefaultlanguage, дополнительные языки перечисляются через setotherlanguages. Основной шрифт задаётся setmainfont. Для арабского, греческого и других письменностей создаются семейства с командами вида newfontfamily и соответствующим Script. В длинном проекте имена семейства и языковые правила фиксируются в преамбуле, а текст содержит только семантические переключатели языка.
Для справа-налево особенно важна логическая последовательность текста. В исходнике арабская или ивритская фраза хранится в нормальном Unicode-порядке. Пакет направления и шейпинг создают визуальный результат. Ручная перестановка букв разрушает поиск, копирование и автоматическую обработку. В сложной письменности проверяют не отдельные глифы, а слова: OpenType-шейпинг выбирает формы и позиционирование в контексте соседних символов.
После успешной компиляции откройте PDF и проверьте три уровня. Первый — внешний вид: соединение арабских букв, положение диакритики, переносы кириллицы, форма кавычек. Второй — журнал: строк Missing character быть не должно. Третий — текстовый слой PDF: скопируйте фразу из документа и вставьте в простой редактор, затем выполните поиск по редкому слову. Такая проверка обнаруживает проблемы, которые не видны на странице.
Для CJK и специализированной типографики XeTeX содержит примитивы классов символов и XeTeXinterchartoks. Механизм вставляет токены между классами символов и применяется, в частности, для границ CJK и пунктуации. Это низкоуровневый инструмент: правила действуют на множество мест сразу, поэтому их используют в классе или специализированном пакете и покрывают контрольными примерами.
XeLaTeX работает и с традиционной математикой LaTeX, и с OpenType Math. Пакет unicode-math предоставляет единый интерфейс для XeLaTeX и LuaLaTeX и требует математический OpenType-шрифт с таблицей MATH. Обычный текстовый OTF со знаками плюс и греческими буквами не заменяет математическое семейство: растяжимые скобки, большие операторы, индексы и акценты используют специальные метрики.
В преамбуле сначала задайте текстовый шрифт через fontspec, затем подключите unicode-math и назначьте setmathfont. Для первой проверки используйте установленное OpenType Math-семейство. После этого соберите формулы с интегралом, суммой, дробью, корнем, греческими буквами, жирными символами и растяжимыми скобками. Один короткий пример проверяет намного больше, чем простая формула a+b.
Переход старого научного шаблона выполняют постепенно. Пакеты inputenc и традиционная шрифтовая схема не переносятся механически в современный Unicode-набор. Сначала фиксируется исходный PDF, затем меняется текстовый шрифт, после этого математическая часть. Такой порядок локализует изменения. Набор страниц способен сместиться из-за другой ширины глифов, поэтому номера формул, переносы и разрывы страниц пересматриваются после миграции.
Успешная компиляция подтверждает синтаксис, но не типографическое качество. В формуле проверяют размеры операторов, радикалов, скобок и акцентов; в тексте — согласование математической гарнитуры с основным шрифтом. Для диссертации или статьи важна и совместимость издательского класса. Когда класс рассчитан на pdfLaTeX и конкретные Type 1-шрифты, смена движка требует отдельной сверки, а не одной замены команды сборки.
Большой LaTeX-проект редко собирается одним проходом. Перекрёстные ссылки, оглавление и библиография создают промежуточные данные, после которых XeLaTeX запускается снова. latexmk автоматизирует последовательность команд и повторяет сборку до стабилизации зависимостей. Версия 4.88 выпущена в марте 2026 года и входит в TeX Live. Для XeLaTeX используется режим -xelatex.
Для проекта с ссылками запустите latexmk -xelatex -interaction=nonstopmode -halt-on-error -file-line-error -synctex=1 main.tex. latexmk видит изменившиеся .aux и другие служебные файлы, повторяет XeLaTeX и прекращает цикл после стабилизации. При подключении библиографии он запускает нужный обработчик по зависимостям конфигурации. В результате одна команда заменяет ручную последовательность из нескольких запусков.
Для живого предпросмотра latexmk поддерживает continuous preview mode и пересобирает документ при изменении зависимостей. В графическом редакторе аналогичную задачу выполняет встроенный watcher или расширение. В обоих случаях двигателем остаётся XeLaTeX, поэтому логика диагностики не меняется: первая критическая ошибка читается в log, а IDE лишь делает переход к строке удобнее.
Параметры командной строки XeTeX унаследованы в основном от Web2C и Kpathsea. Для рабочих проектов особенно полезны -file-line-error, -halt-on-error, -interaction, -output-directory, -recorder, -synctex и управление shell escape. -output-directory складывает генерируемые файлы в отдельный существующий каталог. -recorder создаёт список реально прочитанных и записанных файлов. -synctex=1 связывает редактор с местом в PDF.
Shell escape нужен отдельным пакетам для внешних конвертеров, генераторов графики и подсветки кода. Безопасный издательский процесс заранее генерирует внешние артефакты, затем запускает XeLaTeX без полного shell escape. Для доверенного проекта нужные команды документируются и ограничиваются контейнером или выделенной средой. Это уменьшает число скрытых зависимостей и делает сборку воспроизводимой.
Точный PDF зависит не только от версии XeTeX. На разбиение строк влияют шрифты, fontspec, языковые пакеты, LaTeX-ядро, HarfBuzz и другие библиотеки. Для длительного издательского цикла фиксируется год TeX Live, список критических пакетов, шрифты проекта и образ CI. Обновление сначала прогоняется по контрольному набору страниц, затем принимается в основную ветку.
XeTeX и LaTeX сообщают много служебного текста, поэтому диагностика строится не по последней строке, а по первой существенной ошибке. Параметр -file-line-error добавляет путь и номер строки, -halt-on-error прекращает лавину вторичных сообщений. После исправления исходник собирается заново, затем проверяется PDF и log. Предупреждения о ссылках, переполненных строках и отсутствующих символах не равнозначны: каждое относится к своему слою.
Ошибка fontspec с текстом The font cannot be found означает, что выбранное имя или файл не разрешился в доступный шрифт. Исправление начинается с проверки точного системного имени. На fontconfig-системах используется fc-match. При подключении по файлу проверяются Path, Extension и написание имени. После установки нового шрифта перезапустите редактор и заново запустите сборку.
Предупреждение Missing character сообщает, что текущий шрифт не содержит нужный кодовый пункт. Unicode-исходник при этом остаётся корректным; проблема находится в покрытии гарнитуры. Журнал XeTeX для системного шрифта показывает код символа в форме U+.... Правильное исправление — выбрать семейство с нужным диапазоном или назначить отдельный шрифт для соответствующей письменности. Подмена похожей латинской буквой ломает смысл текста и поиск.
Undefined control sequence означает, что TeX встретил не объявленную управляющую последовательность. Причина находится в опечатке, отсутствующем пакете, неверном порядке подключения или команде другого движка. Ошибка File ... not found относится к поиску файла пакета или класса. Оба случая исправляются определением источника команды, а не случайным добавлением библиотек до исчезновения сообщения.
XeTeX занимает чёткую нишу: декларативная типографская сборка документов с Unicode и современными шрифтами. Он особенно удобен там, где исходник важнее ручной правки готовой страницы. Для редактирования существующего PDF предназначены другие инструменты; базовое устройство формата и типичные операции разобраны в материале что такое PDF. XeTeX относится к стадии создания документа до появления финальных страниц.
LuaLaTeX близок к XeLaTeX по Unicode и fontspec, но добавляет встроенный Lua и глубокий доступ к внутренним структурам набора. Его выбирают для новых программируемых шаблонов, сложной автоматизации внутри движка и задач, где Lua является частью архитектуры. XeLaTeX остаётся проще там, где главная задача — системные шрифты, языки и стабильная традиционная модель без собственного Lua-кода.
pdfLaTeX рационален для старых издательских классов и давно отлаженных шаблонов. Он напрямую создаёт PDF и использует другую шрифтовую модель. Современный LaTeX принимает UTF-8, однако произвольные системные OpenType-шрифты и сложные письменности остаются сильной стороной XeLaTeX. Миграция оправдана конкретной типографской задачей.
Tectonic основан на XeTeX и TeX Live, но упрощает процесс: сам получает необходимые файлы и ориентирован на автоматическую сборку. В 2026 году выпущен Tectonic 0.17.0. TeX Live с XeLaTeX удобнее проектам, зависящим от множества дополнительных утилит и привычной инфраструктуры tlmgr.
Для нового многоязычного документа с современными OTF или TTF-шрифтами XeLaTeX остаётся практичным выбором. Используйте одну TeX-дистрибуцию, UTF-8, fontspec, языковой пакет и latexmk. Контрольный документ с реальными символами, начертаниями и формулами выявляет несовместимость до работы с основной рукописью.
Для командного проекта фиксируются TeX Live, команда сборки, шрифты и критические пакеты. Обновление инструментов отделяется от правок текста. Перед выпуском проверяются PDF, log, Missing character, ссылки, оглавление и встраивание шрифтов. PDF/A и PDF/X требуют отдельной конфигурации и профильного валидатора: успешный XeLaTeX сам по себе не удостоверяет соответствие стандарту.
Для старого проекта pdfLaTeX сначала сохраняется рабочая сборка, затем оценивается миграция. Переход полезен при системных OpenType-шрифтах и сложных письменностях. Без этих требований разумно сохранить исходный движок. Для программируемого шаблона подходит LuaLaTeX, для компактной автоматической среды — Tectonic. XeTeX ценен специализацией на Unicode-наборе и современной шрифтовой модели.
Базовая последовательность остаётся простой: подготовить UTF-8 исходник, выбрать шрифты, собрать xelatex, прочитать первую существенную ошибку, проверить PDF и автоматизировать повторные проходы. После освоения этой схемы XeTeX перестаёт восприниматься как сложный PDF-инструмент и становится тем, чем он является по архитектуре: движком, который надёжно превращает структурированный текст в типографски рассчитанный документ.