--- /dev/null
+\version "2.13.41"
+
+\header {
+ texidoc = "
+Layouts that overflow a page will be compressed in order to fit on
+the page, even if it causes collisions. In this example, the
+tagline should not collide with the bottom staff.
+"
+}
+
+\paper {
+ paper-height= 8\cm
+}
+
+\book {
+ \repeat unfold 3 { g'''1\mark \markup "Long Text" g'''1\break}
+}
solution_ = spacer.spring_positions ();
if (!spacer.fits ())
- warning (_f ("couldn't fit music on page: overflow is %f",
- spacer.configuration_length(spacer.force()) - page_height_));
+ {
+ Real overflow = spacer.configuration_length (spacer.force ()) - page_height_;
+ vsize space_count = solution_.size ();
+ for (vsize i = 0; i < space_count; i++)
+ solution_[i] -= (i + 1) * overflow / space_count;
+ warning (_f ("couldn't fit music on page: overflow is %f",
+ overflow));
+ warning (_ ("compressing music to fit"));
+ }
}
// The solution_ vector stores the position of every live VerticalAxisGroup