XeTeX: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
No edit summary
 
imported>Dunkelschwarz
 
Line 8: Line 8:
| author                = Jonathan Kew
| author                = Jonathan Kew
| developer              =
| developer              =
| latest release version = 0.999992
| latest release version = 0.999997
| latest release date    = {{Start date and age|2020|01|20}}
| latest release date    = {{Start date and age|2025|03|07}}
| programming language  = [[Pascal (programming language)|Pascal]] ([[WEB]]), [[C (programming language)|C]] and [[C++]]
| programming language  = [[Pascal (programming language)|Pascal]] ([[WEB]]), [[C (programming language)|C]] and [[C++]]
| operating_system      = [[Cross-platform]]
| operating_system      = [[Cross-platform]]
Line 18: Line 18:


'''XeTeX''' ({{IPAc-en|ˈ|z|iː|t|ɛ|x}} {{respell|ZEE|tekh}}<ref>{{cite interview|last=Kew |first=Jonathan |url=http://tug.org/interviews/interview-files/jonathan-kew.html |interviewer=Dave Walden |title=Jonathan Kew |work=TUG |date=April 3, 2007 |access-date=2009-11-20}}</ref>
'''XeTeX''' ({{IPAc-en|ˈ|z|iː|t|ɛ|x}} {{respell|ZEE|tekh}}<ref>{{cite interview|last=Kew |first=Jonathan |url=http://tug.org/interviews/interview-files/jonathan-kew.html |interviewer=Dave Walden |title=Jonathan Kew |work=TUG |date=April 3, 2007 |access-date=2009-11-20}}</ref>
or {{IPAc-en|ˈ|z|iː|t|ɛ|k}}; see also [[TeX#Pronunciation and spelling|Pronouncing and writing "TeX"]]) is a [[TeX]] [[typesetting|typesetting engine]] using [[Unicode]] and supporting modern font technologies such as [[OpenType]], [[Graphite (SIL)|Graphite]] and [[Apple Advanced Typography]] (AAT). It was originally written by Jonathan Kew and is distributed under the [[MIT License|X11 free software license]].<ref>{{Cite web| url=http://sourceforge.net/p/xetex/code/ci/master/tree/source/texk/web2c/xetexdir/COPYING | title=XeTeX COPYING file | access-date=2013-03-18}}</ref>
or {{IPAc-en|ˈ|z|iː|t|ɛ|k}}; see also [[TeX#Pronunciation and spelling|Pronouncing and writing "TeX"]]), sometimes stylized as '''{{Stylized LaTeX|xetex}}''', is a [[TeX]] [[typesetting|typesetting engine]] using [[Unicode]] and supporting modern font technologies such as [[OpenType]], [[Graphite (SIL)|Graphite]] and [[Apple Advanced Typography]] (AAT). It was originally written by Jonathan Kew and is distributed under the [[MIT License|X11 free software license]].<ref>{{Cite web| url=https://sourceforge.net/p/xetex/code/ci/master/tree/source/texk/web2c/xetexdir/COPYING | title=XeTeX COPYING file | access-date=2013-03-18}}</ref>


The last change to the source code was made on January 20, 2020, and there has been no further development since then.<ref>{{cite web|
Initially developed for [[macOS|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 metric]]s, and can make direct use of advanced typographic features of [[OpenType]], [[Apple Advanced Typography|AAT]] and [[Graphite (SIL)|Graphite]] technologies such as alternative [[glyph]]s and [[swash (typography)|swashes]], optional or historic [[Typographical ligature|ligatures]], and variable font weights. Support for OpenType local typographic conventions (<code>locl</code> tag) 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 (typeface)#Cambria Math|Cambria Math]] or [[Asana-Math|Asana Math]] as an alternative to the traditional mathematical typesetting based on TeX font metrics.
url=https://sourceforge.net/projects/xetex/|
title=XeTeX - Unicode-based TeX Code|
work=SourceForge|
date=May 21, 2024|
access-date=2024-05-27|
language=en}}</ref> Usage of XeLaTeX is now discouraged.<ref name="LuaLaTeX">[https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project Engine news from the LaTeX Project]</ref>


Initially developed for [[macOS|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 metric]]s, and can make direct use of advanced typographic features of [[OpenType]], [[Apple Advanced Typography|AAT]] and [[Graphite (SIL)|Graphite]] technologies such as alternative [[glyph]]s and [[swash (typography)|swashes]], optional or historic [[Typographical ligature|ligatures]], and variable font weights. Support for OpenType local typographic conventions (<code>locl</code> tag) 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 (typeface)#Cambria Math|Cambria Math]] or [[Asana-Math|Asana Math]] as an alternative to the traditional mathematical typesetting based on TeX font metrics.
LaTeX developers have announced that they no longer support new LaTeX functionalities on the XeTeX engine, and encourage users to migrate to [[LuaTeX]], another Unicode-supporting engine.<ref name="ltnews40">{{cite magazine |author=LaTeX Project Team |date=2024-11-01 |title=News from the “LaTeX Tagged PDF” project |url=https://www.latex-project.org/news/latex2e-news/ltnews40.pdf |work=LaTeX News |issue=40 |access-date=2025-05-22}}</ref>


==Mode of operation==
==Mode of operation==
Line 41: Line 35:
Starting from version 0.997, the default driver is xdvipdfmx on all platforms. As of version 0.9999, xdv2pdf is no longer supported and its development has been discontinued.<ref>{{Cite web | url=http://tug.org/pipermail/xetex/2013-March/024120.html | last=Hosny | first=Khaled | title=Future of xdv2pdf driver on Mac | date=March 12, 2013 | access-date=2013-06-07}}</ref>
Starting from version 0.997, the default driver is xdvipdfmx on all platforms. As of version 0.9999, xdv2pdf is no longer supported and its development has been discontinued.<ref>{{Cite web | url=http://tug.org/pipermail/xetex/2013-March/024120.html | last=Hosny | first=Khaled | title=Future of xdv2pdf driver on Mac | date=March 12, 2013 | access-date=2013-06-07}}</ref>


XeTeX works well with both [[LaTeX]] and [[ConTeXt]] macro packages. Its LaTeX counterpart is invoked as <code>xelatex</code>. It is usually used with the <code>fontspec</code> package, which provides a configurable interface for font selection, and allows complex font choices to be named and later reused.<ref>{{Cite web| url=http://www.ctan.org/tex-archive/macros/xetex/latex/fontspec/fontspec.pdf|last=Robertson|first=Will|date = August 9, 2008|title=The fontspec package | access-date=2009-01-08}}</ref>
XeTeX works well with both [[LaTeX]] and [[ConTeXt]] macro packages. It is usually invoked through <code>xelatex</code> when using LaTeX. It is usually used with the <code>fontspec</code> package, which provides a configurable interface for font selection, and allows complex font choices to be named and later reused.<ref>{{Cite web| url=http://www.ctan.org/tex-archive/macros/xetex/latex/fontspec/fontspec.pdf| last=Robertson| first=Will| date=August 9, 2008| title=The fontspec package| access-date=2009-01-08| archive-date=February 5, 2009| archive-url=https://web.archive.org/web/20090205222415/http://ctan.org/tex-archive/macros/xetex/latex/fontspec/fontspec.pdf| url-status=dead}}</ref>


XeTeX is bundled with [[TeX Live]], [[MacTeX]], [[MiKTeX]] and [[Lyx]] (see the [[XeTeX#History|History]] below for dates and versions).<ref>{{Cite web|url=https://wiki.lyx.org/LyX/XeTeX|title=LyX wiki {{!}} LyX / XeTeX|website=wiki.lyx.org|access-date=2017-08-25}}</ref>
XeTeX is bundled with [[TeX Live]], [[MacTeX]], [[MiKTeX]] and [[Lyx]] (see the [[XeTeX#History|History]] below for dates and versions).<ref>{{Cite web|url=https://wiki.lyx.org/LyX/XeTeX|title=LyX wiki {{!}} LyX / XeTeX|website=wiki.lyx.org|access-date=2017-08-25}}</ref>
Line 159: Line 153:
==History==
==History==


XeTeX was initially released for [[Mac OS X]] only in April 2004{{citation needed|date=December 2021}} with built-in [[Apple Advanced Typography|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<ref>{{Cite web|url=http://wiki.lyx.org/LyX/NewInLyX20#backends|title=LyX wiki {{!}} LyX / New in LyX 2.0|website=wiki.lyx.org|access-date=2017-08-25}}</ref> and shipped with [[MiKTeX]] since version 2.7.
XeTeX was initially released for [[Mac OS X]] only in April 2004<ref>{{Cite journal |last=Kew |first=Jonathan |orig-date=May 2nd, 2006 |title=The XETEX project: typesetting for the rest of the world |url=https://static-scripts.sil.org/cms/sites/nrsi/download/xetex_bachotex2006_paper/kew-bacho |journal=XIV Ogólnopolska Konferencja Polskiej Grupy Użytkowników Systemu TEX |pages=4-5 |no-pp=y}}</ref> with built-in [[Apple Advanced Typography|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<ref>{{Cite web|url=http://wiki.lyx.org/LyX/NewInLyX20#backends|title=LyX wiki {{!}} LyX / New in LyX 2.0|website=wiki.lyx.org|access-date=2017-08-25}}</ref> 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.
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 <code>\XeTeXinputnormalization</code> command.
Version 0.998 announced at [[BachoTeX]] 2008 supports [[Unicode normalization]] via the <code>\XeTeXinputnormalization</code> command.
Version 0.9999, released in May 2013, switched from [[International Components for Unicode|ICU]] Layout&nbsp;Engine to [[HarfBuzz]] for [[OpenType]] layout, and Graphite2 engine for [[Graphite (SIL)|Graphite]] layout, as well [[Core Text]] framework instead of [[ATSUI]] on Mac OS X.
Version 0.9999, released in May 2013, switched from [[International Components for Unicode|ICU]] Layout&nbsp;Engine to [[HarfBuzz]] for [[OpenType]] layout, and Graphite2 engine for [[Graphite (SIL)|Graphite]] layout, as well [[Core Text]] framework instead of [[ATSUI]] on Mac OS X.
XeTeX's original [[SourceForge]] code repository has not seen changes since January 20, 2020.<ref>{{cite web|
url=https://sourceforge.net/projects/xetex/|
title=XeTeX - Unicode-based TeX Code|
work=SourceForge|
date=May 21, 2024|
access-date=2024-05-27|
language=en}}</ref> It's still included in the TeX Live repository and occasionally receives fixes, but there have been no major developments. LaTeX developers have stated that it won't be supported in their ongoing effort to produce [[tagged PDF]],<ref name="ltnews40" /> and one developer consider it unmaintained.<ref>{{cite web |last=Wright |first=Joseph |date=2024-11-05 |title=Engine news from the LaTeX Project |url=https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project |website=Some TeX Developments |access-date=2025-05-21}}</ref>


==See also==
==See also==

Latest revision as of 18:42, 19 August 2025

Template:Short description Template:Use mdy dates Script error: No such module "Unsubst". Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters".

XeTeX (Template:IPAc-en Script error: No such module "Respell".[1] or Template:IPAc-en; see also Pronouncing and writing "TeX"), sometimes stylized as Template:Stylized LaTeX, is a TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType, Graphite and Apple Advanced Typography (AAT). It was originally written by Jonathan Kew and is distributed under the X11 free software license.[2]

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 (locl tag) 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.

LaTeX developers have announced that they no longer support new LaTeX functionalities on the XeTeX engine, and encourage users to migrate to LuaTeX, another Unicode-supporting engine.[3]

Mode of operation

File:Rare and ancient ligatures in XeTeX.svg
Rendering of ligatures and contextual alternates in XeTeX using an OpenType font (Hoefler Text).

XeTeX processes input in two stages. In the first stage XeTeX outputs an extended DVI (xdv) file, which is then converted to PDF by a driver. In the default operating mode the xdv 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 since July 2008Template:Dated maintenance category (articles)Script error: No such module "Check for unknown parameters". there are no viewers capable of displaying the intermediate format.

Two backend drivers are available to generate PDF from an xdv file:

Starting from version 0.997, the default driver is xdvipdfmx on all platforms. As of version 0.9999, xdv2pdf is no longer supported and its development has been discontinued.[4]

XeTeX works well with both LaTeX and ConTeXt macro packages. It is usually invoked through xelatex when using LaTeX. 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.[5]

XeTeX is bundled with TeX Live, MacTeX, MiKTeX and Lyx (see the History below for dates and versions).[6]

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 command xelatex.

<templatestyles src="Col-begin/styles.css"/>

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{arab}[utf]
.
.
.
\end{arab}

The following code illustrates this:

<templatestyles src="Col-begin/styles.css"/>

Features

In bibliographic files (see below the BibTeX example) you can use Unicode entities and call them with their native scripting, for example \cite{Ekstrøm}, instead of a transliterated ASCII form like \cite{Ekstrom} which is mandatory using the pdfTeX engine.

% 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}
        )

History

XeTeX was initially released for Mac OS X only in April 2004[7] 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[8] 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.

XeTeX's original SourceForge code repository has not seen changes since January 20, 2020.[9] It's still included in the TeX Live repository and occasionally receives fixes, but there have been no major developments. LaTeX developers have stated that it won't be supported in their ongoing effort to produce tagged PDF,[3] and one developer consider it unmaintained.[10]

See also

Script error: No such module "Portal".

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. a b Script error: No such module "Citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "Citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

Further reading

External links

Template:Sister project

Template:TeX navbox