+ Stencil sys_stencil (Box (x, y),
+ scm_cons (ly_symbol2scm ("combine-stencil"),
+ exprs));
+ if (debug_skylines)
+ {
+ Skyline_pair *skylines = Skyline_pair::unsmob (get_property ("vertical-skylines"));
+ if (skylines)
+ {
+ sys_stencil.add_stencil (Lookup::points_to_line_stencil (0.1, (*skylines)[UP].to_points (X_AXIS)).in_color (255, 0, 0));
+ sys_stencil.add_stencil (Lookup::points_to_line_stencil (0.1, (*skylines)[DOWN].to_points (X_AXIS)).in_color (0, 255, 0));
+ }
+ }
+
+ Grob *left_bound = this->get_bound (LEFT);
+ SCM prop_init = left_bound->get_property ("line-break-system-details");
+ Prob *pl = make_paper_system (prop_init);
+ paper_system_set_stencil (pl, sys_stencil);
+
+ /* information that the page breaker might need */
+ Grob *right_bound = this->get_bound (RIGHT);
+ pl->set_property ("skylines", this->get_property ("skylines"));
+ pl->set_property ("page-break-permission", right_bound->get_property ("page-break-permission"));
+ pl->set_property ("page-turn-permission", right_bound->get_property ("page-turn-permission"));
+ pl->set_property ("page-break-penalty", right_bound->get_property ("page-break-penalty"));
+ pl->set_property ("page-turn-penalty", right_bound->get_property ("page-turn-penalty"));
+
+ Interval staff_refpoints;
+ extract_grob_set (this, "spaceable-staves", staves);
+ for (vsize i = 0; i < staves.size (); i++)
+ staff_refpoints.add_point (staves[i]->relative_coordinate (this, Y_AXIS));
+
+ pl->set_property ("staff-refpoint-extent", ly_interval2scm (staff_refpoints));
+ pl->set_property ("system-grob", this->self_scm ());