交互式 lualatex 编译

交互式 lualatex 编译

我有一个制作好的文档,其中LuaLaTeX包含一些常量,每次我都必须根据具体情况进行更改。

有没有办法LuaLaTeX打开一个交互式窗口来询问我常量的值?

例如,我希望n在下一步中 被要求MWE

\documentclass[border=3pt]{standalone}
\usepackage{luacode}

\newcommand{\bob}{%
    \luadirect{
    n = 5
    for i = 1,n
    do
        tex.print(i)
    end
    }
}

\begin{document}

\bob

\end{document}

答案1

如果您一开始就以交互模式运行 LuaLaTeX,即从 shell(换句话说,控制台/终端)运行,则可以获得一种相当原始的交互形式。所有前端都以非交互模式运行 LaTeX(任何引擎)。

就是这样:

\documentclass[border=3pt]{standalone}
\usepackage{luacode}

\typein[\myn]{Tell me n, boss!}

\newcommand{\bob}{%
    \luadirect{
    n = \myn\space
    for i = 1,n
    do
        tex.print(i)
    end
    }
}

\begin{document}

\bob

\end{document}

终端上的运行将中断并显示以下消息

Tell me n, boss!

\myn =

您应该通过输入数字来回答。

恐怕没有窗口系统。您可以使用任何脚本语言获得带有精美对话框的窗口;答案应该用于使脚本运行类似

lualatex -interaction=nonstopmode '\def\myn{<the answer>}\input{<filename>}'

(添加您需要的所有其他选项)。\typein在这种情况下,不应使用该行。

相关内容