[luatex] void box

Andreas Matthias andreas.matthias at gmail.com
Tue Feb 7 18:48:39 CET 2012


Paul Isambert wrote:

> Andreas Matthias <andreas.matthias at gmail.com> a écrit:
>> 
>> What is the lua equivalent of a void box? I.e. how to
>> create a void box in lua?
> 
> I'm not sure that it can be done, strictly speaking. By a void box, I
> suppose you mean an unassigned box register (i.e. \voidb at x);

Yes, I was thinking of \voidb at x.

> now that
> I think of it, it is strange that \unhbox\voidb at x is allowed in the
> first place (if nothing is assigned to the register, how can you unhbox
> it?).

That's what amazed me too.

> On the Lua side, an unassigned box register (e.g. tex.box["voidb at x"])
> returns nil (unlike an unassigned count register, which returns 0), so
> I'd say the Lua equivalent of a void box is nil. 

Yes, but you can neither append a node to nil nor pack nil with
node.hpack. So, it is not too equivalent, is it?

> Of course, if you're
> just looking for an empty box, that's easy (except you have to specify
> if it's an horizontal or vertical box): node.new(node.id"hlist", 2) or
> node.new(node.id"vlist", 2) (the second argument is optional but later
> it might be useful to know that this is a handmade box).

Oh yes! Of course! One can create hlist nodes directly. I didn't
remember that. I was trying something like node.hpack(nil) which
didn't work.


Actually I was just looking for a simple node as a starting point
for a list of nodes which are generated in some kind of loop.
I think an hlist node is very suitable for this:


list = node.new(node.id('hlist'))
curr = list

for i=0,5 do
    n = node.new(node.id('glyph'))
    n.font=1
    n.char=97+i

    curr.next = n
    curr = n
end



Ciao
Andreas



More information about the luatex mailing list