[luatex] Strange cost in pagebreaking.

Paul Isambert zappathustra at free.fr
Tue Oct 15 22:08:58 CEST 2013

Hello all,

I’ve encountered a problem which I definitely can’t solve. It looks
like a TeX problem, but since I really can’t see what’s going on I
suspect a LuaTeX bug. Unfortunately the problem is extremely sensitive
to simple changes, and so I can’t even compare with a PDFTeX
compilation. (And since there is a lot of my own code involved, I
cannot do a minimal example either.)

Here’s what \tracingpages returns in my log file (until the current
page is deemed good):

1.  %% goal height=569.05511, max depth=4.0
2.  % split251 to 0.0,38.12 p=-10000
3.  % split252 to 0.0,103.05 p=-10000
4.  % t=0.0 g=498.47559 b=10000 p=0 c=100000#
5.  % t=22.0 g=498.47559 b=10000 p=150 c=100000#
6.  % t=45.22 g=498.47559 b=10000 p=0 c=100000#
7.  % t=70.16 g=498.47559 b=10000 p=0 c=100000#
8.  % t=93.27 g=498.47559 b=10000 p=150 c=100000#
9.  % t=105.27 g=498.47559 b=10000 p=0 c=100000#
10. % t=121.27 plus 1.0fil g=498.47559 b=0 p=150 c=-19850#
11. % t=133.27 plus 1.0fil g=498.47559 b=0 p=0 c=-20000#
12. % t=145.27 plus 1.0fil g=498.47559 b=0 p=0 c=-20000#
13. % t=157.27 plus 1.0fil g=498.47559 b=0 p=150 c=-19850
14. % t=169.27 plus 1.0fil g=498.47559 b=0 p=0 c=-20000#
15. % t=185.27 plus 2.0fil g=498.47559 b=0 p=150 c=-19850
16. % t=197.27 plus 2.0fil g=498.47559 b=0 p=150 c=-19850
17. % t=209.27 plus 2.0fil g=498.47559 b=0 p=0 c=-20000#
18. % t=209.27 plus 3.0fil g=498.47559 b=0 p=-11000 c=-11000

What bothers me is line 10 and following: where does the cost of
-20000 comes from? There is no penalty of that value for each of those
line, so I really can’t see how it can be computed (since, basically,
the cost of a breakpoint is badness + penalty). Then the page is
broken at the wrong place – even though breaking is of course
triggered by the big negative penalty at line 18.

(You may note that outputting the page at line 17 instead of 18
doesn’t change anything, since no material is added, so this
troublesome bahavior isn’t so troublesome; well, actually it is, when
you’re expecting a given \outputpenalty.)

So, have I missed some obvious subtlety?


More information about the luatex mailing list