Erste Schritte mit LuaTeX

Das folgende Beispiel zeigt die einfache Möglichkeit, einen Lua-Befehl innerhalb von LaTeX auszuführen. Dasselbe funktioniert auch mit Plain TeX.

% !TEX lualatex
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\begin{document}
Die Kreiszahl $\pi$ hat den Wert \directlua{tex.print(math.pi)}.
\end{document}

Hier ergeben sich aber direkt einige Probleme. Man kann beispielsweise die üblichen Lua-Kommentarzeichen (--) nicht mehr benutzen, weil alles, was innerhalb von \directlua{…} steht, in einer Zeile interpretiert wird. So hat folgender Code einen Syntaxfehler:

\directlua{ 
   for x=1,10 do -- Schleifenanfang
     tex.print(x)
   end
}

weil der Lua-Interpreter folgendes liest:

\directlua{ for x=1,10 do -- Schleifenanfang tex.print(x) end }

und den Rest hinter dem Schlüsselwort do ignoriert. Daher empfiehlt es sich, Lua-Code soweit wie möglich in eine eigene Datei zu schreiben und in dem \directlua-Befehl nur den Befehl zum Laden der Datei anzugeben.

Sollte das nicht möglich sein, kann man auf das Paket luacode mit der gleichnamigen Umgebung ausweichen:

% !TEX lualatex
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{luacode}
\begin{document}
\begin{luacode*}
  for x=1,10 do -- Schleifenanfang
   tex.print(x)
  end
\end{luacode*}
\end{document}

Trotzdem gilt hier die dringende Empfehlung, möglichst wenig Code in den LaTeX-Quellen zu verwenden und für den Rest eine eigene Datei zu nutzen. Damit wird man auch aussagekräftigere Fehlermeldungen mit Zeilennummer erhalten.

This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

Creative Commons Lizenzvertrag Diese Seite bearbeiten Ältere Versionen Übersicht Links hierher RSS feed Impressum