Probabilmente mi perdo qualcosa….
Se compilo questo esempio minimo:
`
% !TEX program = LuaLaTeX
\documentclass{report}
\begin{document}
\directlua{
A = {vertex = {{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3}}}tex.print(#A)
tex.print(#A.vertex)
tex.print(#A.vertex[1])
}
\end{document}`ottengo il seguente errore:
`! LuaTeX error <\directlua >:1: attempt to get length of a number value
stack traceback:
<\directlua >:1: in main chunk.`Scrivo qualcosa di sbagliato?
Niente di grave, è solo che in LuaTeX il codice viene prima “visto” da TeX ed i simboli # in TeX sono riservati per definire gli argomenti. Una semplice soluzione è quella di premettere il comando \string per evitare che TeX lo veda come carattere particolare:
`
% !TEX program = LuaLaTeX
\documentclass{report}
\begin{document}
\directlua{
A = {vertex = {{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3}}}
tex.print(\string#A)
tex.print(\string#A.vertex)
tex.print(\string#A.vertex[1])
}
\end{document}`
Nel pacchetto luacode sono indicate le varie modalità per gestire i caratteri speciali dei due linguaggi (per esempio il simbolo di % che in Lua serve per costruire stringhe di formato).
Scusami, non mi ero accorto che compilavi con LuaLaTeX.
Alla prossima.
Ciao