XeTeX

XeTeX (английское произношение «зи-тех», то есть ˈziːtɛx или ˈziːtɛk) — TeX-образная система вёрстки. Поддерживает современные шрифты, например OpenType и AAT[en]. Создана Джонатаном Кью (Jonathan Kew) под лицензией X11, в настоящее время развивается Khaled Hosny.

XeTeX
Логотип программы XeTeX
Скриншот программы XeTeX
Использование различных лигатур в XeTeX
Тип Настольное издательское ПО
Автор Jonathan Kew
Разработчик Khaled Hosny
Написана на Си, C++, Pascal
Операционная система Кроссплатформенное
Первый выпуск 2004
Последняя версия 0.99999 (4 февраля 2018 года)
Репозиторий sourceforge.net/p/xetex/…
git.code.sf.net/p/xetex/…
Лицензия MIT License
Сайт xetex.sourceforge.net
Логотип Викисклада Медиафайлы на Викискладе

Изначально разрабатывалась только для Mac OS X. Теперь доступна для всех основных платформ. Имеет встроенную поддержку Unicode. Предполагается, что входной файл имеет кодировку UTF-8[1][2].

Особенности править

  может использовать любые шрифты, установленные в данной ОС, без настройки шрифтов TeX.

Это позволяет использовать:

Также возможна вёрстка математики с использованием 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[4]. Приведенный выше пример должен быть изменен, если используется пакет 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[5] подготавливает загрузку шрифтов 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} 
    }

Примечания править

  1. Jonathan Kew - Interview (англ.). Сообщество пользователей TeX (3 апреля 2007). — Интервью с автором и главным разработчиком XeTeX. Дата обращения: 19 февраля 2010. Архивировано 15 июня 2010 года.
  2. Jonathan Kew. An introduction to XeTeX (англ.). Официальный сайт проекта (15 июня 2005). — Слайды для презентации. Дата обращения: 19 февраля 2010. Архивировано 1 декабря 2010 года.
  3. 1 2 babel – Multilingual support for LATEX, LuaLaTeX, XeLaTeX, and Plain TEX (англ.). Сообщество пользователей TeX. — Пакет поддержки русского и других языков. Дата обращения: 11 апреля 2013. Архивировано 29 марта 2013 года.
  4. LuaTeX (англ.). Wikipedia. — A TeX-based computer typesetting system. Дата обращения: 11 апреля 2013. Архивировано 24 апреля 2013 года.
  5. 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.

Ссылки править

Документация по связанным пакетам править

Учебные пособия, статьи править