我将 LuaLaTeX 与 LuaSQL 结合使用,我有两个文件,分别是test.tex
和test.lua
。当我使用 进行编译时lualatex test.tex
,首先test.lua
运行 ,它从我的数据库中读取变量 的行中的用户值id_user = 3
。此变量在 内设置test.lua
。
所以目前每个编译都返回同一个用户的值,但我想在编译时将用户 ID 作为参数传递,例如:
lualatex test.tex 2399
这将适用于具有 的用户id_user = 2399
。所以这里的问题是我必须将值传递给 lualatex 而不是 lua 本身!这该怎么做?有人可以提供 MWE 吗?
答案1
从 Sharpie 对类似问题的回答中略作修改后重新发布向文档传递参数
在您的 lua 代码中,命令行参数在 中可用arg
。在这里,我们只打印参数,但代码确实显示了如何获取它们。
%argtest.tex
\documentclass{article}
\begin{document}
\noindent Command line arguments:
\directlua{
if arg then
for i,v in ipairs(arg) do
if (i > 1) then
tex.print("\string\\begin{description}")
tex.print("\string\\item[" .. i .. "]" .. v)
tex.print("\string\\end{description}")
end
end
end
}
\end{document}
调用
lualatex argtest.tex ham spam jam
你获得