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