Use luatex para deixar o comando para outro

Use luatex para deixar o comando para outro

ainda procurando por LuaTeX, entendo como posso executar código Lua dentro do código TeX (via \luadirect), mas não como posso executar código TeX dentro do código Lua.

Eu explico: gostaria de fazer uma série de comandos \let a partir de uma lista luatex.

Meu MWE é

\def\a{s}

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

O que eu gostaria que \directlua produzisse algo como

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

Responder1

Você provavelmente pode mexer diretamente com a tabela hash do TeX de lua, mas o mais simples é fazer com que lua escreva as \letinstruções.

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

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

? 
)
No pages of output

Produzido a partir de:

\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

informação relacionada