LuaTeX

from Wikipedia, the free encyclopedia
LuaTeX

LuaTeX logo
Basic data

developer LuaTeX team
(Taco Hoekwater,
Hartmut Henkel,
Hans Hagen)
Publishing year 2007
Current  version 1.12
( March 15, 2020 )
operating system unixoid system , Microsoft Windows
programming language C , Lua , LaTeX
category Pleading
License GNU General Public License, version 2
www.luatex.org

LuaTeX ([ luaˌtɛχ ]) is a typesetting system , which on the therein embedded scripting language Lua can be controlled. LuaTeX is considered to be the successor to pdfTeX, which has largely been completed in its development . Unicode is used by default as input coding . LuaTeX is able to use OpenType and TrueType fonts for both text and math typesetting. The release of the first stable version 1.0.0 was announced on September 27, 2016.

history

Even before pdfTeX and LuaTeX, efforts were made to improve the TeX system. The extension ε-TeX published in 1994 increased the number of former 256 TeX internal registers (due to the old 8-bit addressing) to 32,768. Character encoding in 16-bit Unicode, which covers a wide range of alphabets, was introduced with the TeX extension Ω (Omega). Although Ω included many more innovative concepts, its development stalled and the code was frozen in 1991. Another development was א (aleph). Its goal was a TeX extension that combines the Ω and ε-TeX functionalities. The main feature of א is the support of bidirectional typesetting .

The newly created LuaTeX was supposed to combine the functionalities of pdfTeX , ε-TeX , Ω and א .

The development of LuaTeX is supported by the Oriental TeX Project of Colorado State University , the Nederlandstalige TeX Gebruikersgroep (Dutch-speaking TeX User Group, NTG) and the TeX Users Group (TUG). The TUG's TeX Development Fund grants a large part of its funding to the LuaTeX project as a "long-cherished wish for a general-purpose programming language embedded in TeX". This highest priority underlines the special importance of LuaTeX for the current TeX development.

Hans Hagen presented a plan for LuaTeX development in February 2009. From version 0.30 onwards, stable and productively usable versions (each intended for TeX Live) were given the version numbers 0.X0. The completion of version 0.80 for the ConTeXt conference 2014 did not succeed; it was only released in June 2015. According to Hagen's original idea, version 1.0 should be published exactly 30 years after the appearance of TeX82 at the TUG 2012, instead it was planned to only be released in September 2016 for the 10th ConTeXt conference in the Netherlands , which was also happened. Since then, the version numbers have only been increased in steps of 1.xy and should mainly contain bug fixes.

Version 1.10, which was released in 2019, was a preliminary end point in the development; there should only be bug fixes and possibly optimizations. Fundamental changes, however, will from now on take place in the 2.X version branch, which could lead to a version 3.00 in the distant future.

Use in Tex Live

LuaTeX was included in the TeX distribution TeX Live for the first time in 2008 in snapshot version 0.25.4. The latest LuaTeX has been integrated into other TeX Live versions: Version 0.40.6 in TeX Live 2009, Version 0.60.2 in TeX Live 2010, Version 0.70.1 in TeX Live 2011, Version 0.70.2 in TeX Live 2012, Version 0.76.0 in TeX Live 2013, version 0.79.1 in TeX Live 2014, version 0.80.0 in TeX Live 2015, version 0.95.0 in TeX Live 2016, version 1.0.4 in TeX Live 2017, version 1.07.0 in TeX Live 2018 and version 1.10.0 in TeX Live 2019. TeX Live 2020 includes version 1.12.0. The TeX Live versions, like those published at the ConTeXt conferences, are to be regarded as the respectively stable versions. All versions between the annual releases are considered beta versions.

history

The most important development steps of the system were published at meetings of the TeX user groups:

version date meeting Innovations
0.10 Jul 18, 2007 TUG 2007 in San Diego first public beta version
0.29 Jul 18, 2008 TUG 2008 in Cork another beta version
0.40 Apr 22, 2009 BachoTeX 2009 in Bachotek (near Brodnica ) with the math extensions
0.43 Aug 19, 2009 EuroTeX 2009 in The Hague ConTeXt Mark IV and LaTeX supplementary packages (. Eg luaotfload, luamplib, luatexbase, luatextra) use LuaTeX functions; special support in TeX still in development
0.50 Dec 24, 2009 - first "stable" beta version
0.60 Apr 4, 2010 - originally intended for TeX Live 2010
0.80 Jun 13, 2015 - new library newtokenlib; included in TeX Live 2015
1.0 27 Sep 2016 ConTeXt conference 2016 in Kalenberg (near Steenwijkerland ) first stable version
1.08 28 Aug 2018 ConTeXt conference 2018 in Sibřina (near Prague ) Binary mode MPLibremoved, Poppler replaced by an integrated library
1.12 25th Mar 2020 - stable version; included in TeX Live 2020

Features of LuaTeX

LuaTeX was developed from a version of pdfTeX that was expanded to include an embedded Lua scripting engine. After a few tests, it was determined to be the successor to pdfTeX (a combination of TeX and ε-TeX that creates PDF files directly). In a later development stage, the main functionality of א, the setting of bidirectional fonts, was integrated.

The main goal of the project was to provide a TeX version in which all internals are accessible via Lua. A large part of the internal TeX code was rewritten during the development process. Instead of using hard-coded properties in TeX, users or macro developers can write their own extensions themselves.

LuaTeX offers native support for OpenType fonts, but can also load TrueType fonts. In contrast to XeTeX , the fonts are not accessed through system functions, but through a library based on FontForge .

A project related to LuaTeX is MPLib (an extended MetaPost module), which provides a graphics engine in TeX.

The macro packages LaTeX and ConTeXt can be used together with LuaTeX. In order to process LaTeX source texts, the program lualatex can be called up immediately. In comparison to pdfLaTeX , some special features have to be considered. The standard coding of the source texts is UTF-8 , so that a special specification of the input coding is no longer required. Therefore the package inputenc must not be used. The fonts are selected with the fontspec package , so any font installed on the system can be integrated. For this reason, the fontenc package must not be loaded.

The ConTeXt version Mark IV is based on LuaTeX. Mark IV source texts must be translated with LuaTeX. By default, LuaTeX is used when calling context. The standard coding for these source texts is also UTF-8.

Structure of a document

A LuaLaTeX example is shown below. On the left is the source text , which can be created with any text editor . The output of this example is shown on the right, which is independent of the monitor or printer type on which it is generated.

Source code of a LuaLaTeX document Output of the compiled document
%% Dieser Quelltext ist in der Kodierung UTF-8 zu speichern und mit lualatex
%% zu kompilieren.

\documentclass[a4paper]{scrartcl}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new, babelshorthands=true]{german}

\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{luacode}

\setromanfont{Cambria}
\setsansfont{Calibri}
\setmonofont{Consolas}
\setmathfont{Cambria Math}

\title{Ein Testdokument}
\author{Otto Normalverbraucher}
\date{15. Januar 2014}

\begin{document}

\maketitle
\tableofcontents

\section{Schriftarten}
Mit Lua\TeX{} lassen sich in Windows die systemeigenen Schriftarten verwenden,
wie zum Beispiel Cambria, die über einen großen Satz mathematischer Zeichen für
die Formeldarstellung verfügt, oder auch \textsf{Calibri} und \texttt{Consolas}.

\section{Formeln}
Lua\TeX{} ist auch ohne Formeln sehr nützlich und einfach zu verwenden. Grafiken,
Tabellen, Querverweise aller Art, Literatur- und Stichwortverzeichnis sind
kein Problem.

Formeln sind etwas schwieriger, dennoch hier ein einfaches Beispiel:

\begin{displaymath}
  E = \frac{m_{0} c^{2}}{\sqrt{1-v^{2}/c^{2}}}
\end{displaymath}

\section{Lua-Code}
Lua\TeX{} kann aber auch Lua-Programmcode ausführen. So erzeugt man zum Beispiel
mit \texttt{directlua} die Zufallszahl \directlua{tex.print(math.random())}.
Auch die Kreiszahl $π$ muss man nicht mehr auswendig wissen, sie hat den Wert
\directlua{tex.print(math.pi)}.

Mithilfe der \texttt{luacode}-Umgebung kann man sogar zählen, wie hier bis Sechzig:
\begin{luacode}
  for x=1,60 do
    tex.print(x)
  end
\end{luacode}

Hier ist der Schluss des Testdokuments.

\end{document}
LuaTeX Output DE.svg

literature

Web links

Commons : LuaTeX  - collection of images, videos and audio files

Individual evidence

  1. Luatex 1.12.0 announcement . (accessed on May 4, 2020).
  2. Downloads . (English, accessed August 6, 2018).
  3. luatex - The Luat E X engine . (English, accessed August 6, 2018).
  4. ^ Robin Fairbairns: What are XeTeX and LuaTeX? In: Frequently Asked Question List for TeX. May 25, 2018, accessed June 22, 2018 .
  5. ^ Robin Fairbairns: What is pdfTeX? In: Frequently Asked Question List for TeX. May 24, 2018, accessed June 22, 2018 .
  6. Another successor system to pdfTeX is XeTeX .
  7. a b Dr. Jürgen Fenn: LuaTeX 1.0.0 - premiere as stable version. In: Heise online. September 29, 2016, accessed September 30, 2016 .
  8. a b Hans-Joachim Baader: LuaTeX 1.0.0 published. In: Pro-Linux. September 30, 2016, accessed October 1, 2016 .
  9. ^ Peter Breitenlohner: The ε-TeX manual. (PDF) The NtS Team, February 2, 1998, accessed October 6, 2016 .
  10. ^ A b Frank Mittelbach: E-TeX. Guidelines for Future TeX Extensions — revisited. (PDF; 141 kB). In: TUGboat. Volume 34, 2013, No. 1, pp. 47-63, TUG's TeX Development Fund committee, ISSN  0896-3207 .
  11. ^ Robin Fairbairns: What is e-TeX? In: UK List of TeX Frequently Asked Questions on the Web (UK TeX FAQ). July 13, 2011, accessed October 6, 2016 .
  12. ^ John Plaice, Yannis Haralambous: The latest developments in Ω. (PDF; 1.65 MB). In: TUGboat. Volume 17, 1996, No. 2, pp. 181-183, TUG's TeX Development Fund committee, ISSN  0896-3207 .
  13. ^ Robin Fairbairns: Omega and Aleph. In: UK List of TeX Frequently Asked Questions on the Web (UK TeX FAQ). Retrieved October 6, 2016 .
  14. Aleph. In: ConTeXt WiKi. ConTeXtGarden, November 20, 2012, accessed on October 6, 2016 .
  15. A roadmap for TEX development. (PDF; 84 kB). In: TUGboat. Volume 28, 2007, No. 3, p. 375 f., TUG's TeX Development Fund committee, ISSN  0896-3207 .
  16. TEX Development Fund 2009 report. (PDF; 59 kB). In: TUGboat. Volume 30, 2009, No. 1, p. 148, TUG's TeX Development Fund committee, ISSN  0896-3207 .
  17. ^ Hans Hagen: The State of LuaTeX. (PDF; 58 kB) Dante 2009, accessed on September 30, 2016 (English).
  18. a b c Roadmap. luatex.org, accessed September 30, 2016 .
  19. a b LuaTeX Reference Manual. release March 2019, version 1.10.0, p. 14.
  20. a b c d e f g h i j See the respective executable LuaTeX files in TeX Live; Download from the TUG server.
  21. Jürgen Fenn: TeX Distribution TeX Live 2008 published. In: Heise online . September 3, 2008, accessed September 30, 2016 .
  22. Taco Hoekwater: LuaTEX beta 0.40.6. In: LuaTeX mailing list. June 25, 2009, accessed September 30, 2016 .
  23. Jürgen Fenn: TeX Distribution TeX Live 2009 published. In: Heise online. November 9, 2009, accessed September 30, 2016 .
  24. Taco Hoekwater: LuaTEX announcement 0.60.2. In: LuaTeX mailing list. July 1, 2010, accessed September 30, 2016 .
  25. Jürgen Fenn: TeX Live 2010 published. In: Heise online. September 10, 2010, accessed September 30, 2016 .
  26. Taco Hoekwater: LuaTEX announcement 0.70.1. In: LuaTeX mailing list. May 19, 2011, accessed September 30, 2016 .
  27. Jürgen Fenn: TeX Live 2011 on the march. In: Heise online. July 21, 2011, accessed September 30, 2016 .
  28. Taco Hoekwater: LuaTEX announcement 0.76.0. In: LuaTeX mailing list. April 5, 2013, accessed September 30, 2016 .
  29. Moritz Förster: Annual update for TeX Live. In: Heise online. June 22, 2013, accessed September 30, 2016 .
  30. Taco Hoekwater: LuaTEX announcement 0.79.1. In: LuaTeX mailing list. March 29, 2014, accessed September 30, 2016 .
  31. Luigi Scarso: LuaTEX announcement 0.95.0. In: LuaTeX mailing list. June 6, 2016, accessed September 30, 2016 .
  32. Luigi Scarso: LuaTEX announcement 1.07.0. In: LuaTeX mailing list. April 19, 2018, accessed August 6, 2018 .
  33. Luigi Scarso: LuaTEX announcement 1.12.0. In: LuaTeX mailing list. March 30, 2020, accessed May 4, 2020 .
  34. ^ Taco Hoekwater: Beta 0.10. In: LuaTeX mailing list. July 18, 2007, accessed August 6, 2018 .
  35. Taco Hoekwater: Luatex beta 0.29.0 released. In: LuaTeX mailing list. July 18, 2008, accessed August 6, 2018 .
  36. Taco Hoekwater: luatex beta 0.40.0. In: LuaTeX mailing list. April 22, 2009, accessed August 6, 2018 .
  37. Taco Hoekwater: LuaTEX announcement 0.43.0. In: LuaTeX mailing list. August 19, 2009, accessed August 6, 2018 .
  38. Taco Hoekwater: LuaTEX announcement 0.50.0. In: LuaTeX mailing list. December 24, 2009, accessed August 6, 2018 .
  39. Taco Hoekwater: LuaTEX announcement 0.60.0. In: LuaTeX mailing list. April 4, 2010, accessed August 6, 2018 .
  40. Luigi Scarso: LuaTEX announcement 0.80.0. In: LuaTeX mailing list. June 13, 2015, accessed August 6, 2018 .
  41. Luigi Scarso: LuaTEX announcement 1.0.0. In: LuaTeX mailing list. September 27, 2016, accessed on August 6, 2018 .
  42. Luigi Scarso: LuaTeX 1.08.0 announcement. In: LuaTeX mailing list. August 31, 2018, accessed September 20, 2019 .