- Paper_line *pl = new Paper_line (Offset (x.length (), y.length ()),
- stencils);
- return pl->self_scm ();
+ Stencil sys_stencil (Box (x,y),
+ scm_cons (ly_symbol2scm ("combine-stencil"),
+ exprs));
+
+ Interval staff_refpoints;
+ staff_refpoints.set_empty();
+ for (SCM s = get_property ("spaceable-staves");
+ scm_is_pair (s); s = scm_cdr (s))
+ {
+ Grob *g = unsmob_grob (scm_car (s));
+ staff_refpoints.add_point (g->relative_coordinate (this, Y_AXIS));
+ }
+
+
+ Paper_system *pl = new Paper_system (sys_stencil, false);
+ pl->staff_refpoints_ = staff_refpoints;
+ Item * break_point =this->get_bound(LEFT);
+ pl->penalty_ =
+ robust_scm2double (break_point->get_property ("page-penalty"), 0.0);
+
+ return scm_gc_unprotect_object (pl->self_scm ());