Есть ли способ пошагово выполнять макросы LuaLaTeX с помощью удаленного отладчика?

Есть ли способ пошагово выполнять макросы LuaLaTeX с помощью удаленного отладчика?

Написание макросов LaTeX всегда было трудным, и похоже, что написать крупный пакет может толькоНастоящий Программист.

К счастью, LuaTeX уже в пути, и написание макросов Lua, возможно, более дружелюбно к человеку, чем программирование в TeX. Тем не менее, это могло бы стать еще дружелюбнее, если бы был способ связать LuaTeX с удаленным отладчиком.

Поэтому я спрашиваю:Есть ли способ удаленной отладки макросов LuaLaTeX?

Этот вопрос по сути является перефразировкой постаОтладка Lua в LuaLatex с помощью LDT. Пост был закрыт, так как в нем не было вопроса. В посте было предложено почти полное решение, но были некоторые проблемы, и я хотел бы узнать, можно ли их решить.

решение1

В настоящее время вы можете получить отладку графического интерфейса Lua-кода прямо в процессе обработки документа LuaTeX. С точками останова, отслеживанием переменных, пошаговым выполнением кода, стеком вызовов и даже отображением подсказок с изменяемым содержимым при наведении мыши.

Моя среда для работы с TeX —Код VS+Семинар по LaTeX+LTex. Это довольно удобно: я могу писать и отлаживать программу на C++ и в том же окне писать статью, описывающую ее. LaTeX Workshop имеет так много функций, что что-либо вроде TeXstudio кажется ненужным.

Вы также можете редактировать свой документ TeX и отлаживать его Lua в той же среде VS Code. Для поддержки и отладки 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Скотт Лембке. Этонетрешение для удаленной отладки, но его очень легко настроить. С другой стороны, нет графического интерфейса, поэтому все делается через терминал. Но это намного лучше, чем выдавать команды печати, что, вероятно, является подходом, используемым большинством авторов пакетов LuaLaTeX на сегодняшний день.

Для начала:

  1. Скачатьотладчик.luaи поместите его в папку вашего проекта.
  2. Поместите команду local dbg = require("debugger")в начало файла .lua, который вы хотите отладить.
  3. Поместите команду dbg()в те места кода, где вы хотите, чтобы выполнение кода было прервано.
  4. Используйте команды терминала для проверки переменных, выполнения пользовательского кода и т. д. Введите команду, hчтобы получить простую сводку доступных команд.

Связанный контент