XeTeX

XeTeX — свободный консольный движок типографской вёрстки, который превращает TeX- и LaTeX-исходники в PDF, понимает Unicode без промежуточных кодировок и работает с системными шрифтами OpenType, TrueType, Graphite и AAT. Он особенно полезен для многоязычных книг, научных работ, словарей и документов со сложными письменностями, где важны точная типографика и воспроизводимая автоматическая сборка.

XeTeX не является визуальным редактором PDF и не показывает привычную панель инструментов для правки готовых страниц. Это вычислительное ядро: пользователь пишет размеченный текст в любом редакторе, запускает команду xetex или xelatex, а затем проверяет созданный PDF. Графические оболочки вроде TeXworks, TeXShop, TeXstudio, Kile и интеграции для Visual Studio Code лишь передают движку исходный файл и отображают журнал компиляции.

Актуальная ветвь XeTeX поставляется как часть TeX Live и MiKTeX; самостоятельный инсталлятор самого движка обычно не требуется. Для этой карточки программа классифицирована как устанавливаемая: вычисления выполняются локально, доступны командные файлы и библиотеки, а браузер не является обязательной средой. В TeX Live 2026 используется XeTeX 0.999998; номер движка выводится отдельной строкой рядом с базовой версией TeX.

Скачать XeTeX

Оценка 9.7 Рекомендуем
  • Редактирование PDF
  • Русский интерфейс
  • Просто новичкам
Скачать бесплатно на Windows
Лучшая альтернатива
XeTeX
Оценка 8.5
  • Нет встроенного редактора
  • Нужна TeX-дистрибуция
  • Сложные журналы ошибок
Скачать XeTeX
Загрузка начнётся после нажатия

Что такое XeTeX и какую задачу он решает

XeTeX относится к классу наборных движков TeX. Он получает текстовый файл с командами разметки, вычисляет переносы, размеры коробок, положение строк, формул и иллюстраций, а затем формирует печатный документ. Главное отличие от классического TeX и ранних маршрутов LaTeX состоит в том, что XeTeX изначально работает с символами Unicode и умеет обращаться к современным шрифтовым технологиям операционной системы. Пользователю не нужно преобразовывать русский, греческий, арабский или деванагари в специальные восьмибитные кодировки только ради набора.

Практически движок чаще запускают в формате XeLaTeX. Имя xelatex означает не отдельный продукт, а XeTeX с предварительно загруженным форматом LaTeX. Команда xetex удобна для plain TeX и низкоуровневых макросов; xelatex — для документов с классами, пакетами, библиографией, перекрёстными ссылками и привычной структурой LaTeX. В экосистеме ConTeXt тот же движок может использоваться через соответствующие сценарии, хотя современные установки ConTeXt преимущественно ориентированы на LuaMetaTeX.

Категория программ для PDF подходит XeTeX по конечному результату, но важно не путать создание и редактирование. XeTeX строит новый PDF из декларативного описания. Он не открывает готовый файл для перестановки страниц, удаления текста мышью, распознавания скана или заполнения формы. Для таких операций требуется редактор PDF. Сильная сторона XeTeX проявляется раньше: когда страницы должны автоматически собираться из исходных данных и одинаково перестраиваться после изменения содержания.

Вывод версии XeTeX в терминале

Разработчики, лицензия и место в TeX Live

Первую реализацию создал Джонатан Кью в рамках работ SIL International над многоязычной типографикой. Проект вырос из потребностей лингвистов, которым требовались Unicode, сложные системы письма и доступ к шрифтам без традиционной подготовки метрик TeX. Позднее код вошёл в общую инфраструктуру TeX Live; поддержку выполняют участники TeX Live и разработчики смежных библиотек. Движок распространяется по свободной лицензии семейства X11, поэтому его можно устанавливать, изучать, собирать из исходного кода и включать в автоматизированные системы.

Официальная страница проекта прямо указывает, что XeTeX входит в TeX Live с выпуска 2007 года и не требует отдельной установки поверх этой дистрибуции. CTAN также описывает XeTeX как компонент TeX Live и MiKTeX. Это объясняет, почему поиск установщика XeTeX приводит не к маленькому автономному пакету, а к сетевому установщику TeX Live, установщику MiKTeX или системному пакету Linux. Вместе с бинарным файлом нужны форматы, драйвер xdvipdfmx, набор макросов, файлы конфигурации и, как правило, пакеты fontspec и LaTeX.

Интерфейс: командная строка, редактор и просмотр PDF

У самого XeTeX интерфейс текстовый. При запуске движок печатает сведения о версии, имени формата, найденных файлах, подключённых шрифтах, количестве страниц и итоговом PDF. Если компиляция прерывается, в терминале появляется краткое сообщение, а подробная последовательность действий сохраняется в файле с расширением log. Такой подход удобен для сценариев и серверов, но непривычен пользователю, ожидающему диалоговых окон и визуальных подсказок.

Рабочее место обычно состоит из трёх частей: редактор исходника, команда сборки и просмотрщик PDF. В TeXworks или TeXShop они собраны в одном окне: слева или сверху находится текст, рядом — предварительный просмотр, а снизу — консоль. В TeXstudio и Kile добавляются дерево структуры, автодополнение и мастера таблиц. В Visual Studio Code аналогичную роль выполняют расширения LaTeX, но фактический набор всё равно делает локальная команда xelatex или менеджер сборки latexmk.

Редактор не влияет на качество набора, пока он сохраняет файл в UTF-8 и корректно передаёт параметры. Один и тот же проект можно собирать из терминала, среды разработки и системы непрерывной интеграции. Это полезное разделение: автор выбирает удобную оболочку, а команда сборки остаётся проверяемой. При переносе проекта на другой компьютер достаточно установить совместимую TeX-дистрибуцию, шрифты и пакеты, не воспроизводя настройки конкретного редактора.

XeTeX в TeXShop с примером функций OpenType

Что видно во время компиляции

Стандартный успешный запуск показывает имя входного файла, загруженные классы и пакеты, предупреждения, номер последней страницы и путь к результату. Строка Output written on сообщает имя PDF и число страниц. Строка Transcript written on указывает журнал. Предупреждения не всегда делают результат непригодным: например, LaTeX может сообщить о неразрешённых ссылках после первого прохода. Ошибка с восклицательным знаком требует прочитать ближайшие строки и, при необходимости, открыть log.

Для диагностики шрифтов полезны системные команды fc-list и fc-match на платформах с fontconfig, а также kpsewhich для поиска файлов внутри дерева TeX. Параметр \XeTeXtracingfonts записывает в журнал сведения о том, откуда загружен шрифт. Эти инструменты позволяют отличить опечатку в семействах от отсутствующего файла, дубликатов разных версий и проблемы с путём поиска.

Проверка системных шрифтов и пакетов для XeTeX

Как XeTeX формирует PDF

Внутренний маршрут отличается от pdfTeX. XeTeX создаёт расширенный поток XDV, в котором сохраняются сведения о глифах, шрифтах и позиционировании. Затем тесно связанный драйвер xdvipdfmx преобразует его в PDF. При обычном запуске промежуточный этап выполняется автоматически, поэтому пользователь видит готовый файл с расширением pdf. Знание этой схемы важно при ошибках драйвера, включении иллюстраций и специальных команд: часть задач решает ядро, а часть — xdvipdfmx.

Формат XDV является расширением DVI и нужен для возможностей, которые классический DVI не описывает: прямых ссылок на глифы современных шрифтов, Unicode и дополнительных данных. При отладке можно запретить немедленное преобразование и сохранить промежуточный файл, однако в типовой работе это не требуется. Команды xetex и xelatex настроены так, чтобы вызвать драйвер и вернуть код завершения, пригодный для скриптов.

Прямое создание PDF не означает, что XeTeX умеет редактировать структуру уже существующего PDF. Он может включить страницу PDF как графический объект, если это допускают макросы и драйвер, но не превращает её в редактируемые абзацы. Включённая страница сохраняет внешний вид, а правка содержания выполняется в исходном документе либо специализированной программе.

Основные файлы проекта

  • Файл tex содержит исходный текст и команды разметки.
  • Файл pdf является основным результатом обычного запуска.
  • Файл log хранит полный журнал, версии пакетов и сообщения об ошибках.
  • Файлы aux, toc, out и другие служат для ссылок, оглавления и данных следующих проходов.
  • Файл synctex.gz связывает строки исходника с координатами в PDF, если включён SyncTeX.

Служебные файлы не следует считать мусором во время сборки: LaTeX использует их между проходами. Оглавление, библиография и перекрёстные ссылки часто требуют двух или более запусков. Менеджеры latexmk и arara анализируют зависимости и повторяют команды автоматически. При странных ссылках полезно удалить только вспомогательные файлы и собрать проект заново, сохранив tex, изображения, библиографическую базу и собственные стили.

Unicode без промежуточных кодировок

XeTeX читает исходный текст как Unicode, а стандартным практическим форматом является UTF-8. В документ можно непосредственно вводить кириллицу, греческие буквы, фонетические знаки, иероглифы и математические символы. Это упрощает поиск, контроль версий и обмен исходниками: в репозитории виден реальный текст, а не последовательности команд для каждого акцентированного символа.

Unicode решает вопрос представления символа, но не гарантирует наличие глифа. Для вывода требуются шрифты, покрывающие нужные диапазоны и поддерживающие правила конкретного письма. Если выбранный шрифт не содержит символ, XeTeX сообщает Missing character и пропускает знак либо подставляет отсутствующий глиф в зависимости от окружения. Поэтому многоязычный шаблон обычно назначает отдельные семейства для арабского, деванагари, CJK, исторических письменностей и эмодзи.

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

Направление письма и сложный шейпинг

Арабское письмо, индийские письменности и многие азиатские системы требуют не простого вывода символов, а контекстного выбора форм, перестановки знаков и позиционирования диакритики. XeTeX передаёт строки движкам шейпинга OpenType, Graphite или AAT. В LaTeX направление, язык, переносы и выбор шрифта обычно настраивают пакеты babel или polyglossia, а fontspec создаёт семейства с нужным Script и Language.

Поддержка письма зависит сразу от трёх уровней: текста Unicode, макропакета и шрифта. Если арабские буквы соединяются неправильно, причина может быть в шрифте без нужных таблиц, неверно выбранном скрипте или отсутствии языкового окружения. Если абзац идёт в неправильную сторону, одной замены шрифта недостаточно — нужно задать направление. Такой многослойный характер объясняет, почему тестовая строка должна проверять не только отдельные буквы, но и реальные слова, цифры, знаки пунктуации и смешанный текст.

Набор арабского Unicode-текста в XeTeX

Арабские библиографические записи в документе XeTeX

Набор хинди в XeTeX и TeXShop

Системные шрифты и fontspec

Главная практическая особенность XeLaTeX — работа с OpenType и TrueType через пакет fontspec. Вместо старой схемы с метриками TFM, кодировками и картами пользователь указывает семейство, например DejaVu Serif или установленный корпоративный шрифт. fontspec сопоставляет обычное, жирное, курсивное и жирное курсивное начертания, настраивает лигатуры, цифры, регистр, альтернативные глифы и другие функции.

Шрифт можно искать по системному имени или подключать по имени файла. Системное имя удобно на одном компьютере, но менее воспроизводимо: на другом устройстве семейство может отсутствовать или иметь другую версию. Подключение файлов из каталога проекта надёжнее для команды и долговременного хранения, если лицензия разрешает распространение. Официальное руководство подчёркивает различие между системным поиском и поиском по файлу; для переносимости предпочтителен явный файл и контролируемый путь.

На Linux и большинстве Unix-платформ системный поиск использует fontconfig. Команда fc-match показывает, какой файл будет выбран для заданного имени, а fc-list перечисляет доступные семейства. На macOS используются системные механизмы платформы. Внутри дерева TeX файлы ищет kpathsea, поэтому шрифт может находиться не только в системной папке, но и в TEXMFHOME или каталоге проекта.

Функции OpenType

XeTeX умеет активировать и отключать OpenType-функции по четырёхбуквенным тегам. Практически через fontspec используются понятные ключи: старостильные или табличные цифры, капитель, исторические и контекстные лигатуры, стилистические наборы, варианты символов, кернинг и локализованные формы. Результат зависит от конкретного файла: запрос SmallCaps не создаёт настоящую капитель, если дизайнер шрифта её не предусмотрел.

Для шрифтов Graphite функции могут называться текстовыми именами, определёнными автором шрифта. AAT особенно связан с macOS и исторически предоставлял сложные таблицы до широкого распространения OpenType. XeTeX также позволяет принудительно выбрать рендерер для диагностики. В обычном шаблоне лучше оставлять решение библиотекам и задавать только те функции, которые документ действительно использует.

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

Пример альтернативных глифов и лигатур в XeTeX

Как сделать проект переносимым

  1. Зафиксировать название TeX-дистрибуции и год выпуска.
  2. Хранить свободные шрифты проекта в отдельной папке и подключать их по файлам.
  3. Записать версии важных пакетов через журнал или lock-файл внешнего инструмента.
  4. Не полагаться на случайные семейства, предустановленные только в одной системе.
  5. Собирать контрольный PDF в чистом окружении или контейнере до передачи проекта.

Встраивание шрифтов в PDF обычно выполняет драйвер, но это не даёт права распространять сам файл шрифта. Перед упаковкой исходников следует проверить лицензию. Некоторые коммерческие гарнитуры разрешают встраивание для просмотра и печати, но запрещают передачу исходных файлов. Для открытых проектов разумно выбирать шрифты с лицензией, допускающей совместную поставку и модификацию.

Многоязычная вёрстка на практике

Многоязычный документ начинается с языковой модели, а не с перечня красивых шрифтов. Для каждого языка нужно определить основной шрифт, направление, правила переносов, подписи, формат чисел и кавычек. babel и polyglossia автоматизируют переключение, но качество проверяется на реальных данных. В словаре полезно тестировать длинные статьи, вложенные примеры, фонетическую транскрипцию, редкие диакритики и индексные формы.

Смешение письменностей в одной строке выявляет ошибки быстрее, чем отдельные абзацы. Латинские цифры внутри арабского текста, европейские скобки, нейтральные пробелы и знаки валюты подчиняются двунаправленному алгоритму. Макросы направления должны охватывать логический фрагмент, а не визуально выбранные символы. Ручная перестановка букв недопустима: она ломает поиск и копирование из PDF.

Для CJK-документов важны вертикальный набор, выбор региональных форм и отсутствие пробелов между словами. XeTeX предоставляет примитивы и шрифтовые функции для вертикального направления, а макропакеты задают правила строк. Однако итоговое качество зависит от класса документа и шрифта; простой перевод западного шаблона в вертикальный режим редко достаточен. Требуются другие поля, сетка, знаки пунктуации и логика заголовков.

Пример японских и китайских знаков в XeTeX

Амхарский Unicode-текст, набранный XeTeX

Математика и научные документы

XeLaTeX совместим с традиционной математической моделью LaTeX и поддерживает OpenType Math. Пакет unicode-math позволяет выбрать современный математический шрифт, использовать Unicode-символы и согласовать начертания текста с формулами. Подход удобен для статей, диссертаций и учебников, где требуется единая гарнитура и расширенный набор знаков.

Математический шрифт должен содержать таблицу MATH. Обычный OpenType-файл с греческими буквами не становится полноценным шрифтом формул: ему нужны размеры операторов, варианты растяжимых скобок, параметры индексов, акцентов и межстрочных расстояний. Если unicode-math сообщает, что шрифт непригоден, следует выбрать специализированное семейство, а не пытаться исправить каждую формулу вручную.

Совместимость старых пакетов требует проверки. Документ, написанный для pdfLaTeX с пакетами inputenc, fontenc и шрифтовыми наборами Type 1, может собраться в XeLaTeX, но часть настроек станет лишней или конфликтной. Обычно inputenc удаляют, текстовые семейства переводят на fontspec, а математическую часть либо оставляют традиционной, либо осознанно переводят на unicode-math. Механическая замена команды компилятора без анализа преамбулы часто приводит к смешению двух шрифтовых систем.

Библиография, ссылки и оглавление

XeTeX не заменяет BibTeX или Biber. Библиографический процесс остаётся отдельным: первый проход создаёт служебные данные, затем запускается процессор библиографии, после чего XeLaTeX выполняется ещё один или два раза. Пакет hyperref формирует ссылки и закладки через драйвер. Автоматический менеджер latexmk удобен тем, что сам определяет нужную последовательность и прекращает сборку, когда ссылки стабилизировались.

Кириллица в закладках и метаданных обычно работает при современной конфигурации, но старые шаблоны могут содержать ручные преобразования, рассчитанные на восьмибитные движки. Их стоит удалить после теста. Важная проверка — не только внешний вид страницы, но и копирование заголовка из PDF, поиск по фамилиям, корректность оглавления и открытие файла в нескольких просмотрщиках.

Поддерживаемые входные и выходные форматы

Основным входом является текст TeX в Unicode. Макропакеты могут читать CSV, XML, JSON через внешние инструменты или подготовленные библиотеки, но это не встроенный универсальный импорт XeTeX. Изображения обычно подключаются в PDF, PNG и JPEG. Возможности зависят от xdvipdfmx и пакета graphics; EPS нередко требует предварительного преобразования или специального маршрута, поэтому для современного проекта лучше хранить векторную графику в PDF.

Включение PDF удобно для обложек, схем, рекламных вставок и страниц, подготовленных в другой программе. Можно выбирать страницу, масштабировать и обрезать рамку средствами пакета. Но текст внутри вложенного PDF не участвует в переносах и не наследует шрифты документа. Если нужно изменить слова, номера или цвета, правят исходный файл иллюстрации либо используют редактор PDF до сборки.

Результатом является PDF, пригодный для просмотра и печати. Версия PDF, сжатие, метаданные, цветовые профили и специальные требования типографии настраиваются драйвером и пакетами, а не единым диалогом экспорта. Для PDF/A, PDF/X или строго заданного стандарта необходимо применять проверенный набор макросов и валидатор. Сам факт успешной компиляции не доказывает соответствие профилю долговременного хранения или полиграфическому профилю.

Работа с цветом и прозрачностью

Цвет текста и графики обычно задают LaTeX-пакеты color или xcolor. XeTeX передаёт соответствующие специальные команды драйверу. Прозрачность, смешение и сложные эффекты могут зависеть от пути преобразования. Существуют сценарии xetex-unsafe и xelatex-unsafe для документов, которым нужен небезопасный маршрут с внешними командами; применять их без необходимости не следует. Для новой работы предпочтительнее решения, не требующие расширенных привилегий.

Установка XeTeX в Windows

На Windows самый прямой официальный путь — установить TeX Live. Сетевой файл install-tl-windows.exe запускает установщик, который получает выбранные коллекции с зеркала CTAN. Полная схема занимает значительное место, зато содержит XeTeX, LaTeX, xdvipdfmx, шрифты и большинство пакетов. Более компактная схема экономит диск, но позже потребует устанавливать недостающие компоненты через tlmgr.

Второй распространённый вариант — MiKTeX. Он также включает XeTeX и может автоматически получать отсутствующие пакеты. Выбор между TeX Live и MiKTeX лучше делать на уровне команды: смешивание двух дистрибуций в PATH создаёт труднообъяснимые ошибки, когда xelatex берётся из одной установки, а kpsewhich или редактор настроены на другую. После установки команда where xelatex показывает фактический исполняемый файл.

Русский интерфейс не относится к самому движку: сообщения XeTeX и большинство журналов англоязычные. Графический редактор может иметь русскую локализацию, но названия пакетов, команд и ошибок остаются техническими. Для начинающего полезнее настроить одну кнопку сборки XeLaTeX, включить отображение консоли и научиться находить первую существенную ошибку, чем устанавливать несколько оболочек одновременно.

Проверка после установки

  1. Открыть терминал и выполнить xetex --version, затем xelatex --version.
  2. Проверить, что версия относится к одной выбранной дистрибуции.
  3. Создать минимальный tex-файл с fontspec и системным шрифтом.
  4. Запустить xelatex в каталоге проекта и убедиться, что появился PDF.
  5. Открыть log и проверить отсутствие Missing character и аварий драйвера.

Успешная сборка Unicode-документа командой XeLaTeX

Установка в Linux и macOS

В Linux XeTeX доступен через пакеты дистрибутива и через оригинальный TeX Live. Системные пакеты проще обновлять штатным менеджером, но их версия привязана к выпуску дистрибутива. Оригинальный TeX Live устанавливается в собственный каталог и обновляется tlmgr. Эти варианты не следует бездумно смешивать: системный редактор может видеть один PATH, а интерактивная оболочка — другой.

В Debian и Ubuntu минимальный пакет xetex может не включать все LaTeX-коллекции, языки и шрифты. Ошибка File not found после успешной установки бинарного файла означает, что не хватает пакета макросов, а не самого XeTeX. Полный metapackage удобнее на рабочей станции с достаточным диском. На сервере разумнее перечислить нужные коллекции и закрепить образ, чтобы сборка не зависела от случайной установки пакета во время выполнения.

На macOS стандартным комплектом считается MacTeX, основанный на TeX Live и дополненный приложениями для платформы. TeXShop предоставляет редактор и просмотр PDF, но XeTeX остаётся отдельной командой внутри дистрибуции. Для экономии места существует BasicTeX, однако в нём чаще приходится добавлять пакеты вручную. После обновления macOS следует проверить PATH и доступ редактора к папкам со шрифтами.

Архитектура и системные требования

XeTeX кроссплатформенный, но требования задаются выбранной дистрибуцией. TeX Live 2026 предоставляет современные бинарные сборки для Windows и Unix-подобных систем; MacTeX ориентирован на поддерживаемые версии macOS. На Windows актуальная TeX Live использует 64-разрядные бинарные файлы. Точный объём зависит от схемы: сетевой установщик мал, а полная коллекция с документацией и шрифтами занимает много гигабайт.

Для самой компиляции не нужен мощный графический процессор. Важнее процессор, память для больших макросов и быстрый диск при тысячах мелких файлов. Огромные изображения повышают потребление памяти драйвером. На сервере следует ограничивать время, размер входа и доступ к внешним командам, особенно если исходники поступают от недоверенных пользователей.

Первый документ XeLaTeX

Минимальный проект состоит из класса article, пакета fontspec, выбора основного шрифта и окружения document. Файл сохраняют в UTF-8 и запускают командой xelatex имя.tex. Если в пути есть пробелы, оболочка требует кавычек. Для русской типографики добавляют babel или polyglossia, выбирают язык и проверяют переносы. Один fontspec обеспечивает глифы, но не заменяет языковые правила.

Первый тест лучше делать со шрифтом, который точно установлен и содержит кириллицу, например с одним из свободных семейств дистрибуции или системы. После успешной сборки можно переходить к корпоративной гарнитуре. Если начинать сразу со сложного шаблона, десятка пакетов и редкого файла шрифта, первая ошибка мало говорит о причине.

Команда xelatex -interaction=nonstopmode удобна в автоматической сборке: она продолжает обработку после исправимых ошибок и пишет полный log. Для локального обучения интерактивный режим иногда полезнее, потому что показывает место остановки. Параметр -halt-on-error завершает процесс на первой ошибке и даёт понятный код возврата для CI. Часто используют оба параметра вместе.

SyncTeX и переход между исходником и PDF

Параметр -synctex=1 создаёт файл synctex.gz. Поддерживающий редактор позволяет щёлкнуть по строке в PDF и перейти к соответствующему месту tex, а также выполнить обратный переход из исходника. Это не функция редактирования PDF: изменения всё равно вносятся в текст, после чего документ компилируется заново. Для длинной книги SyncTeX заметно ускоряет поиск блока, породившего конкретную страницу.

Командная строка и автоматизация

XeTeX проектировался как пакетный инструмент, поэтому хорошо встраивается в Make, latexmk, arara, скрипты Python и CI. Надёжный сценарий проверяет код возврата, сохраняет журнал и публикует PDF только после успешной сборки. Не следует определять успех по наличию старого файла: предыдущий PDF может остаться в каталоге даже после новой аварии. Перед сборкой результат удаляют либо сравнивают время и код процесса.

Для больших репозиториев полезно отделить исходники, сгенерированные данные и выходной каталог. Параметр -output-directory направляет служебные файлы в отдельную папку, но отдельные инструменты библиографии и индекса должны знать этот путь. latexmk решает многие детали, поэтому ручная цепочка оправдана только при нестандартном процессе.

Формат можно предварительно создавать и загружать, чтобы ускорить повторные запуски, однако обычный пользователь работает с готовым форматом xelatex.fmt. Если сообщение говорит, что формат не найден, причина обычно в повреждённой установке или базе имён файлов. Менеджер дистрибуции умеет перестроить форматы; копирование случайного fmt из другой версии опасно из-за несовместимых бинарных данных.

Shell escape и внешние программы

Некоторые пакеты вызывают внешние программы для подсветки кода, преобразования графики или вычислений. Полный shell escape позволяет TeX выполнять команды с правами пользователя и поэтому отключён или ограничен по умолчанию. Включать его следует только для доверенного проекта и известного пакета. На сервере исходник от пользователя нужно считать исполняемым содержимым, а не безобидным текстом.

Вместо глобального разрешения полезно заранее генерировать изображения и данные отдельным этапом, а затем запускать XeLaTeX без внешних команд. Такой процесс легче повторить и аудировать. Если пакет требует shell escape, это фиксируют в инструкции проекта и ограничивают контейнером или отдельной учётной записью.

Реальные рабочие процессы

Диссертация или научная книга

В диссертации XeLaTeX выбирают ради Unicode, системных шрифтов и формул. Структуру разбивают на главы, библиографию ведут в отдельной базе, рисунки хранят в PDF или PNG, а latexmk выполняет повторные проходы. В репозитории фиксируют класс университета, шрифты с разрешённым распространением и команды сборки. Перед сдачей проверяют оглавление, нумерацию, гиперссылки, вложенные шрифты и требования к полям.

Многоязычный словарь

Для словаря важны сложные письменности, точная сортировка и повторяемая генерация. Данные обычно хранят вне TeX, преобразуют в макросы или промежуточный tex, затем XeTeX выполняет набор. OpenType или Graphite обеспечивает формы глифов, а правила сортировки реализует подготовительный скрипт или специализированный индексатор. Разделение данных и шаблона позволяет выпускать печатную и экранную версии из одной базы.

Корпоративный отчёт

В корпоративной отчётности XeLaTeX полезен, когда PDF строится регулярно из таблиц и графиков. Шаблон задаёт цвета, колонтитулы, сетку и шрифты; скрипт подставляет значения; CI создаёт файл после обновления данных. Ограничение — дизайнер должен владеть LaTeX, а сотрудники не смогут свободно перетаскивать блоки мышью. Для устойчивого процесса шаблон защищают тестовыми документами с длинными заголовками, пустыми таблицами и экстремальными числами.

Лингвистическое издание

XeTeX исторически особенно силён в лингвистике: IPA, редкие диакритики, несколько письменностей, межстрочные глоссы и шрифты Graphite. Качество зависит от специализированных пакетов и гарнитур. Перед вёрсткой корпуса проверяют все символы, включая комбинируемые знаки и приватные области Unicode. Отсутствующий глиф в одном примере легко потерять в сотнях страниц, поэтому журнал Missing character анализируют автоматически.

Расширенная латиница и сложная страничная вёрстка в XeTeX

Настройки, влияющие на качество набора

Переносы определяются языком и шаблонами, а не только движком. Неверный язык даёт странные разрывы слов или их отсутствие. В многоязычном документе переключение языка должно сопровождать каждый фрагмент. Собственные исключения переносов добавляют точечно; глобальное отключение переносов обычно создаёт большие пробелы и переполненные строки.

Микротипографика включает выступание знаков в поля и растяжение или сжатие шрифта. XeTeX поддерживает выступание символов, а возможности пакета microtype зависят от движка и режима. Нельзя переносить конфигурацию pdfTeX без проверки: некоторые функции доступны частично или имеют другие ограничения. Эффект оценивают на реальных абзацах, а не по одному короткому примеру.

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

Оптические размеры и вариативные оси доступны только при поддержке шрифта и рендерера. В руководстве XeTeX описаны выбор веса, ширины и оптического размера для соответствующих технологий. На практике fontspec предоставляет более удобный интерфейс. Значения нельзя угадывать: допустимые оси и диапазоны смотрят в метаданных шрифта, иначе движок может выбрать ближайший вариант или сообщить ошибку.

Ошибки XeTeX и способы исправления

Команда xelatex не найдена

Сообщение оболочки о неизвестной команде означает, что TeX-дистрибуция не установлена или её каталог не входит в PATH. Сначала находят бинарный файл средствами системы, затем проверяют настройки терминала и редактора. Перезагрузка редактора после установки часто обязательна, потому что он наследует старое окружение. Не следует скачивать одиночный xelatex.exe: без библиотек, форматов и дерева texmf он бесполезен.

Шрифт не найден

fontspec Error: The font cannot be found обычно связан с неточным системным именем, отсутствующим файлом или невидимой папкой. fc-match помогает на системах с fontconfig, а указание файла в квадратных скобках или через Path исключает неоднозначность. После установки шрифта может понадобиться обновить кэш и перезапустить приложение. Следует различать имя семейства, полное имя, PostScript Name и имя файла.

Диагностика отсутствующего шрифта в XeLaTeX

Missing character

Предупреждение Missing character означает, что текущий шрифт не содержит конкретный кодовый пункт. Журнал обычно показывает символ и семейство. Исправление — выбрать подходящий шрифт или определить fallback для языка. Подмена похожей буквой опасна: латинская a и кириллическая а выглядят близко, но различаются для поиска, сортировки и проверки орфографии.

Файл пакета не найден

Ошибка File ... not found после команды usepackage указывает на отсутствующий пакет или опечатку. В TeX Live пакет устанавливают tlmgr, если дистрибуция не управляется системным менеджером. В Linux-сборке из репозитория операционной системы пакет может находиться в отдельной коллекции. Нельзя одновременно обновлять системное дерево через tlmgr в неподдерживаемом режиме: это нарушает согласованность файлов.

Неопределённая управляющая последовательность

Undefined control sequence возникает, когда команда написана неверно, нужный пакет не загружен или макрос доступен только другому движку. Важна первая строка ошибки и ближайший фрагмент исходника. Если документ перенесён с LuaLaTeX или pdfLaTeX, нужно проверить условные ветви и пакеты. Добавление случайных пакетов до исчезновения ошибки создаёт хрупкую преамбулу; лучше определить, кто должен объявлять команду.

Авария xdvipdfmx

Если набор завершён, но драйвер не создал PDF, журнал содержит сообщения xdvipdfmx. Причиной бывает повреждённое изображение, запрещённый шрифт, неверная special-команда или нехватка ресурсов. Проблему локализуют удалением последних иллюстраций и запуском минимального примера. Поскольку драйвер — отдельная стадия, чистая TeX-ошибка и ошибка преобразования требуют разных решений.

Перекрёстные ссылки не обновляются

Предупреждение Rerun to get cross-references right означает, что требуется ещё один проход. Если оно остаётся бесконечно, служебный файл может колебаться из-за нестабильного содержимого или быть повреждён. Удаляют aux и связанные файлы, затем запускают latexmk. Библиография и индекс требуют своих программ; один повтор XeLaTeX не заменяет Biber или makeindex.

Текст копируется из PDF неправильно

Красивый вид не гарантирует корректное извлечение текста. Причина может быть в шрифтовом отображении, лигатурах, пользовательских глифах или отсутствии ActualText. XeTeX имеет механизм генерации ActualText, а макропакеты могут улучшать карту Unicode. Проверять нужно поиском и копированием в нескольких просмотрщиках. Для доступного PDF дополнительно требуется структурная разметка, которую один движок не создаёт автоматически.

Ограничения, о которых важно знать заранее

Первое ограничение — отсутствие собственного редактора и WYSIWYG. Автор видит код, а окончательный перенос строк только после компиляции. SyncTeX смягчает разрыв, но не превращает программу в настольную издательскую систему с прямым перетаскиванием объектов. Для плаката с постоянной ручной перестановкой блоков Scribus или InDesign может быть удобнее.

Второе ограничение — зависимость от полноценной TeX-экосистемы. Небольшой бинарный файл не решает задачу без форматов, пакетов, шрифтов и драйвера. Полная установка велика, а минимальная требует понимать зависимости. Зато одна дистрибуция обслуживает множество проектов и поддерживает обновления централизованно.

Третье ограничение — диагностика. TeX показывает каскад сообщений, и последняя строка не всегда отражает первопричину. Нужно искать первую ошибку, учитывать раскрытие макросов и уметь строить минимальный пример. Современные редакторы фильтруют журнал, но они не могут правильно объяснить любой конфликт пакетов.

Четвёртое ограничение — воспроизводимость системных шрифтов. Если шаблон ссылается на семейство, установленное вручную, другой компьютер даст ошибку или выберет иной файл. Для долгоживущих документов шрифты и дистрибуцию фиксируют. PDF сохраняет внешний вид результата, но пересборка через несколько лет требует сохранённого окружения.

Пятое ограничение связано с современными целями доступности и структурированного PDF. XeTeX превосходно решает визуальную типографику, однако семантические теги, порядок чтения и новые механизмы LaTeX развиваются не одинаково для всех движков. Проекту, где обязательна передовая поддержка Tagged PDF, следует заранее сравнить LuaLaTeX и pdfLaTeX и проверить результат валидатором.

Безопасность и доверие к исходникам

TeX — язык программирования макросов, а не пассивный формат. Документ может читать доступные файлы в рамках возможностей движка, создавать выходные файлы и при разрешённом shell escape запускать внешние команды. Поэтому чужой tex нельзя бездумно компилировать на рабочем компьютере с секретами. Безопасный сервис использует контейнер, отдельного пользователя, ограничения времени, памяти и файловой системы.

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

Для автоматической публикации полезно сохранять список версий и контрольную сумму контейнера. Обновление TeX Live в середине издательского цикла может изменить переносы или поведение пакета. Обновления сначала проверяют на контрольном наборе страниц, затем принимают осознанно. Это не довод против обновлений, а обычная практика управления инструментальной цепочкой.

Версии XeTeX и совместимость

Номер XeTeX выглядит необычно: после базовой строки TeX выводится собственная версия 0.999998. В выпуске от 3 марта 2026 года изменение касается обработки сообщения ignoreprimitiveerror. Версия 0.999997 от марта 2025 года улучшила поддержку символов вне основной многоязычной плоскости в именах файлов при SyncTeX и добавила общие изменения движков. Ветка развивается внутри исходного дерева TeX Live, поэтому год дистрибуции важен не меньше номера бинарного файла.

Документ XeLaTeX обычно переносим между соседними выпусками, но точный PDF может измениться из-за обновления шрифтов, библиотек шейпинга, LaTeX и пакетов. Даже исправление ошибки меняет положение глифов или перенос. Для юридически значимого или тиражного макета сохраняют итоговый PDF и окружение сборки, а не рассчитывают на побитовое совпадение через годы.

Старые инструкции могут ссылаться на отдельные установщики XeTeX для macOS или Windows. После включения в TeX Live они исторические и не должны использоваться для новой системы. Также встречаются названия XeLaTeX, XeTeX и XƎTEX: первое обозначает формат LaTeX на движке, второе — исполняемый движок и проект, третье — типографическое написание логотипа. Это не три независимые редакции.

Сравнение XeTeX с аналогами

Сравнивать XeTeX следует прежде всего с другими движками, которые компилируют TeX-исходники. Визуальные редакторы PDF решают другую стадию процесса: они изменяют уже созданные страницы. В таблице ниже перечислены реальные альтернативы для автоматической типографской сборки.

ПрограммаЛучше подходит дляГлавное ограничение
XeTeX / XeLaTeXМногоязычной вёрстки с системными OpenType, Graphite и AAT-шрифтамиНет встроенного редактора, а новые функции PDF поддерживаются неравномерно
LuaTeX / LuaLaTeXРасширяемой программируемой вёрстки, Unicode и современных проектов LaTeXСкрипты и шрифтовая модель сложнее, а сборка иногда требует больше ресурсов
pdfTeX / pdfLaTeXСовместимости с огромным числом старых шаблонов и быстрых стабильных сборокСистемные OpenType-шрифты и сложные письменности не являются нативным сценарием
TectonicВоспроизводимой автоматической сборки с автоматическим получением зависимостейЭкосистема и низкоуровневая совместимость отличаются от полного TeX Live
upTeX / upLaTeXЯпонской типографики и проектов, зависящих от традиционной экосистемы pTeXСпециализация на японском наборе и менее универсальный маршрут для других задач

Практический выбор таков: XeLaTeX удобен, когда решающими являются системные шрифты и сложные письменности без программирования на Lua. LuaLaTeX стоит предпочесть для новых расширяемых шаблонов, глубокой обработки узлов и перспективных механизмов PDF. pdfLaTeX остаётся рациональным для проверенного издательского класса, который от него зависит. Tectonic полезен в CI и приложениях, где важны автоматические зависимости и изолированная сборка. upLaTeX выбирают для японских проектов с соответствующей традицией.

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

XeTeX и LuaLaTeX

Оба движка понимают Unicode и работают с OpenType Math. XeTeX ценят за зрелую прямую модель системных шрифтов и историческую поддержку Graphite и AAT. LuaTeX содержит встроенный Lua, предоставляет глубокий доступ к спискам узлов и активно используется для новых возможностей LaTeX. Миграция требует теста: одинаковый fontspec-код часто работает, но переносы, микротипографика, пакеты и детали шейпинга могут различаться.

XeTeX и pdfLaTeX

pdfLaTeX напрямую создаёт PDF и традиционно работает с восьмибитными кодировками и специально подготовленными шрифтами. Он очень быстр и совместим со старыми шаблонами. XeLaTeX проще для Unicode и системных гарнитур, но старые пакеты, рассчитывающие на fontenc и Type 1, могут потребовать переделки. Выбор определяется не абстрактным рейтингом, а классом документа и его зависимостями.

XeTeX и Tectonic

Tectonic происходит из семейства XeTeX, но предлагает иной пользовательский процесс: автоматически получает пакеты из подготовленного набора, скрывает часть шума и ориентирован на воспроизводимую сборку. Это удобно для приложения или CI, однако не всегда совпадает с поведением текущего TeX Live и его утилит. Сложный издательский проект с нестандартными сценариями проще обслуживать в полном TeX Live; компактный сервис может выиграть от Tectonic.

Низкоуровневые возможности XeTeX

Большинство авторов обращается к XeTeX через fontspec, babel, polyglossia и unicode-math, однако движок предоставляет собственные примитивы. Они нужны разработчикам классов, шрифтовых тестов и специализированных издательских систем. Примитивы позволяют узнать тип рендерера, границы глифа, число знаков в шрифте, имя или индекс глифа, список OpenType-скриптов, языков и функций. Такой доступ полезен для автоматической проверки гарнитуры и построения диагностических таблиц, но привязывает код к XeTeX.

Команды XeTeXfirstfontchar и XeTeXlastfontchar возвращают диапазон кодов, а XeTeXcharglyph сопоставляет символ Unicode с глифом текущего шрифта. XeTeXcountglyphs сообщает число глифов. Наличие номера ещё не гарантирует корректный набор: сложное письмо формируется последовательностью подстановок и позиционирования, поэтому проверка отдельного глифа дополняет, но не заменяет тест целого слова. Индексы глифов также могут измениться в новой версии шрифта, и хранить их как долговечные данные нельзя.

XeTeXglyphbounds даёт геометрические границы глифа относительно базовой линии и ширины продвижения. На этой информации строят визуальные тесты, вычисляют выступающие элементы и исследуют качество шрифта. Применять границы для ручного кернинга основного текста не стоит: OpenType уже содержит пары и контекстные правила, а прямые смещения быстро ломаются при смене начертания. Низкоуровневые измерения оправданы в генераторах образцов, нестандартных инициалах и инструментах контроля.

Классы символов и межсимвольные токены

XeTeX позволяет распределять символы по классам и вставлять токены между соседними классами. Механизм XeTeXinterchartoks используют для CJK, автоматической расстановки пробелов, обработки границ письменностей и специализированной пунктуации. Он действует во время построения списка и способен существенно менять документ, поэтому правила должны быть минимальными и покрываться тестами. Ошибка класса может незаметно добавить материал в тысячах мест.

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

Кодировки ввода и преобразования

Хотя основной сценарий — UTF-8, XeTeX умеет выбирать кодировку входного потока и применять преобразования TECkit. Это полезно при миграции прежних лингвистических данных, записанных нестандартной восьмибитной схемой. Преобразование выполняется на границе чтения, после чего макросы работают с Unicode. Для нового проекта собственную кодировку создавать не следует: она усложняет поиск, обмен и контроль версий.

Миграцию старого корпуса лучше выполнять отдельным проверяемым конвертером и хранить результат в Unicode. Временная карта TECkit уместна, когда исходные данные нельзя изменить или нужно доказуемо повторить прежнюю трансформацию. После преобразования сравнивают количество записей, контрольные символы, комбинируемые знаки и случаи, где одному старому байту соответствует последовательность Unicode.

Переносы строк и локали

Движок предоставляет расширения для разбиения строк и локальных правил, но словари переносов по-прежнему поставляются макропакетами. Для письменностей без пробелов применяются механизмы, отличные от европейской гипенации. Разработчик класса должен учитывать запреты начала и конца строки, неразрывные последовательности и поведение пунктуации. Одно универсальное значение tolerance не исправляет языковые ошибки.

XeTeXhyphenatablelength ограничивает длину слова, для которого движок пытается искать переносы. Необычно длинные химические названия, URL и автоматически сгенерированные идентификаторы могут выходить за пределы обычного процесса. Их лучше оформлять специализированными командами, допускающими разрыв в безопасных местах, а не увеличивать глобальный предел без анализа производительности и качества.

Вертикальный набор и нетипичные письменности

XeTeX поддерживает вертикальное направление глифов и соответствующие возможности шрифтов. Для японской или традиционной китайской страницы этого недостаточно: нужно изменить направление строки, ориентацию латиницы, положение знаков пунктуации, сетку и колонтитулы. Шрифт должен содержать вертикальные варианты. Если вертикальная функция отсутствует, простое вращение символов даёт визуально неверный результат.

В смешанном вертикальном тексте цифры, латинские сокращения и формулы могут оставаться горизонтальными островками. Правила зависят от жанра и издательского стандарта. Макропакет должен явно управлять такими фрагментами; автоматическое вращение всех знаков подряд не подходит. Контрольный набор включает скобки, тире, многоточия, индексы, руби и номера страниц.

Редкие письменности часто используют символы дополнительных плоскостей Unicode. Современные версии XeTeX исправляли работу таких знаков в именах файлов и SyncTeX. Однако файловая система, упаковщик файлов и система контроля версий тоже должны поддерживать имена. Для переносимого проекта безопаснее давать графике и служебным файлам короткие латинские имена, оставляя полный Unicode в содержимом и метаданных.

Частная область Unicode допустима, когда сообщество и шрифт договорились о назначении кодов, но она ухудшает обмен данными. Один и тот же код в другом шрифте может означать другой знак. В PDF нужно встраивать правильную карту Unicode и хранить описание соглашения. Если символ уже стандартизован, проект следует мигрировать на официальный кодовый пункт.

Организация большого издательского проекта

Большой проект разделяют на содержимое, оформление и инструменты. Главный tex задаёт порядок частей, класс или пакет хранит макросы дизайна, главы содержат текст, папка assets — изображения, а scripts — преобразование данных. Такое разделение позволяет менять макет без массовой правки рукописи. Команды автора должны описывать смысл: термин, пример, предупреждение, подпись, а не конкретный кегль и отступ.

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

Автоматически сгенерированный tex нужно экранировать. Символы процента, решётки, амперсанды, обратные косые черты и фигурные скобки имеют специальное значение. Нельзя просто подставлять пользовательскую строку в шаблон. Генератор должен знать контекст: текст, имя файла, математический режим и аргумент команды требуют разных правил. Это одновременно вопрос корректности и безопасности.

Для данных с богатой структурой полезен промежуточный слой: скрипт проверяет обязательные поля, нормализует Unicode, сортирует записи и только затем формирует ограниченный набор макросов. XeTeX отвечает за типографику, а не за очистку базы. Ошибка данных должна появиться до компиляции с понятным номером записи, а не как загадочная Missing } inserted на сотой странице.

Управление зависимостями

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

Собственные sty и cls хранят вместе с проектом либо в отдельном версионируемом репозитории. Копия системного пакета в каталоге проекта имеет приоритет и может незаметно затенить обновлённую версию. Поэтому локальные файлы получают уникальные имена, а временные копии удаляют. Команда kpsewhich показывает, какой файл реально загружен.

Непрерывная интеграция

В CI сборка начинается с чистого checkout, затем устанавливаются или подключаются фиксированные зависимости, запускается генерация данных, latexmk и проверки PDF. Журнал сохраняют как артефакт даже при успехе. Отдельный шаг ищет строки Undefined, Missing character, Overfull и предупреждения библиографии. Не каждое предупреждение фатально, поэтому список исключений должен быть узким и объяснённым.

Визуальное сравнение выполняют рендерингом контрольных страниц в изображения и вычислением различий. Побитовое сравнение PDF часто даёт ложные изменения из-за метаданных, идентификаторов и порядка объектов. Изменение картинки нужно просматривать человеком: исправление переноса может быть желательным, а сдвиг номера страницы — критическим. Эталон обновляют только вместе с описанием причины.

Графика, таблицы и внешние данные

XeTeX хорошо размещает векторную и растровую графику, но не является редактором изображений. Растровый файл подготавливают в нужном разрешении и цветовом пространстве, векторный — с корректными шрифтами или контурами. Масштабирование в LaTeX меняет размер на странице, но не восстанавливает детали. Большой PNG из скриншота не становится печатной иллюстрацией только потому, что PDF собрался.

PDF-иллюстрация может содержать собственные шрифты, прозрачность и цветовой профиль. При включении драйвер сохраняет её как внешний объект настолько, насколько позволяет формат. Перед типографией проверяют итоговый файл целиком: встроенные страницы способны принести RGB в CMYK-макет или невложенный шрифт. Причина проблемы находится не в тексте XeTeX, а во вложенном ресурсе.

Таблицы в TeX вычисляются по содержимому и ограничениям колонок. Для отчётов из данных нужно заранее определить поведение длинных значений, пустых ячеек, отрицательных чисел и повторяющихся заголовков. Автоматическое уменьшение шрифта до попадания на страницу ухудшает читаемость. Лучше менять структуру: переносить столбцы, делить таблицу или формировать альбомную страницу.

Графики, созданные Python, R или gnuplot, желательно генерировать до XeLaTeX и сохранять в PDF с теми же шрифтами. Согласованная гарнитура делает подписи частью макета. Внешний инструмент должен получать фиксированные данные и параметры; ручное сохранение из интерактивного окна затрудняет повтор выпуска. В репозитории можно хранить скрипт и итоговый файл, если сборка графика дорогая.

Тестирование шрифтов перед вёрсткой

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

Важно проверить метрики семейства. Если жирное начертание значительно шире обычного, заголовки и таблицы меняют перенос. Настоящий курсив может иметь другие высоты и выносные элементы. XeTeX честно использует данные шрифта; он не исправляет плохой кернинг или ошибочные вертикальные метрики. Проблему решают обновлением файла, настройкой производителя или выбором другой гарнитуры.

Переменный шрифт требует теста выбранных осей и статических экземпляров. Не все программы одинаково интерпретируют вариации при встраивании, а типография может предъявлять ограничения. После сборки проверяют, что PDF содержит ожидаемое начертание, а не базовый мастер. Для долгоживущего проекта иногда надёжнее использовать официальные статические файлы семейства.

Контроль копирования особенно важен для лигатур, декоративных альтернатив и глифов без стандартного Unicode. Видимая буква должна возвращаться в буфер обмена как исходная последовательность. Если это невозможно, для электронной версии отключают декоративную функцию или добавляют ActualText. Печатная красота не должна делать PDF непригодным для поиска и цитирования.

Производительность и оптимизация сборки

Время XeLaTeX складывается из чтения множества файлов, шейпинга текста, макросов, обработки изображений и работы драйвера. На коротком документе запуск и загрузка пакетов занимают заметную долю. В большой книге главным становится объём страниц и графики. Ускорение начинают с измерения, а не с удаления полезных пакетов.

Слишком частая пересборка всех глав замедляет редактирование. LaTeX позволяет включать отдельные части и сохранять данные ссылок, а latexmk не запускает лишние этапы без изменения зависимостей. Черновой режим может пропускать тяжёлые изображения. Перед выпуском обязательно выполняют полную чистую сборку, потому что частичная способна скрыть конфликт нумерации.

Шрифтовой кэш и поиск системных семейств влияют на первый запуск. Явные файлы уменьшают неоднозначность, но большое число начертаний всё равно требует загрузки. Не стоит создавать новое семейство fontspec внутри каждого абзаца: определения выносят в преамбулу и переиспользуют. Низкоуровневые запросы глифов в цикле также могут стать узким местом.

Оптимизация PDF после сборки возможна внешними инструментами, но она способна изменить шрифты, прозрачность и метаданные. Сначала настраивают разумное разрешение изображений и сжатие драйвера, затем при необходимости применяют проверенный постпроцессор и повторно валидируют файл. Агрессивное уменьшение размера не должно быть последним неконтролируемым шагом.

Сильные стороны XeTeX

  • Прямой ввод Unicode и удобная работа с многоязычным текстом.
  • Подключение системных OpenType и TrueType без ручных метрик TFM.
  • Поддержка OpenType Layout, Graphite и AAT для сложных письменностей.
  • OpenType Math и совместимость с unicode-math.
  • Кроссплатформенная поставка в TeX Live и MiKTeX.
  • Автоматизируемая командная строка и воспроизводимые текстовые исходники.
  • Свободная лицензия и открытый код.

Главное достоинство проявляется в документах, где текст важнее ручного размещения объектов. Автор описывает структуру, а движок выполняет повторяющиеся решения для сотен страниц. Изменение шрифта, формата страницы или нумерации применяется ко всему проекту. Версионный контроль показывает различия в исходном тексте, а не бинарном файле редактора.

Слабые стороны XeTeX

  • Нет собственного визуального редактора и инструментов правки существующего PDF.
  • Установка фактически означает развёртывание TeX-дистрибуции.
  • Журналы ошибок требуют опыта и построения минимальных примеров.
  • Системные шрифты ухудшают переносимость без явной фиксации файлов.
  • Некоторые новые направления LaTeX и Tagged PDF лучше поддерживаются другими движками.
  • Старые шаблоны pdfLaTeX нельзя всегда перевести простой сменой команды.

Эти недостатки не делают XeTeX устаревшим или непригодным; они определяют подходящий процесс. Для редакционной команды с шаблоном и автоматической сборкой консольный характер является преимуществом. Для разовой правки договора он, наоборот, создаёт лишний слой. Правильный выбор начинается с вопроса, существует ли исходный tex и нужно ли регулярно пересобирать документ.

Кому подходит XeTeX

XeTeX подходит лингвистам, авторам многоязычных изданий, исследователям, преподавателям, разработчикам генераторов отчётов и издательствам, использующим LaTeX. Особенно убедителен он при редких письменностях, фонетике, собственных OpenType или Graphite-шрифтах и необходимости получать одинаково оформленные документы из структурированных данных.

Движок также подходит пользователю, который готов хранить исходник как код и осваивать диагностику. Начальный порог выше, чем у текстового процессора, зато длинные документы, ссылки, нумерация и повторные выпуски становятся управляемее. В команде достаточно одного поддерживаемого шаблона, если остальные авторы работают с ограниченным набором команд или генерируют содержимое из другой системы.

Кому лучше выбрать другую программу

Для редактирования существующего PDF, перестановки страниц, добавления подписи мышью, распознавания скана и заполнения форм нужен PDF-редактор. Для плакатов, рекламных полос и макетов с постоянным визуальным перемещением объектов удобнее настольная издательская система. Для нового проекта, которому критичны Lua-скрипты или передовая поддержка структурированного PDF в LaTeX, стоит оценить LuaLaTeX.

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

Практический контрольный список перед выпуском

  1. Собрать проект в чистом каталоге без старых служебных файлов.
  2. Убедиться, что журнал не содержит ошибок и Missing character.
  3. Выполнить все проходы библиографии, индекса и перекрёстных ссылок.
  4. Проверить вложение шрифтов и разрешение на их распространение.
  5. Просмотреть начало, середину и конец документа при масштабе печати.
  6. Проверить копирование Unicode-текста, поиск и закладки PDF.
  7. Сравнить контрольные страницы после обновления дистрибуции.
  8. Сохранить исходники, версии, команды сборки и итоговый PDF.

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

Частые вопросы о XeTeX

XeTeX и XeLaTeX — одно и то же?

XeTeX — движок, а XeLaTeX — запуск того же движка с форматом LaTeX. Для большинства пользовательских документов нужна команда xelatex. Команда xetex предназначена для plain TeX и низкоуровневых задач. Версию ядра обе команды обычно показывают одинаковую.

Можно ли работать полностью на русском языке?

Русский текст, переносы и кириллические шрифты поддерживаются. Язык интерфейса зависит от выбранного редактора, а журнал в основном англоязычный. В преамбуле нужно выбрать русский язык через babel или polyglossia и шрифт с кириллицей. Простого сохранения в UTF-8 недостаточно для правильных переносов и типографских правил.

Нужен ли интернет после установки?

Для компиляции установленного проекта интернет не нужен, если все пакеты и шрифты уже находятся локально. Сетевой установщик и менеджер пакетов используют сеть для первоначальной загрузки и обновлений. Минимальная схема может запросить отсутствующий пакет позже, поэтому для автономной работы заранее устанавливают нужные коллекции.

Можно ли открыть документ Word?

XeTeX не импортирует docx как редактируемый LaTeX-проект. Текст и структуру можно преобразовать внешним конвертером, но сложное оформление потребует ручной доработки. Если задача состоит только в сохранении Word в PDF, проще использовать экспорт самого редактора. XeTeX нужен, когда документ управляется как TeX-исходник.

Можно ли редактировать созданный PDF?

Правильный процесс — изменить tex и пересобрать PDF. Прямая правка результата допустима только как исключение, потому что при следующей сборке она потеряется. Для объединения с внешними страницами можно включать PDF средствами пакетов или выполнять постобработку отдельным инструментом.

Почему PDF на двух компьютерах отличается?

Причиной бывают разные версии шрифтов, пакетов, библиотек шейпинга и TeX Live, а также системный поиск семейства. Следует сравнить журналы, пути к шрифтам и год дистрибуции. Для строгой воспроизводимости используют контролируемые файлы шрифтов и зафиксированное окружение.

Нужно ли обновляться каждый год?

Новая TeX Live приносит исправления и актуальные пакеты, но рабочий издательский цикл не обязан обновляться в день выпуска. Сначала собирают контрольные документы, анализируют изменения, затем переходят всей командой. Старое окружение сохраняют для срочной пересборки уже выпущенного проекта.

Итог

XeTeX — специализированный и мощный движок для автоматической вёрстки PDF из Unicode-исходников. Его ключевая ценность — современные шрифты и сложные письменности в привычной системе TeX. Он не конкурирует с PDF-редактором в прямой правке страниц и не пытается заменить визуальную издательскую программу. Зато при наличии шаблона способен стабильно пересобирать книги, диссертации, словари и отчёты, где ручная корректировка каждой страницы была бы дорогой и ненадёжной.

Выбирать XeTeX стоит осознанно: установить TeX Live или MiKTeX, назначить редактор, зафиксировать шрифты и научиться читать первую ошибку в журнале. Для нового проекта нужно сравнить его с LuaLaTeX, особенно если важны программируемые расширения и современная структура PDF. Если же на первом месте Unicode, системные OpenType-шрифты, Graphite или исторически проверенный многоязычный процесс, XeTeX остаётся практичным инструментом с предсказуемой командной сборкой.

Финальная проверка должна охватывать не только внешний вид, но и переносимость: проект собирается в чистом окружении, журнал свободен от пропущенных символов, текст ищется и копируется, шрифты вложены законно, а команды задокументированы. При таком процессе исходный tex становится долговечной основой издания, а PDF — проверяемым результатом, который можно воспроизвести после каждого изменения содержания.