XeTeX

XeTeX（或，风格化后写作）是一种使用Unicode的TeX排版引擎，并支持一些现代字体技术，例如OpenType、Graphite和苹果高级文字排版技术（AAT）。其作者和维护者是Jonathan Kew，并以X11自由软件许可证发布。

虽然最初只是为Mac OS X所开发，但它现在在各主要平台上都可以运作。它原生支持Unicode，并默认其输入文件为UTF-8编码。可以在不进行额外设定的情况下直接使用操作系统中安装的字体，因此可以直接利用OpenType、Graphite中的高级特性，例如额外的字形，花体，合字，可变的文本粗细等等。提供了对OpenType中本地排版约定（`locl`标签）的支持，也允许向字体传递OpenType的元标签。它亦支持使用包含特殊数学字符的Unicode字体排版数学公式，例如使用Cambria Math或Asana Math字体代替传统的TeX字体。

## 历史

2004年4月，发布了的第一个版本，这个版本只支持Mac OS X，并包括了内建的ATT和Unicode支持。2005年，加入了对OpenType的支持。在2006年BachoTeX期间，发布了第一个支持Linux的版本，并在数月后由Akira Kakuto移植到了Microsoft Windows上，其跨平台版本最终包含在 Live 2007中。另外，从2.7版开始，MiK也包含了。

作为 Live的一部分，支持大多数为、OpenType、TrueType和PostScript字体开发的宏包，而无需特别的安装和设定。

BachoTeX 2008上宣布发行0.998版本，通过`\XeTeXinputnormalization`命令支持Unicode正规化。

2013年5月发布0.9999，为了OpenType排版从ICU排版引擎转换到HarfBuzz，为Graphite排版输出增添Graphite2，并在Mac OS X以Core Text取代ATSUI。

## 工作过程

<image>

分两个阶段处理输入文件。在第一阶段中，输出扩展DVI （`xdv`）文件，然后由驱动转换为PDF文件。在默认模式下，`xdv`文件被直接通过管道送入驱动，不产生任何用户可见的中间文件。同时，也可以只运行的第一阶段，保存`xdv`文件，但在尚无可以阅读这种格式的阅读器。

有两种后端驱动可以从`xdv`文件产生PDF文件：

- `xdv2pdf`：它使用苹果高级文字排版技术技术（Apple Advanced Typography），只能在Mac OS X上工作。
- `xdvipdfmx`：它是`dvipdfmx`的修改版。它在标准的FreeType和fontconfig上采用了修改版本的Unicode国际化组件（ICU），可以在所有平台上工作。

从0.997版开始，所有平台上的默认驱动都是`xdvipdfmx`。在0.9999版中xdv2pdf不再得到支持，其开发也被中止。

可以很好的支持和ConTeXt宏包。其中，LaTeX部分以`xelatex`的方式引用。并通常与`fontspec`一起使用，该宏包提供字体的配置方式，并允许重新命名复杂的字体名称以便于再利用。

包含在 Live、MacTeX和MiK发行包中。

## 示例

下面的例子包括了源代码和渲染结果。例子中使用了开源字体文泉驿微米黑（WenQuanYi Micro Hei）显示Unicode字符，使用了以SIL开源字体授权发布的Linux Libertine O字体显示OpenType字体的连字及旧式数字样式。以命令处理。

<image>

```latex
%!Tex Program = xelatex
\documentclass[a4paper]{article}
\usepackage{xltxtra}
\setmainfont[Mapping=tex-text]{WenQuanYi Micro Hei}
\begin{document}\pagestyle{empty}
\section{Unicode support}
 
\subsection{English}
All human beings are born free and equal in dignity and rights.
 
\subsection{Íslenska}
Hver maður er borinn frjáls og jafn öðrum að virðingu og réttindum.
 
\subsection{Русский}  
Все люди рождаются свободными
и равными в своем достоинстве и 
правах.
 
\subsection{Tiếng Việt}
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{简体中文}
每个人生来平等，享有相同的地位和权利。

\subsection{繁體中文}
每個人生來平等，享有相同的地位和權利。

\subsection{日本語}
すべての人間は自由であり、かつ、尊厳と権利とについて平等である。

\section{Legacy syntax}
When he goes---``Hello World!''\\
She replies—“Hello dear!”
 
\section{Ligatures}
\fontspec[Ligatures={Common, Historical}]{Linux Libertine O Italic}
\fontsize{12pt}{18pt}\selectfont Questo è strano assai!
 
\section{Numerals}
\fontspec[Numbers={OldStyle}]{Linux Libertine O}Old style: 1234567\\
\fontspec[Numbers={Lining}]{Linux Libertine O}Lining: 1234567
 
\end{document}
```

### 阿拉伯文字支持

在中编排阿拉伯文字的一个解决方案是使用arabxetex软件包。为此，需要在下列文本中插入阿拉伯文字：

```latex
\begin{arab}[utf]
.
.
.
\end{arab}
```

用下列代码举例说明：

<image>

```latex
\documentclass[12pt,fleqn,titlepage,twoside,a4paper]{book}
\usepackage{etex}
\usepackage{amsfonts,amsmath,amssymb,graphicx}
\usepackage{txfonts}
\usepackage[centering,includeheadfoot,margin=1in]{geometry}
\usepackage{tabvar}
\usepackage{arabxetex}
%\newfontfamily{\arabicfont}[Script=Arabic,Scale=1.5]{Traditional Arabic}

\parindent = 0pt

\begin{document}

\begin{arab}[utf]
\chapter*{\textarab[utf]{ حِكَم من تَجمـيعي }}
\section*{\textarab[utf]{   شِعر    }}

  أديـن بدين الحـــب أنـى تــوجـهت ركـائبه \qquad فالحـــب دينــي و إيماني\\
 لنا أسوة في بشر هند و اختها و قيس و ليلى \qquad ثـــــم مـــــي و غـــيــــلان
\end{arab}

\end{document}
```

## 延伸阅读

- M. Goossens (Ed.) (2008) The XeTeX Companion: TeX meets OpenType and Unicode .

## 外部链接

- http://tug.org/xetex/
- The Beauty of LaTeX：用专业字体演示 XeTeX。
- TeX Catalogue Entry for fontspec.
- TeX Catalogue Entry for xltxtra.
- TeX Catalogue Entry for xunicode.
- TUG上的XeTeX作品展

## 基本资料

- 作者：Jonathan Kew
- 开发者：Khaled Hosny
- 软件版本周期：0.999992
- 软件版本周期：2020年1月20日
- 操作系统：跨平台
- 类型：排版
- 许可协议：MIT许可证
- 网站： xetex.sourceforge.net