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.