* lily/score-engraver.cc (try_music): Bugfix.
+2004-04-11 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * input/test/title-markup.ly: Add \noPagebreak test.
+
+ * lily/score-engraver.cc (try_music): Bugfix.
+
2004-04-11 Han-Wen Nienhuys <hanwen@xs4all.nl>
* lily/main.cc (main_with_guile): call lilypond-main
%% bookTitle = \markup { \fill-line < \huge\bold \title > > }
}
+%% suggest harder :-)
+%% noPagebreak = #(make-event-chord (list (make-penalty-music 0 1e9)))
+
\book {
\score {
%% stress page breaking:
%% 35 keep on 3 pages
%% 36 spread evenly over 4 pages
- \repeat unfold 36 { a b c d \break }
+ \repeat unfold 6 { a b c d \break }
+
+ %% FIXME: TODO factor \pagebreak \noPagebreak into regtest
+ %% Without this, page breaks are better, after measure: 12
+ \noPagebreak
+ \repeat unfold 30 { a b c d \break }
c1
}
\header {
forbid_breaks ();
SCM page_pen = command_column_->get_property ("page-penalty");
- if (is_number (page_pen))
- {
- Real total_pp = ly_scm2double (page_pen);
- SCM mpage_pen = m->get_property ("page-penalty");
- if (is_number (mpen))
- total_pp += ly_scm2double (mpage_pen);
-
- // FIXME: this never reaches a grob that System::get_line sees.
- command_column_->set_property ("page-penalty",
- scm_make_real (total_pp));
- }
+ Real total_pp = is_number (page_pen) ? ly_scm2double (page_pen) : 0.0;
+ SCM mpage_pen = m->get_property ("page-penalty");
+ if (is_number (mpage_pen))
+ total_pp += ly_scm2double (mpage_pen);
+
+ command_column_->set_property ("page-penalty", scm_make_real (total_pp));
return true;
}
return false;
unsmob_stencil (my_stencil)->translate (o + extra);
stencils = scm_cons (my_stencil, stencils);
-#if 0
- // FIXME: never original
- if (!penalty || g->original_)
+ if (g->original_)
{
if (Item *it = dynamic_cast <Item*> (g))
{
Grob *col = it->get_column ();
SCM s = col->get_property ("page-penalty");
- // FIXME: 'page-penalty is never set
// FIXME; page breaking is not discrete at +-10000
if (is_number (s)) // && fabs (ly_scm2double (s)) < 10000)
penalty += ly_scm2double (s);
}
}
-#else
- SCM s = g->get_property ("page-penalty");
- // FIXME: 'page-penalty is never set
- // FIXME; page breaking is not discrete at +-10000
- if (is_number (s)) // && fabs (ly_scm2double (s)) < 10000)
- penalty += ly_scm2double (s);
-#endif
}
Interval x (extent (this, X_AXIS));