XeTeX

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
XeTeX
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereComposizione tipografica
SviluppatoreJonathan Kew
Data prima versioneaprile 2004
Sistema operativoMultipiattaforma
LinguaggioC++
C
LicenzaLicenza MIT
(licenza libera)
Linguainglese
Sito webtug.org/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.[1]

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[modifica | modifica wikitesto]

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,[2] 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[modifica | modifica wikitesto]

Rendering di legature in XeTeX utilizzando un font OpenType (Hoefler Text).

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.[3]

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.[4]

XeTeX è fornito in bundle con TeX Live, MacTeX, MiKTeX e Lyx.[5]

Esempio[modifica | modifica wikitesto]

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.

\documentclass[11pt]{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\begin{document}
\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{Ελληνικά} 
Ὅλοι οἱ ἄνθρωποι γεννιοῦνται ἐλεύθεροι καὶ ἴσοι στὴν ἀξιοπρέπεια 
καὶ τὰ δικαιώματα.

\section{Legacy syntax}
When he goes---``Hello World!''\\
She replies---“Hello dear!”
 
\section{Ligatures}
\fontspec[Ligatures={Common, Historic}]{Linux Libertine O Italic}
Questo è strano assai!
 
\section{Numerals}
\fontspec[Numbers={OldStyle}]{Linux Libertine O}Old style: 1234567\\
\fontspec[Numbers={Lining}]{Linux Libertine O}Lining: 1234567
 
\end{document}
L'output renderizzato.
L'output renderizzato.

Supporto per l'arabo[modifica | modifica wikitesto]

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:

\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}
Testo arabo usando XeTeX
Testo arabo usando XeTeX

XeTeX e le bibliografie[modifica | modifica wikitesto]

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.

% Encoding: UTF8
@ARTICLE(Ekstrom,
        AUTHOR    = "Author w",
        TITLE     = "{Ekstrøm title}",
        JOURNAL   = "Ekstr{\o}m Journal",
        YEAR      = 1965,
    note      = {Working with pdflatex}
        )
 @ARTICLE(Ekstrøm,
        AUTHOR    = "Author Ekstr{\o}m",
        TITLE     = "{Ekstrøm title}",
        JOURNAL   = "Ekstrøm Journal",
        YEAR      = "1965",
    note      = {Not working with pdflatex but with xelatex}
        )

Note[modifica | modifica wikitesto]

  1. ^ sourceforge.net, http://sourceforge.net/p/xetex/code/ci/master/tree/source/texk/web2c/xetexdir/COPYING. URL consultato il 18 marzo 2013.
  2. ^ wiki.lyx.org, http://wiki.lyx.org/LyX/NewInLyX20#backends. URL consultato il 25 agosto 2017.
  3. ^ tug.org, http://tug.org/pipermail/xetex/2013-March/024120.html. URL consultato il 7 giugno 2013.
  4. ^ Copia archiviata (PDF), su ctan.org. URL consultato l'8 gennaio 2009 (archiviato dall'url originale il 5 febbraio 2009).
  5. ^ wiki.lyx.org, https://wiki.lyx.org/LyX/XeTeX. URL consultato il 25 agosto 2017.

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero