원격 디버거를 사용하여 LuaLaTeX 매크로를 단계별로 실행하는 방법이 있나요?

원격 디버거를 사용하여 LuaLaTeX 매크로를 단계별로 실행하는 방법이 있나요?

LaTeX 매크로를 작성하는 것은 항상 어려웠으며, 주요 패키지 작성은 다음과 같은 방법으로만 수행할 수 있는 것 같습니다.실제 프로그래머.

다행스럽게도 LuaTeX가 출시되고 있으며 Lua 매크로를 작성하는 것이 TeX로 프로그래밍하는 것보다 인간 친화적인 것은 틀림없습니다. 하지만 LuaTeX를 원격 디버거와 결합할 수 있는 방법이 있다면 더욱 친숙해질 수 있습니다.

그러므로 나는 이렇게 묻습니다.LuaLaTeX 매크로를 원격으로 디버깅할 수 있는 방법이 있나요?

이 질문은 본질적으로 게시물을 바꾸는 것입니다.LDT를 사용하여 LuaLatex에서 Lua 디버깅. 질문이 실제로 포함되지 않았기 때문에 게시물이 닫혔습니다. 게시물에서 거의 완전한 해결책이 제안되었지만 몇 가지 문제가 있었는데 이러한 문제가 해결될 수 있는지 알고 싶습니다.

답변1

요즘에는 문서의 LuaTeX 처리 도중에 Lua 코드의 GUI 디버깅을 얻을 수 있습니다. 중단점을 사용하여 변수를 관찰하고, 코드를 단계별로 실행하고, 호출 스택을 호출하고, 마우스를 올리면 변수 내용이 포함된 도구 설명도 표시됩니다.

TeX을 사용하기 위한 나의 환경은 다음과 같습니다.VS 코드+LaTeX 워크숍+LTEeX. 매우 편리합니다. C++ 프로그램을 작성하고 디버깅할 수 있으며, 같은 창에서 이를 설명하는 문서를 작성할 수도 있습니다. LaTeX Workshop에는 TeXstudio와 같은 것이 불필요하다고 느낄 정도로 많은 기능이 있습니다.

또한 동일한 VS Code 환경에서 TeX 문서를 편집하고 해당 Lua를 디버깅할 수도 있습니다. 문서 내에서 Lua를 지원하고 디버깅하려면 두 가지 확장이 필요합니다.루아그리고로컬 Lua 디버거.

디버깅하려면 프리앰블에 다음을 삽입하세요.

\begin{luacode}
    require("lldebugger").start()
\end{luacode}

그런 다음 다음 시작 구성을 생성합니다.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Custom Lua Environment",
            "type": "lua-local",
            "request": "launch",
            "stopOnEntry": false,
            "program": {
                "command": "lualatex"
            },
            "args": ["mwe.tex"]
        }
    ]
}

위의 위치는 mwe.tex문서의 이름입니다. 그게 다야. 디버깅할 준비가 되었습니다. F5를 누르세요. 지금까지 유일한 단점은 문서 내부에 중단점을 배치할 수 없다는 것입니다 .tex. Lua 파일이어야 합니다.

다음은 디버그 세션의 스크린샷입니다.

여기에 이미지 설명을 입력하세요

답변2

간단하고 가벼운 대안 중 하나는 명령줄 인터페이스 디버거입니다.디버거.lua스캇 렘브케 지음. 이것은~ 아니다원격 디버깅 솔루션이지만 설정이 매우 쉽습니다. 단점은 GUI가 없기 때문에 모든 것이 터미널을 통해 이루어집니다. 그러나 아마도 현재까지 대부분의 LuaLaTeX 패키지 작성자가 사용하는 접근 방식인 인쇄 명령을 실행하는 것보다 훨씬 낫습니다.

시작하려면:

  1. 다운로드디버거.lua프로젝트 폴더에 넣으세요.
  2. local dbg = require("debugger")디버깅하려는 .lua 파일의 시작 부분에 명령을 배치합니다 .
  3. dbg()코드 실행을 중단하려는 코드 위치에 명령을 배치하세요 .
  4. 터미널 명령을 사용하여 변수를 검사하고 사용자 정의 코드를 실행하는 등의 작업을 수행하세요. h사용 가능한 명령에 대한 간단한 요약을 얻으려면 명령을 실행하십시오 .

관련 정보