LuaTeX

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
LuaTeX
LuaTeX-Logo
Entwickler LuaTeX-Team
(Taco Hoekwater,
Hartmut Henkel,
Hans Hagen)
Aktuelle Version 1.0.4[1]
(4. Juni 2017)
Betriebssystem Multiplattform
Programmiersprache Lua
Kategorie Schriftsatz
Lizenz GNU General Public License
www.luatex.org

LuaTeX ([ˈluaˌtɛχ]) ist ein Textsatzsystem, das über die darin eingebettete Skriptsprache Lua gesteuert werden kann. LuaTeX ist ein Nachfolger des in seiner Entwicklung weitgehend abgeschlossenen pdfTeX.[2][3] Als Eingabekodierung wird standardmäßig Unicode verwendet. LuaTeX ist in der Lage, OpenType- und TrueType-Schriftarten sowohl für den Text- als auch für den Mathematiksatz einzusetzen. Am 27. September 2016 wurde die Veröffentlichung der ersten stabilen Version 1.0.0 bekannt gegeben.[4][5]

Geschichte[Bearbeiten | Quelltext bearbeiten]

Schon vor pdfTeX und LuaTeX gab es Bestrebungen, das TeX-System zu verbessern. Die 1994 veröffentlichte Erweiterung ε-TeX erhöhte die Anzahl von ehemals 256 TeX-internen Registern (bedingt durch die alte 8-Bit-Adressierung) auf nun 32.768.[6][7][8] Eine Zeichencodierung in 16-Bit-Unicode, die eine breite Palette von Alphabeten abdeckt, wurde mit der TeX-Erweiterung Ω (Omega) eingeführt.[9][10] Obwohl Ω viele weitere innovative Konzepte beinhaltete, kam seine Entwicklung zum Erliegen und der Code wurde im Jahr 1991 eingefroren. Eine weitere Entwicklung war א (Aleph). Dessen Ziel war eine TeX-Erweiterung, die die Ω- und ε-TeX-Funktionalitäten vereint. Hauptmerkmal von א ist die Unterstützung von bidirektionalem Schriftsatz.[7][11]

Das neu geschaffene LuaTeX sollte die Funktionalitäten von pdfTeX, ε-TeX, Ω und א in sich vereinen.

Die Entwicklung von LuaTeX wird unterstützt durch das Oriental TeX Project der Colorado State University, die Nederlandstalige TeX Gebruikersgroep (niederländischsprachige TeX User Group, NTG) und die TeX Users Group (TUG). Der TeX Development Fund der TUG gewährt dem LuaTeX-Projekt als „lang gehegtem Wunsch nach einer in TeX eingebetteten Allzweck-Programmiersprache“[12] einen Großteil seiner Mittel. Diese höchste Förderpriorität[13] unterstreicht die besondere Bedeutung von LuaTeX für die aktuelle TeX-Entwicklung.

Die Veröffentlichung der wichtigsten Entwicklungsschritte des Systems erfolgte jeweils bei Tagungen der TeX-Anwendervereinigungen:

Versionen von LuaTeX
Version Datum Tagung Neuerungen
0.10[14][15] 18. bis 20. Juli 2007 TUG-Konferenz 2007 in San Diego erste öffentliche Beta-Version
0.29[16] 21. bis 24. Juli 2008 TUG-Konferenz 2008 in Cork weitere Beta-Version
0.40[17] 29. April bis 3. Mai 2009 BachoTeX 2009 in Bachotek (bei Brodnica) mit den Mathematikerweiterungen
0.43[18] 31. August bis 4. September 2009 EuroTeX 2009 in Den Haag ConTeXt mark IV und LaTeX mit Zusatzpaketen (z. B. luaotfload, luamplib, luatexbase, luatextra) nutzen LuaTeX-Funktionen; besondere Unterstützung in TeX noch in Entwicklung
0.50.0[19] Weihnachten 2009 erste „stabile“ Beta-Version
0.60.0[20] Ostern 2010
0.80.0[21] 13. Juni 2015
1.0.0[22] 25. September bis 1. Oktober 2016 ConTeXt-Konferenz 2016 in Kalenberg (bei Steenwijkerland) erste stabile Version

Einen Plan zur LuaTeX-Entwicklung hatte Hans Hagen im Februar 2009 vorgestellt.[23] Version 1.0 sollte ursprünglich genau 30 Jahre nach dem Erscheinen von TeX82 zur TUG 2012 veröffentlicht werden, was aber nicht gelungen war. Die Fertigstellung von Version 0.80 zur ConTeXt-Konferenz 2014 war ebenfalls nicht möglich; sie kam erst im Juni 2015 heraus. Ab Version 0.30 bekamen stabile und produktiv verwendbare Versionen (jeweils vorgesehen für TeX Live) die Versionsnummern 0.X0.

In der TeX-Distribution TeX Live wurde LuaTeX erstmals 2008 in der Snapshot-Version 0.25.4 aufgenommen.[24][25] In weitere TeX-Live-Versionen wurde das jeweils aktuelle LuaTeX integriert: Version 0.40.6[26] in TeX Live 2009,[24][27] Version 0.60.2[28] in TeX Live 2010,[24][29] Version 0.70.1[30] in TeX Live 2011,[31] Version 0.70.2[24] in TeX Live 2012,[24] Version 0.76.0[32] in TeX Live 2013,[24][33] Version 0.79.1 in TeX Live 2014, Version 0.80.0 in TeX Live 2015[24] sowie Version 0.95.0 in TeX Live 2016.[24] In TeX Live 2017 ist die Version 1.0.4 enthalten.[24]

Die erste stabile Version LuaTeX 1.0.0 wurde, wie vorgesehen,[34] zur 10. ConTeXt-Konferenz im September 2016 freigegeben.[4][5] Seitdem werden die Versionsnummern nur noch in Schritten von .0.1 erhöht. Zukünftige Änderungen sollen hauptsächlich Bugfixes betreffen. Grundlegende Veränderungen sollen von nun an in den 2.X-Versionen stattfinden, die in ferner Zukunft zu einer Version 3.00 führen könnten.[34]

Merkmale von LuaTeX[Bearbeiten | Quelltext bearbeiten]

LuaTeX ist aus einer Version von pdfTeX entwickelt worden, die um eine eingebettete Lua-Scripting-Engine erweitert worden war. Nach einigen Tests wurde es zum Nachfolger von pdfTeX (einer Kombination aus TeX und ε-TeX, die PDF-Dateien direkt erzeugt) bestimmt. In einem späteren Entwicklungsstadium wurde die Hauptfunktionalität von א, das Setzen von bidirektionalen Schriften, integriert.

Das Hauptziel des Projektes war, eine TeX-Version zur Verfügung zu stellen, in der alle Interna über Lua zugänglich sind. Im Entwicklungsprozess wurde ein großer Teil des internen TeX-Codes umgeschrieben. Statt in TeX fest codierte Eigenschaften zu verwenden, können die Nutzer oder Makro-Entwickler ihre eigenen Erweiterungen selbst schreiben.

LuaTeX bietet native Unterstützung für OpenType-Schriften an, kann aber auch TrueType-Schriften laden. Im Gegensatz zu XeTeX wird nicht durch System-Funktionen auf die Schriften zugegriffen, sondern über eine auf FontForge basierende Bibliothek.

Ein mit LuaTeX zusammenhängendes Projekt ist MPLib (ein erweitertes MetaPost-Modul), das in TeX eine Grafik-Engine zur Verfügung stellt.

Aufbau eines Dokuments[Bearbeiten | Quelltext bearbeiten]

Auf der linken Seite ist ein Beispiel als Quelltext dargestellt, das mit einem beliebigen Texteditor erstellt werden kann. Rechts ist die Ausgabe dieses Beispiels dargestellt, die unabhängig vom Bildschirm- oder Druckertyp ist, auf dem sie erzeugt wird.

Quelltext eines LuaTeX-Dokuments Ausgabe des kompilierten Dokuments
%% Dieser Sourcecode 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

Literatur[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. TeX Live. In: tug.org. TeX Users Group, 3. Juni 2017, abgerufen am 7. Juni 2017 (englisch).
  2. Robin Fairbairns: PDFTeX and LuaTeX. In: UK List of TeX Frequently Asked Questions on the Web (UK TeX FAQ). 21. Mai 2013, abgerufen am 30. September 2016 (englisch).
  3. Ein anderes Nachfolgesystem von pdfTeX ist XeTeX.
  4. a b Jürgen Fenn: LuaTeX 1.0.0 – Premiere als stabile Version. In: Heise online. 29. September 2016, abgerufen am 30. September 2016.
  5. a b Hans-Joachim Baader: LuaTeX 1.0.0 erschienen. In: Pro-Linux. 30. September 2016, abgerufen am 1. Oktober 2016.
  6. Peter Breitenlohner: The ε-TeX manual. The NtS Team, 2. Februar 1998, abgerufen am 6. Oktober 2016 (englisch).
  7. a b Frank Mittelbach: E-TeX. Guidelines for Future TeX Extensions—revisited. (PDF; 141 kB) In: TUGboat, Volume 34, 2013, No. 1, S. 47–63, TUG’s TeX Development Fund committee, ISSN 0896-3207.
  8. Robin Fairbairns: What is e-TeX? In: UK List of TeX Frequently Asked Questions on the Web (UK TeX FAQ). 13. Juli 2011, abgerufen am 6. Oktober 2016 (englisch).
  9. John Plaice, Yannis Haralambous: The latest developments in Ω. (PDF; 1,65 MB) In: TUGboat, Volume 17, 1996, No. 2, S. 181–183, TUG’s TeX Development Fund committee, ISSN 0896-3207.
  10. Robin Fairbairns: Omega and Aleph. In: UK List of TeX Frequently Asked Questions on the Web (UK TeX FAQ). Abgerufen am 6. Oktober 2016 (englisch).
  11. Aleph. In: ConTeXt WiKi. ConTeXtGarden, 20. November 2012, abgerufen am 6. Oktober 2016 (englisch).
  12. A roadmap for TEX development. (PDF; 84 kB) In: TUGboat, Volume 28, 2007, No. 3, S. 375 f., TUG’s TeX Development Fund committee, ISSN 0896-3207.
  13. TEX Development Fund 2009 report. (PDF; 59 kB) In: TUGboat, Volume 30, 2009, No. 1, S. 148, TUG’s TeX Development Fund committee, ISSN 0896-3207.
  14. LuaTeX Project Filelist.
  15. Taco Hoekwater: Beta 0.10. In: Dev-LuaTeX-Mailingliste. 18. Juli 2007, abgerufen am 4. Oktober 2016 (englisch).
  16. Taco Hoekwater: Luatex beta 0.29.0 released. In: Dev-LuaTeX-Mailingliste. 18. Juli 2008, abgerufen am 4. Oktober 2016 (englisch).
  17. Taco Hoekwater: Luatex beta 0.40.0. In: LuaTeX-Mailingliste. 22. April 2009, abgerufen am 4. Oktober 2016 (englisch).
  18. Taco Hoekwater: Luatex 0.43.0 announcement. In: LuaTeX-Mailingliste. 19. August 2009, abgerufen am 4. Oktober 2016 (englisch).
  19. Taco Hoekwater: Luatex 0.50.0 announcement. In: LuaTeX-Mailingliste. 24. Dezember 2009, abgerufen am 30. September 2016 (englisch).
  20. Taco Hoekwater: Luatex 0.60.0 announcement. In: LuaTeX-Mailingliste. 4. April 2010, abgerufen am 30. September 2016 (englisch).
  21. Luigi Scarso: Luatex 0.80.0 announcement. In: LuaTeX-Mailingliste. 13. Juni 2015, abgerufen am 4. Oktober 2016 (englisch).
  22. Luigi Scarso: Luatex 1.0.0 announcement. In: LuaTeX-Mailingliste. 27. September 2016, abgerufen am 27. September 2016 (englisch).
  23. Hans Hagen: The State of LuaTeX. Dante 2009, abgerufen am 30. September 2016 (PDF; 58 kB, englisch).
  24. a b c d e f g h i Vgl. die jeweiligen ausführbaren LuaTeX-Dateien in TeX Live; Download vom TUG-Server.
  25. Jürgen Fenn: TeX-Distribution TeX Live 2008 veröffentlicht. In: Heise online. 3. September 2008, abgerufen am 30. September 2016.
  26. Taco Hoekwater: Luatex beta 0.40.6. In: LuaTeX-Mailingliste. 15. Juni 2009, abgerufen am 30. September 2016 (englisch).
  27. Jürgen Fenn: TeX-Distribution TeX Live 2009 veröffentlicht. In: Heise online. 9. November 2009, abgerufen am 30. September 2016.
  28. Taco Hoekwater: Luatex 0.60.2 announcement. In: LuaTeX-Mailingliste. 1. Juli 2010, abgerufen am 30. September 2016 (englisch).
  29. Jürgen Fenn: TeX Live 2010 veröffentlicht. In: Heise online. 10. September 2010, abgerufen am 30. September 2016.
  30. Taco Hoekwater: Luatex 0.70.1 announcement. In: LuaTeX-Mailingliste. 19. Mai 2011, abgerufen am 30. September 2016 (englisch).
  31. Jürgen Fenn: TeX Live 2011 im Anmarsch. In: Heise online. 21. Juli 2011, abgerufen am 30. September 2016.
  32. Taco Hoekwater: Luatex 0.76.0 announcement. In: LuaTeX-Mailingliste. 5. April 2013, abgerufen am 30. September 2016 (englisch).
  33. Moritz Förster: Jährliches Update für TeX Live. In: Heise online. 22. Juni 2013, abgerufen am 30. September 2016.
  34. a b Roadmap. luatex.org, abgerufen am 30. September 2016 (englisch).