luatexを使用して\letコマンドを他の

luatexを使用して\letコマンドを他の

まだ LuaTeX を探していますが、TeX コード内で Lua コードを実行する方法 (経由\luadirect) は理解していますが、Lua コード内で TeX コードを実行する方法は理解していません。

説明します: luatex リストから一連の \let コマンドを作成したいと思います。

私のMWEは

\def\a{s}

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

私が望むのは\directluaが次のようなものを生成することです

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

答え1

おそらく、lua から TeX のハッシュ テーブルを直接操作することもできますが、より簡単な方法は、lua にステートメントを書き出させることです\let

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

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

? 
)
No pages of output

制作元:

\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

関連情報