XeTeX (английское произношение «зи-тех», то есть ˈziːtɛx или ˈziːtɛk) — TeX-образная система вёрстки. Поддерживает современные шрифты, например OpenType и AAT[англ.]. Создана Джонатаном Кью (Jonathan Kew) под лицензией X11, в настоящее время развивается Khaled Hosny.
Изначально разрабатывалась только для Mac OS X. Теперь доступна для всех основных платформ. Имеет встроенную поддержку Unicode. Предполагается, что входной файл имеет кодировку UTF-8[1][2].
Особенности
может использовать любые шрифты, установленные в данной ОС, без настройки шрифтов TeX.
Это позволяет использовать:
- технологии OpenType (включая локализацию и расширения), AAT[англ.] и Graphite как альтернативные глифам и свошам;
- настраиваемые исторические лигатуры;
- изменение ширины шрифта.
Также возможна вёрстка математики с использованием Unicode-шрифтов, содержащих математические расширения. Можно использовать Cambria Math как альтернативу стандартной верстке формул.
Пример
Далее опишем пример. В целях читаемости он разбит на несколько кусков. Если объединить все, получится полноценный ΤΕΧ файл. Сбоку можно найти миниатюру результата выполнения такого файла в
. В самом конце примера — SVG файл, показывающий тот же самый результат. Было успешно скомпилировано xelatex’ом из пакета MikTeX.
Преамбула
\documentclass{article}\usepackage{polyglossia}%% загружает пакет многоязыковой вёрстки\setdefaultlanguage{russian}%% устанавливает главный язык документа%\setdefaultlanguage[babelshorthands=true]{russian} %% вместо предыдущей строки; доступны команды из пакета babel для русского языка\setotherlanguage{english}%% объявляет второй язык документа\defaultfontfeatures{Ligatures={TeX},Renderer=Basic}%% свойства шрифтов по умолчанию. Для XeTeX опцию Renderer=Basic можно не указывать, она необходима для LuaTeX\setmainfont[Ligatures={TeX,Historic}]{CMU Serif}%% задаёт основной шрифт документа\setsansfont{CMU Sans Serif}%% задаёт шрифт без засечек\setmonofont{CMU Typewriter Text}%% задаёт моноширинный шрифт- Пакет многоязыкой вёрстки polyglossia подгружает шаблоны переноса. Он необходим, если в одном документе используются несколько языков; polyglossia заменяет пакет babel[3], который имеет те же функции, но, начиная с версии 3.9, может использоваться с любым из существующих компиляторов, включая TeX, PdfTeX, XeTeX и LuaTeX. Приведенный выше пример должен быть изменён, если используется пакет babel[3]:
\documentclass{article}\usepackage[english,russian]{babel}%% загружает пакет многоязыковой вёрстки\defaultfontfeatures{Ligatures={TeX},Renderer=Basic}%% свойства шрифтов по умолчанию\babelfont{rm}[Ligatures={TeX,Historic}]{CMU Serif}%% задаёт основной шрифт документа\babelfont{sf}{CMU Sans Serif}%% задаёт шрифт без засечек\babelfont{tt}{CMU Typewriter Text}%% задаёт моноширинный шрифт- Пакет fontspec[4] подготавливает загрузку шрифтов OpenType, TrueType и др. Команды \setmainfont, \setsansfont, \setmonofont производят загрузку трёх основных шрифтов, которые в обычном LaTeX'е используются для печати текста командами \textrm, \textsf и \texttt. Декларация \defaultfontfeatures объявляет общие свойства всех шрифтов, загруженных после неё. В данном примере загружаются шрифты Computer Modern Unicode, которые включены во все современные дистрибутивы TeX'а, включая MiKTeX и TeX Live, а свойства шрифтов установлены так, чтобы максимально близко воспроизводить поведение обычного LaTeX'а. Вместо указанных шрифтов можно использовать любые другие, установленные в операционной системе компьютера.
Основной текст
Псевдографика
Воспользуемся символами псевдографики:
\begin{document}\section{Возможности}\subsection{Немного псевдографики} Наличие таких возможностей хорошо иллюстрирует, что можно воспользоваться всеми возможностями шрифта \begin{quote}\underline{\itshape Times New Roman:}\fontspec{Times New Roman}{ │ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ ▀ ▄ █ ▌ ░ ▒ ▓ ■ □ ▪ ▫ ▬ ▲ ► ▼ ◄ ◊ ○ ◌ ● ◘ ◙ ◦ ☺ ☻ ☼ ♀ ♂ ♠ ♣ ♥ ♦ ♪ ♫ ♯ }\end{quote}Панграммы
Ниже с помощью панграммы «Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян» тестируются шрифты. При использовании некоторых PostScript шрифтов возникают проблемы с русскими символами.
\subsection{Многообразие шрифтов} Распишем панграммы: \begin{quote}\underline{\itshape Mechanica:}\fontspec{Mechanica}{Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян.}\end{quote}\begin{quote}\underline{\itshape Comic Sans MS:}\fontspec{Comic Sans MS}{Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян.}\end{quote}\begin{quote}\underline{\itshape PragmaticaC:}\fontspec{PragmaticaC}{Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян.}\end{quote}\begin{quote}\underline{\itshape ZhikharevC:}\fontspec{ZhikharevC}{Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян.}\end{quote}\begin{quote}\underline{\itshape Europe:}\fontspec{Europe}{Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян.}\end{quote}\begin{quote}\underline{\itshape IzhitsaC:}\fontspec{IzhitsaC}{Аэрофотосъёмка ландшафта уже выявила земли богачей и процветающих крестьян.}\end{quote}Unicode
Напишем определение слова Википедия на разных языках. Обратите внимание, что транскрипция набрана непосредственно в Unicode.
\subsection{Многообразие Языков}\subsubsection{Русский} Википе́дия (англ. Wikipedia, произносится /ˌwɪkɪˈpiːdɪə/) — свободная общедоступная многоязычная универсальная энциклопедия, поддерживаемая некоммерческой организацией «Фонд Викимедиа». \subsubsection{Türkmençe}%% Туркменский Wikipedia birnäçe dilde 2001-nji ýylda ýazylmaga başlandy. Örän gysga wagtyň içinde ol tanymal webtaslamasy boldy. Iňlis dilinde 2.8 million, beýleki dillerde bolsa 12 milliondan gowrak makala neşir edildi. \subsubsection{Ελληνικά}%% Греческий Η Βικιπαίδεια (ο όρος προήλθε από το Αγγλικό Wikipedia σε ελεύθερη μεταγραφή) είναι μία διεθνής, ελεύθερου περιεχομένου, εξελισσόμενη δια συνεργασίας εγκυκλοπαίδεια, η οποία βρίσκεται στη διεύθυνση http://www.wikipedia.org στο διαδίκτυο. \end{document}Вывод
Результат будет иметь вид:


Дополнительные возможности
Отдельной интересной особенностью является возможность использовать русскоязычные команды и макро-определения (в преамбуле) (к использованию не рекомендуется):
\newcommand{\икс}{$x$}\newcommand{\игрек}{$y$}\newcommand{\зет}{$z$}\newcommand{\цитата}[1] {\begin{quote}\textcolor{gray}{#1}\end{quote}}Примечания
- ↑Jonathan Kew - Interview (англ.). Сообщество пользователей TeX (3 апреля 2007). — Интервью с автором и главным разработчиком XeTeX. Дата обращения: 19 февраля 2010. Архивировано 15 июня 2010 года.
- ↑Jonathan Kew. An introduction to XeTeX (англ.). Официальный сайт проекта (15 июня 2005). — Слайды для презентации. Дата обращения: 19 февраля 2010. Архивировано 1 декабря 2010 года.
- ↑ 12babel – Multilingual support for LATEX, LuaLaTeX, XeLaTeX, and Plain TEX (англ.). Сообщество пользователей TeX. — Пакет поддержки русского и других языков. Дата обращения: 11 апреля 2013. Архивировано 29 марта 2013 года.
- ↑fontspec – Advanced font selection in X∃LATEX and LuaLATEX (англ.). Сообщество пользователей TeX. — fontspec – пакет для выбора шрифтов в системе X∃LATEX и LuaLATEX. Дата обращения: 11 апреля 2013. Архивировано 2 мая 2009 года.
Литература
- Michel Goossens. The XeTeX Companion. TeX meets OpenType and Unicode. — 2010.
Ссылки
- Официальный сайт проекта (англ.)
- Страница проекта в TeX Users Group (англ.)
- Справочная документация (англ.)
- Документация и примеры (англ.)
- Список рассылки XeTeX (англ.)
- Часто задаваемые вопросы (англ.)
Документация по связанным пакетам
- fontspec (англ.)
- babel (англ.)
- babel-russian (англ.)
- polyglossia (англ.)
- xltxtra (англ.)
Учебные пособия, статьи
- David J. Perry. Creating Scholarly Multilingual Documents Using Unicode, OpenType, and XeTeX. — 2010.