luatex를 사용하여 다른 사람에게 명령을 보내십시오.

luatex를 사용하여 다른 사람에게 명령을 보내십시오.

여전히 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

관련 정보