Le 30/09/2011 08:53, Keith J. Schultz a écrit :
Hi Peter,
I am so to say an very advanced programmer, but I have never liked
the TeX way of doing things nor have I tried to really learn TeX.
So welcome to LuaTeX :)
(Although the TeX way was a good source of amusing puzzles; and might
not fade so soon.)
I had seen the reference, but as you said it is quite low level and more aimed
towards the TeX use.
The wiki lists other sources of info (and don't forget the wiki itself):
http://wiki.luatex.org/index.php/Documentation_and_help
My main interest is what I have to pass to the lua interpreter
This depends on what you want to do. Without an example, it is hard to
say what you "have to" pass.
and what I can access from
with in it.
TeX internals (baselineskip, maxdepth and the likes), plus all
count/box/... registers, plus callbacks and lists of nodes (the most
interesting part). Also, again, without an example, it's a bit hard to
make a sensible answer.
Here the Lua(La)TeX documentation is so what vague. It seem also to suggest
that each call to lua are singular and can not themselves share their state
between them and
if the globals where glaobals to TeX or the lua interpreter.
\directlua calls are Lua chunk, meaning what is local in a \directlua
call is undefined in other calls; otherwise global variables are
accessible from all chunks. See for instance:
\directlua{%
local foo = "foo" % Local variable
bar = "bar" % Global variable
}
\directlua{
texio.write_nl(foo or "nothing") % Prints "nothing"
texio.write_nl(bar or "nothing") % Prints "bar"
}
As for the globals being globals to TeX or Lua, I'll admit I don't
understand the question. Globals in TeX and globals in Lua are different
things and do not interact; the former are related to TeX groups, the
latter to Lua chunks.
For right know all I need to do is inject the proper commands into the TeX
engine.
Again, "proper" without an example is a bit vague. Could you be more
precise?
Best,
Paul