+ return total + xksh, true
+ else --
+ local str = -(total-xkst)/total_sh[65536*total_sh.order] -- end_stretch を入れたときの glue_set (shrink)
+ local shr = (xksh+total)/total_st[65536*total_st.order] -- end_shrink を入れたときの glue_set (stretch)
+ print(xkni, str, ntr, shr)
+ if xkni then
+ if str<shr then
+ local kn = node_new(id_kern)
+ setfield(kn, 'kern', xkst); set_attr(kn, attr_icflag, FROM_JFM)
+ insert_after(head, x, kn)
+ return total- xkst, true
+ else
+ local kn = node_new(id_kern)
+ setfield(kn, 'kern', -xksh); set_attr(kn, attr_icflag, FROM_JFM)
+ insert_after(head, x, kn)
+ return total + xksh, true
+ end
+ else
+ return total, false
+ end