[luatex] post_linebreak_filter (partly) broken?

Hans Hagen pragma at wxs.nl
Fri Mar 11 19:32:00 CET 2016


On 3/11/2016 5:47 PM, Frank Mittelbach wrote:
> Am 11.03.16 um 14:00 schrieb Hans Hagen:
>>> My guess is that  this is again a single global variable that is being
>>> reused in several places (ie the hpack_filter ???) so that it gets
>>> clobbered depending on what linebreak does
>>
>> It's a local variable passed to a function by value and not changed in
>> between so can you check if it's not a latex callback wrapper that is
>> obscuring it? (What groupcoude is shown in pre and not in post?)
>
> no latex involved :-)
>
> I did set up pre_linebreak_filter to find out the cases where line
> breaking happens on the main vertical list (in contrast to being done in
> a box, say). Then inside pre_linebreak_filter I run
>
>    tex.linebreak
>
> several times with different looseness (you cann see all my reports
> coming together :-) ) and record the different results
>
> Then in post_linebreak_filter I replace the generated paragraph node
> list with something special (basically to drop it) and to be able to
> find out about the para on the contribution list (which I look at in
> buildpage_filter). Could probably be done differently but that was the
> simplest way to get this working for me.
>
> Anyway, I only want to kill paragraphs if they are on the main vertical
> list but let the others through in normal typesetting so in
> post_linebreak_filter I go
>
>   if groupcode == "" then ...
>
> only that now groupcode is alway empty while in pre_linebreak_filter it
> was "vbox" or "adjusted..." etc depending on where I put paragraphs in
> my test file
>
> so perhaps calling tex.linebreak kills its value
>
> does this help?

not much but this is what happens:

pre line break
line break
post line break

these are done after each other and pre/post really get the same group 
context and theyu use the same callback logic so they report the same 
group code

however, the callback will not be issued on an empty node, so, if your 
linebreak removes something, then it can be that the post is not called

is there a < 10 line example available?

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the luatex mailing list