description.end_rods_.push_back (Rod_description (j, scm_to_double (scm_cdar (s))));
}
}
+
if (!line_starter && to_boolean (col->get_property ("keep-inside-line")))
description.keep_inside_line_ = col->extent (col, X_AXIS);
+
description.break_permission_ = col->get_property ("line-break-permission");
return description;
}
if (!cols[i].keep_inside_line_.is_empty ())
{
spacer.add_rod (i - st, end - st, cols[i].keep_inside_line_[RIGHT]);
- spacer.add_rod (0, i - st, cols[i].keep_inside_line_[LEFT]);
+ spacer.add_rod (0, i - st, -cols[i].keep_inside_line_[LEFT]);
}
}
spacer.solve ((b == 0) ? line_len - indent : line_len, ragged);
Real f = spacer.force ();
force[b * breaks.size () + c] = f - (f < 0 ? f*f*f*f*4 : 0);
- if (end < cols.size () && cols[end].break_permission_ == force_break)
- break;
if (!spacer.fits ())
{
if (c == b + 1)
force[b * breaks.size () + c] = infinity_f;
break;
}
+ if (end < cols.size () && cols[end].break_permission_ == force_break)
+ break;
}
}
return force;
if (!cols[i].keep_inside_line_.is_empty ())
{
spacer.add_rod (i, cols.size (), cols[i].keep_inside_line_[RIGHT]);
- spacer.add_rod (0, i, cols[i].keep_inside_line_[LEFT]);
+ spacer.add_rod (0, i, -cols[i].keep_inside_line_[LEFT]);
}
}