Problem solved. If there is a better way, I would like to know. Cheers, Eduardo Ochs [email protected] http://angg.twu.net/
The code is below. # Download luarepl-0.5 and untar it into /tmp/lua-repl-0.5/ cd /tmp/ wget https://github.com/hoelzro/lua-repl/archive/0.5.tar.gz tar -C /tmp/ -xvzf /tmp/0.5.tar.gz # Create /tmp/lualoader.lua cat > /tmp/lualoader.lua <<'%%%' -- From http://lua-users.org/wiki/LuaModulesLoader local function lualoader(modulename) local errmsg = "" -- Find source local modulepath = string.gsub(modulename, "%.", "/") for path in string.gmatch(package.path, "([^;]+)") do local filename = string.gsub(path, "%?", modulepath) local file = io.open(filename, "rb") if file then -- Compile and return the module return assert(loadstring(assert(file:read("*a")), filename)) end errmsg = errmsg.."\n\tno file '"..filename.."' (checked with custom loader)" end return errmsg end -- -- See http://www.lua.org/manual/5.1/manual.html#pdf-package.loaders table.insert(package.loaders, 2, lualoader) -- -- See also: http://lua-users.org/wiki/BinaryModulesLoader %%% # Create /tmp/myrepl.lua cat > /tmp/myrepl.lua <<'%%%' repldir = "/tmp/lua-repl-0.5/" package.path = "" package.path = repldir.."?/init.lua;"..package.path package.path = repldir.."?.lua;" ..package.path repl = require "repl" sync = require "repl.sync" function sync:showprompt(p) io.write(p == ">" and ">>> " or ">>>> ") end function sync:lines() return io.stdin:lines() end function sync:displayerror(err) print(err) end function sync:displayresults(results) if results.n == 0 then return end print(unpack(results, 1, results.n)) end print() sync:run() %%% # Create /tmp/myrepl.tex cat > /tmp/myrepl.tex <<'%%%' \documentclass{book} \begin{document} \directlua{dofile "lualoader.lua"} \directlua{dofile "myrepl.lua"} \end{document} %%% # Run LuaRepl from LuaLaTeX - the prompt will be ">>> " cd /tmp/ lualatex myrepl.tex
