Verwenden Sie luatex, um den Befehl \let an andere

Verwenden Sie luatex, um den Befehl \let an andere

suche immer noch nach LuaTeX. Ich verstehe, wie ich Lua-Code innerhalb von TeX-Code ausführen kann (über \luadirect), aber nicht, wie ich TeX-Code innerhalb von Lua-Code ausführen kann.

Ich erkläre: Ich möchte eine Reihe von \let-Befehlen aus einer Luatex-Liste erstellen.

Mein MWE ist

\def\a{s}

\directlua{
  x = {"b","c"}
  for y in pairs(x) do
    print (y)
    % I would like to \let\<y>\a
  end
}

Ich möchte, dass \directlua etwas wie

\let\b\a
\let\c\a

Antwort1

\letSie können wahrscheinlich direkt von Lua aus die Hash-Tabelle von TeX verändern, einfacher ist es jedoch, Lua die Anweisungen ausschreiben zu lassen .

> \b=macro:
->s.
l.10 \show\b

? 
> \c=macro:
->s.
l.11 \show\c

? 
)
No pages of output

Hergestellt aus:

\def\a{s}

\directlua{
  x = {"b","c"}
  for n,y in pairs(x) do
     tex.print("\string\\let\string\\" .. y .. "\string\\a")
  end
}

\show\b
\show\c

\bye

verwandte Informationen