[luatex] node missing
Andreas Matthias
andreas.matthias at gmail.com
Sun Jan 22 21:14:19 CET 2012
Paul Isambert wrote:
> Andreas Matthias <andreas.matthias at gmail.com> a écrit:
>>
>> Paul Isambert wrote:
>>
>>> Andreas Matthias <andreas.matthias at gmail.com> a écrit:
>>>>
>>>> In the following example I expected \mybox to contain `abc'
>>>> eventually. Instead it only contains `bc'. Why is the `a'
>>>> missing?
>>>
>>> You must assign n1 to box.head, as in
>>>
>>> [...]
>>> n1.next = box.head
>>> box.head = n1
>>> tail = node.slide(n1)
>>> [...]
>>>
>>> otherwise the box still points to its former head as its first node
>>> (which has indeed n1 as its prev node, but it is ignored because scanning
>>> begins at the former head).
>>
>>
>> Hmm. I see it's working now but I still don't understand why.
>>
>> Function foo creates and returns an hlist `h' and I thought this
>> hlist would be assigned to mybox with
>>
>> tex.setbox(mybox, foo(tex.box.mybox))
>>
>> Hlist `h' does not contain the original box but the interior of
>> the box, does it? Then why do I have to set box.head?
>
> Sorry, I didn't pay enough attention. I thought it was the usual error
> (forgetting to reassign to a list's head being quite common).
>
> Actually,
>
> tex.setbox(mybox, foo(tex.box.mybox))
>
> doesn't mean anything, it should be:
>
> tex.setbox("mybox", foo(tex.box.mybox))
Yes, I see. That was nonsense.
Are there any use cases of
tex.setbox(nil, ...)
at all? Or wouldn't a warning be more appropriate than
silently accepting nil?
> Consequently:
>
> n1.next = box.head
>
> should be:
>
> n1.next = node.copy_list(box.head)
>
> Otherwise LuaTeX will be stuck in a loop (I have no time to investigate
> why, but it does so).
What a nice loop! My notebook completely stalled!
Ciao
Andreas
More information about the luatex
mailing list