![交互式 lualatex 编译](https://linux22.com/image/298252/%E4%BA%A4%E4%BA%92%E5%BC%8F%20lualatex%20%E7%BC%96%E8%AF%91.png)
我有一个制作好的文档,其中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
在这种情况下,不应使用该行。