[luatex] Multiple tex.sprint() calls in a Lua function called from \directlua
Tassilo Horn
tsdh at gnu.org
Wed Jul 30 17:35:38 CEST 2014
Hi all,
I'm pretty new to LuaTeX, but I enjoy the fact that I can call Lua
functions from it that are easier for me to write than plain TeX
solutions.
Ok, now here's my problem. I have this Lua function
--8<---------------cut here---------------start------------->8---
function index_protocol_methods(ns, str)
-- str is a sigs string such as
-- "(create-element! model class),(create-element! model class prop-map)"
local known = {}
for method in str:gmatch("%(([a-zA-Z0-9_!?-]+) ") do
if (not known[method]) then
tex.sprint(string.format("\\indexFQ{%q}{%q}",
_index_escape(method),
_index_escape(ns)));
end
known[method] = true;
end
end
--8<---------------cut here---------------end--------------->8---
which is called from my tex document using this macro:
--8<---------------cut here---------------start------------->8---
\newcommand{\idxFQProtocolMethods}[2]{%
\directlua{%
require("definitions.lua");
index_protocol_methods("#1", "#2");}}
--8<---------------cut here---------------end--------------->8---
The problem is that the tex.sprint() calls I do in the loop above don't
make it into my document. I have other functions that just do one
tex.sprint() as last statement, and those do show up fine. I verified
that the pattern matches and also removed the if-statement to print
unconditionally, but still nothing.
So is there some limitation I'm not aware of, e.g., tex.sprint() calls
must be the last statement in a function?
Bye,
Tassilo
More information about the luatex
mailing list