<[email protected]> wrote:
>
> Thanks, Andreas!
> It's still a bit unclear. I went to my /usr/share/texmf-local (because adding
> lines into texmf-dist/web2c/texmf.cnf is bad) and created texmf.cfg with the
> following
>
> LUAINPUTS = $LUAINPUTS;/usr/share/lua/5.3//
> CLUAINPUTS = $CLUAINPUTS:/usr/lib64/lua/5.3//
My texmf.cnf contains the following:
LUAROCKS_PATH = ~/.luarocks/share/lua/5.3
LUAROCKS_CPATH= ~/.luarocks/lib/lua/5.3
% Note: use --shell-escape to run binary lua libraries
LUAINPUTS =
$TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/
{luatex,plain,generic,latex,}//;$LUAROCKS_PATH//
CLUAINPUTS =
$TEXMFDOTDIR;$SELFAUTOLOC/lib/{$progname,$engine,}/lua//;$LUAROCKS_CPATH//
% lualatex
LUAINPUTS.lualatex =
$TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}//;$LUAROCKS_PATH//
Now create a file test.lua:
kpse.set_program_name('lualatex')
local loader = require('luapackageloader')
loader.add_lua_searchers()
print(package.path)
And run:
texlua test.lua
This should print the package.path including your luarocks path.
Now you can try it with a LaTeX file:
\documentclass{article}
\usepackage{luapackageloader}
\begin{document}
\directlua{
print(package.path)
local serpent = require('serpent')
local foo = {a=1, b='foo'}
print()
print(serpent.dump(foo))
}
\end{document}
This should dump table "foo" onto the console.
> Then you mention luapackageloader in the context of a Lua syntax, so it looks
> like it is a Luarocks package. But there is no such package. There is a LaTeX
> package with this name just as Faheem mentions. So, I added
> \usepackage{luapackageloader} which from its documentation suggests that it
> adds necessary search paths:
The package "luapackageloader" contains "luapackageloader.sty" as well
as "luapckageloader.lua".
If you are writing your code in a lua-file, then require the lua-file.
If you writing the code directly in
your LaTeX files then load the sty-file.
Andreas