# XeTeX

XeTeX è un motore di composizione TeX che utilizza Unicode e supporta moderne tecnologie di font come OpenType, Graphite e Apple Advanced Typography (AAT). È stato originariamente scritto da Jonathan Kew ed è distribuito sotto la Licenza MIT.
Inizialmente sviluppato solo per Mac OS X, è ora disponibile per tutte le principali piattaforme. Supporta nativamente Unicode e per impostazione predefinita i file di ingresso sono nella codifica UTF-8. XeTeX può utilizzare qualsiasi font installato nel sistema operativo senza configurare le metriche dei caratteri TeX e può utilizzare direttamente le funzionalità tipografiche avanzate delle tecnologie OpenType, AAT e Graphite come i glifi e gli svolazzi, le legature e i pesi dei caratteri tipografici. È presente anche il supporto per le convenzioni tipografiche locali OpenType (tag locl). XeTeX supporta anche la microtipografia e la composizione matematica utilizzando font specifici, come Cambria Math o Asana Math, in alternativa alla tradizionale composizione delle formule matematiche basata sui caratteri TeX.

## Storia

XeTeX è stato inizialmente distribuito per Mac OS X, con supporto AAT e Unicode integrato. Nel 2005 è stato introdotto per la prima volta il supporto per le funzionalità OpenType. Nel 2006 è stata annunciata una versione per GNU/Linux, quindi pochi mesi dopo è nata anche quella per Microsoft Windows grazie ad Akira Kakuto. Infine, è stato incluso in TeX Live 2007 per tutte le principali piattaforme. XeTeX è supportato anche da LyX, a partire dalla versione 2.0, e fornito con MiKTeX dalla versione 2.7. XeTeX supporta la maggior parte dei pacchetti di macro scritti per font LaTeX, OpenType, TrueType e PostScript senza che sia necessaria alcuna specifica procedura di configurazione. La versione 0.998, annunciata nel 2008, supporta la normalizzazione Unicode tramite il comando \XeTeXinputnormalization. La versione 0.9999, pubblicata a maggio 2013, è passata dal motore ICU a HarfBuzz per il layout OpenType e al motore Graphite2 per il layout Graphite; inoltre ha adottato il framework Core Text invece di ATSUI su Mac OS X.

## Modalità di funzionamento

XeTeX elabora l'input in due fasi. Nella prima genera un file DVI (xdv) esteso, che viene poi convertito in PDF da un driver. Nella modalità operativa predefinita, l'output, di xdv viene inviato direttamente al driver senza produrre file intermedi visibili dall'utente.
In origine erano disponibili due driver back-end per generare PDF da un file xdv:
* xdv2pdf, che utilizza framework ATSUI e QuickTime e funziona solo su Mac OS X;
* xdvipdfmx, una versione modificata di dvipdfmx, che utilizza FreeType e che funziona su tutte le piattaforme.
A partire dalla versione 0.997, il driver predefinito è xdvipdfmx su tutte le piattaforme. A partire dalla versione 0.9999, xdv2pdf non è più supportato e il suo sviluppo è stato interrotto.
XeTeX funziona bene con i pacchetti di macro LaTeX e ConTeXt. La sua controparte LaTeX viene invocata come xelatex. Di solito viene utilizzato con il pacchetto fontspec, che fornisce un'interfaccia configurabile per la selezione dei caratteri e consente di assegnare un nome a scelte di carattere complesse per riutilizzarle successivamente.
XeTeX è fornito in bundle con TeX Live, MacTeX, MiKTeX e Lyx.

## Esempio

Quello che segue è un esempio di sorgente XeLaTeX con il relativo output renderizzato. Il carattere tipografico utilizzato è Linux Libertine con licenza OFL. Il testo deve essere elaborato dal comando xelatex.

## Supporto per l'arabo

XeTeX supporta anche testi scritti da destra a sinistra, come quelli in arabo. Un modo per scrivere in arabo con XeTeX è usare il pacchetto arabxetex. Per farlo, l'arabo viene inserito all'interno di un codice come questo:

## XeTeX e le bibliografie

Nei file bibliografici (vedi l'esempio BibTeX qui sotto) si possono usare entità Unicode e richiamarle con i loro script nativi (ad esempio \cite{Ekstrøm}), invece di un modulo ASCII traslitterato (come \cite{Ekstrom}) che è obbligatorio quando si usa il motore pdfTeX.