you are proving my point aren't you?

\setbox0\hbox{\input tufte }
\directlua{
     local n,t,head
     head = tex.box[0].head
     n, t = tex.linebreak(node.copy_list(head), {looseness=1})
     print("1.1",t.looseness)
     n, t = tex.linebreak(node.copy_list(head), {looseness=0})
     print("1.2",t.looseness)
}
\directlua{
     local n,t,head
     head = tex.box[0].head
     n, t = tex.linebreak(node.copy_list(head), {looseness=1,
tolerance=4500, pretolerance=100, emergencystretch=655360 })
     print("2.1",t.looseness)
     n, t = tex.linebreak(node.copy_list(head), {looseness=0,
tolerance=4500, pretolerance=100, emergencystretch=655360 })
     print("2.2",t.looseness)
}
\tolerance4500 \pretolerance100 \emergencystretch10pt
\directlua{
     local n,t,head
     head = tex.box[0].head
     n, t = tex.linebreak(node.copy_list(head), {looseness=1})
     print("3.1",t.looseness)
     n, t = tex.linebreak(node.copy_list(head), {looseness=0})
     print("3.2",t.looseness)
}

1.1    0
1.2    0
2.1    1
2.2    1
3.1    1
3.2    1

1.2 2.2 and 3.2 should show "0" given that we run the linebreaking with looseness zero but 2.1 and 3.1 still show "1"

and if you add t.prevgraf you can see that it actually does do looseness correctly:

1.1     0       7
1.2     0       7
2.1     1       8
2.2     1       7
3.1     1       8
3.2     1       7

am I missing something? the first column reports wrong values

frank

Reply via email to