LuaTeX

{{Short description|TeX-based computer typesetting system}}

{{Infobox software

| name = LuaTeX

| logo = LuaTeX logo.svg

| logo size = 100px

| logo alt = The LuaTeX logo

| author = Taco Hoekwater, Hartmut Henkel, Hans Hagen

| developer = Taco Hoekwater, Hartmut Henkel, Hans Hagen, etc. (7 active developers)

| released = {{start date and age|2007}}

| discontinued = No

| latest_release_version = 1.21.0{{Cite web|url= https://svn.tug.org:8369/texlive/trunk/Build/source/texk/web2c/luatexdir/NEWS?revision=73865&view=co|title=LuaTeX NEWS file|access-date=2025-03-09}}

| latest_release_date = {{Start date and age|2025|02|13}}

| programming language = Lua, C

| operating system = Multiplatform

| genre = Typesetting

| license = GNU General Public License

| website = {{Official URL}}

}}

LuaTeX is a TeX-based computer typesetting system which started as a version of pdfTeX with a Lua scripting engine embedded. After some experiments it was adopted by the TeX Live distribution as a successor to pdfTeX (itself an extension of ε-TeX, which generates PDFs).[http://www.tex.ac.uk/cgi-bin/texfaq2html?label=whatpdftex TeX Frequently Asked Questions] {{Webarchive|url=https://web.archive.org/web/20141027085637/http://www.tex.ac.uk/cgi-bin/texfaq2html?label=whatpdftex |date=2014-10-27 }} - What is PDFTeX?[http://www.tex.ac.uk/cgi-bin/texfaq2html?label=luatex TeX Frequently Asked Questions] {{Webarchive|url=https://web.archive.org/web/20141027023550/http://www.tex.ac.uk/cgi-bin/texfaq2html?label=luatex |date=2014-10-27 }} - PDFTeX and LuaTeX[https://www.tug.org/applications/pdftex/NEWS PDFTeX's NEWS file] {{webarchive|url=http://arquivo.pt/wayback/20090709061627/http://www.tug.org/applications/pdftex/NEWS|date=2009-07-09}} - news for 3.141592-1.40.0 version. Later in the project some functionality of Aleph was included (esp. multi-directional typesetting). The project was originally sponsored by the Oriental TeX project, founded by Idris Samawi Hamid, Hans Hagen, and Taco Hoekwater.

In November 2024, LuaLaTeX was declared the recommended format for LaTeX.[https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project Engine news from the LaTeX Project]

Objective of the project

The main objective of the project is to provide a version of TeX where all internals are accessible from Lua. In the process of opening up TeX much of the internal code is rewritten. Instead of hard coding new features in TeX itself, users (or macro package writers) can write their own extensions.

LuaTeX offers support for OpenType fonts with external modules. One of them, written in Lua, is provided by the LuaTeX team, but support for complex scripts is limited. Since 2020 LuaTeX includes the HarfBuzz engine for correct rendering of complex scripts using OpenType.{{cite web | url=https://tug.org/TUGboat/tb40-1/tb124hosny-harfbuzz.pdf | title=Bringing world scripts to LuaTEX: The HarfBuzz experiment | author=Khaled Hosny | access-date=2023-07-14 }}

An alternate approach can be found on GitHub.{{cite web |last1=tatzetwerk |title=luatex-harfbuzz |url=https://github.com/tatzetwerk/luatex-harfbuzz |website=GitHub |date=August 2020 |access-date=16 October 2021}}

A related project is MPLib (an extended MetaPost library module), which brings a graphics engine into TeX.{{cite journal |last1=Hagen |first1=Hans |title=The MetaPost library and LuaTEX |journal=TUGboat - TUG 2008 Conference Proceedings |volume=29 |issue=3 |pages=446–453 |url=https://www.tug.org/TUGboat/tb29-3/tb93hagen-mplib.pdf |access-date=16 October 2021}}

The LuaTeX team consists of Luigi Scarso, Taco Hoekwater, Hartmut Henkel and Hans Hagen.

Versions

The first public beta was launched at TUG 2007 in San Diego. The first formal release was planned for the end of 2009, and the first stable production version was released in 2010. Version 1.00 was released in September 2016 during ConTeXt 2016. Version 1.12 was released for TeXLive 2020.{{cite web |url=http://www.luatex.org/roadmap.html |title=LuaTeX Roadmap |work=luatex.org |access-date=2023-07-14}}

{{As of|2010|10}}, both ConTeXt mark IV and LaTeX with extra packages (e.g. luaotfload, luamplib, luatexbase, luatextra) make use of new LuaTeX features. (When LuaTeX is used with the LaTeX format, it is sometimes called "LuaLaTeX".) Both are supported in TeX Live 2010 with LuaTeX 0.60, and in LyX.{{Cite web|url=https://wiki.lyx.org/LyX/LuaTeX|title=LyX wiki {{!}} LyX / LuaTeX|website=wiki.lyx.org|access-date=2017-08-31}} Special support in plain TeX is still under development.

Further development takes place as LuaMetaTeX in connection with the ConTeXt project.{{cite web |url=https://github.com/contextgarden/luametatex |title=luametatex |work=GitHub |access-date=2023-07-14}}

See also

{{Portal|Free and open-source software}}

Further reading

  • CTAN: [https://mirrors.ibiblio.org/CTAN/systems/doc/luatex/luatex.pdf LuaTeX Manual]
  • Manuel Pégourié-Gonnard: [http://mirrors.ctan.org/obsolete/info/luatex/lualatex-doc/lualatex-doc.pdf A guide to LuaLaTeX]. 5 May 2013. [Outdated.]
  • LuaTeX development team: [http://www.luatex.org/documentation.html Documentation]. October 2021.
  • [http://wiki.luatex.org/index.php/Main_Page Official LuaTeX wiki]
  • [https://wiki.contextgarden.net/Main_Page ConTeXt wiki]

References