# [luatex] Absolute beginners questions

Keith J. Schultz schultzk at gmx.net
Fri Sep 30 10:55:55 CEST 2011

Hi Peter,

I like I said I am a seasoned programmer.
I know that declaring something local makes it local to its scope.

At this point I am just curious, what might be possible so that I can better plan.

You have basically answered my questions.

thanx again,

regards
Keith.

Am 30.09.2011 um 09:26 schrieb Paul Isambert:

> 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