Seite 1 von 1

LuaLaTeX: Tabellen mit Text

Verfasst: Mo 13. Jul 2015, 16:04
von Robert Terwilliger
Und gleich noch eine Anfängerfrage zu LuaLaTeX:

Warum klappt
\documentclass{standalone}

\usepackage{polyglossia}
\usepackage{hyperref}

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


\begin{document}

 % Lange Tabelle, die alle Werte enthält, die ich nachher verwenden möchte.
 \directlua{t = {["123"] = 456, ["789"] = 1011}}

\end{document}
aber führt
\documentclass{standalone}

\usepackage{polyglossia}
\usepackage{hyperref}

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


\begin{document}

 % Lange Tabelle, die alle Werte enthält, die ich nachher verwenden möchte.
 \directlua{t = {["foo"] = "hello", ["bar"] = "world"}}

\end{document}
zu der Fehlermeldung
! Argument of \language@active@arg" has an extra }.
R.

Verfasst: Mo 13. Jul 2015, 18:20
von u_fischer
Benütze \shorthandoff{"} vor dem \directlua. Mit babelshorthands=true machst du " aktiv, und das kann dann explodieren, wenn es an der falschen Stelle benutzt wird (z.B vor einer Klammer).

Verfasst: Di 14. Jul 2015, 12:19
von Robert Terwilliger
Klappt, wunderbar. Danke!

Der Vollständigkeit halber hier der Code:
\documentclass{standalone}

\usepackage{polyglossia}
\usepackage{hyperref}

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


\begin{document}

 % Lange Tabelle, die alle Werte enthält, die ich nachher verwenden möchte.
 \shorthandoff{"}
 \directlua{t = {["foo"] = "hello", ["bar"] = "world"}}
 \shorthandoff{"}
 
 \directlua{tex.sprint(t["foo"])}

\end{document}
Für das, was ich machen möchte, reicht die Lösung. Ich habe nur gerade überlegt, was man machen müsste, wenn man in die Tabelle Babelshorthands schreiben wollte.

R.