XeTeX
XeTeX is a TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType, Graphite and Apple Advanced Typography. It was originally written by Jonathan Kew and is distributed under the X11 free software license.
Initially developed for Mac OS X only, it is now available for all major platforms. It natively supports Unicode and the input file is assumed to be in UTF-8 encoding by default. XeTeX can use any fonts installed in the operating system without configuring TeX font metrics, and can make direct use of advanced typographic features of OpenType, AAT and Graphite technologies such as alternative glyphs and swashes, optional or historic ligatures, and variable font weights. Support for OpenType local typographic conventions is also present. XeTeX even allows raw OpenType feature tags to be passed to the font. Microtypography is also supported. XeTeX also supports typesetting mathematics using Unicode fonts that contain special mathematical features, such as Cambria Math or Asana Math as an alternative to the traditional mathematical typesetting based on TeX font metrics.
Mode of operation
XeTeX processes input in two stages. In the first stage XeTeX outputs an extended DVI file, which is then converted to PDF by a driver. In the default operating mode thexdv
output is piped directly to the driver without producing any user-visible intermediate files. It is possible to run just the first stage of XeTeX and save the xdv
, although there are no viewers capable of displaying the intermediate format.Two backend drivers are available to generate PDF from an
xdv
file:- xdv2pdf, which uses ATSUI and QuickTime frameworks, and only works on Mac OS X.
- xdvipdfmx, a modified version of dvipdfmx, which uses FreeType. This driver works on all platforms.
XeTeX works well with both LaTeX and ConTeXt macro packages. Its LaTeX counterpart is invoked as
xelatex
. It is usually used with the fontspec
package, which provides a configurable interface for font selection, and allows complex font choices to be named and later reused.XeTeX is bundled with TeX Live, MacTeX, MiKTeX and Lyx.
Example
The following is an example of XeLaTeX source and rendered output. The typeface used is OFL-licensed font Linux Libertine. The text is to be processed by the commandxelatex
.\documentclass \usepackage \setmainfont \begin \section \subsection All human beings are born free and equal in dignity and rights. \subsection Hver maður er borinn frjáls og jafn öðrum að virðingu og réttindum. \subsection Все люди рождаются свободными и равными в своем достоинстве и правах. \subsection Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. \subsection Ὅλοι οἱ ἄνθρωποι γεννιοῦνται ἐλεύθεροι καὶ ἴσοι στὴν ἀξιοπρέπεια καὶ τὰ δικαιώματα. \section When he goes---``Hello World!''\\ She replies---“Hello dear!” \section \fontspec Questo è strano assai! \section \fontspecOld style: 1234567\\ \fontspecLining: 1234567 \end |
Arabic support
XeTeX also supports right-to-left scripts, such as Arabic. One way of rendering Arabic in XeTeX is to use the package arabxetex. In order to do so, the Arabic is placed inside the following:\begin
\end
The following code illustrates this:
\documentclass \usepackage \usepackage \usepackage \usepackage \usepackage \usepackage %\newfontfamily \parindent = 0pt \begin \begin \chapter* \section* أديـن بدين الحـــب أنـى تــوجـهت ركـائبه \qquad فالحـــب دينــي و إيماني\\ لنا أسوة في بشر هند و اختها و قيس و ليلى \qquad ثـــــم مـــــي و غـــيــــلان \end \end |
Features
In bibliographic files you can use Unicode entities and call them with their native scripting, for example% Encoding: UTF8
@ARTICLE
@ARTICLE
History
XeTeX was initially released for Mac OS X only in April 2004 with built-in AAT and Unicode support. In 2005 support for OpenType layout features was first introduced. During BachoTeX 2006 a version for Linux was announced, which was ported to Microsoft Windows by Akira Kakuto a few months later, and finally included into TeX Live 2007 for all major platforms. XeTeX is also supported by LyX since version 2.0 and shipped with MiKTeX since version 2.7.As of the inclusion in TeX Live, XeTeX supports most macro packages written for LaTeX, OpenType, TrueType and PostScript fonts without any specific setup procedure.
Version 0.998 announced at BachoTeX 2008 supports Unicode normalization via the
\XeTeXinputnormalization
command.Version 0.9999, released in May 2013, switched from ICU Layout Engine to HarfBuzz for OpenType layout, and Graphite2 engine for Graphite layout, as well Core Text framework instead of ATSUI on Mac OS X.