bound.
+2004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * lily/system.cc (get_line): extract page-penalty from the left
+ bound.
+
+ * scm/fret-diagrams.scm (fret-diagram): use @table for documentation
+
2004-06-12 Han-Wen Nienhuys <hanwen@xs4all.nl>
* scm/framework-ps.scm: don't load output-XXX from framework-XXX
* ly/engraver-init.ly (AncientRemoveEmptyStaffContext): remove
override of Beam::position-callbacks. Why would grace beams not be
- quantized? Fixes: weird-stem-size-grace. Backportme.
+ quantized? Fixes: weird-stem-size-grace.
* lily/new-lyric-combine-music-iterator.cc (find_voice): issue
warning only once. Backportme.
formatting in polyphonic music easier. Rest collision testing will
leave these rests alone
+@cindex @code{\rest}
+
@lilypond[quote,raggedright,verbatim]
a'4\rest d'4\rest
@end lilypond
@cindex duration
+@cindex @code{\longa}
+@cindex @code{\breve}
+@cindex @code{\maxima}
In Note, Chord, and Lyrics mode, durations are designated by numbers
@node Unmetered music
@subsection Unmetered music
+@cindex @code{\bar}
+
Bar lines and bar numbers are calculated automatically. For unmetered
music (e.g. cadenzas), this is not desirable. By setting
@code{Score.timing} to false, this automatic timing can be switched
indicate where line breaks can occur.
-
@refcommands
@cindex @code{\cadenzaOn}
is to split chords using the separator @code{\\}. You can use it for
small, short-lived voices or for single chords
+@cindex @code{\\}
+
@lilypond[quote,verbatim,fragment]
\context Staff \relative c'' {
c4 << { f d e } \\ { b c2 } >>
c8 c4. } \\ { c2 c2 } >>
@end lilypond
-LilyPond also vertically shifts rests that are opposite of a stem
-
+LilyPond also vertically shifts rests that are opposite of a stem,
+for example
@lilypond[quote,raggedright,fragment,verbatim]
\context Voice << c''4 \\ r4 >>
Book::process (String outname, Output_def *default_def)
{
Paper_book *paper_book = new Paper_book ();
-
Real scale = ly_scm2double (bookpaper_->c_variable ("outputscale"));
Output_def * scaled_bookdef = scale_output_def (bookpaper_, scale);
SCM all = lines ();
SCM proc = paper->c_variable ("page-breaking");
SCM pages = scm_apply_0 (proc, scm_list_n (all,
- self_scm (),
- scm_make_real (text_height),
- scm_make_real (-copy_height),
- scm_make_real (-tag_height),
- SCM_UNDEFINED));
+ self_scm (),
+ scm_make_real (text_height),
+ scm_make_real (-copy_height),
+ scm_make_real (-tag_height),
+ SCM_UNDEFINED));
SCM *page_tail = &pages_;
SCM exprs = SCM_EOL;
SCM *tail = &exprs;
- Real penalty = 0;
for (int i = LAYER_COUNT; i--;)
for (SCM s = all; ly_c_pair_p (s); s = ly_cdr (s))
{
*tail = scm_cons (st.expr (), SCM_EOL);
tail = SCM_CDRLOC(*tail);
- /*
- UGH. back-end should extract this info from the System?
- */
- if (g->original_)
- {
- /*
- Huh ? penalties from all columns are added ??!! --hwn
- */
- if (Item *it = dynamic_cast <Item*> (g))
- {
- Grob *col = it->get_column ();
- SCM s = col->get_property ("page-penalty");
-
- // FIXME; page breaking is not discrete at +-10000
- if (ly_c_number_p (s)) // && fabs (ly_scm2double (s)) < 10000)
- penalty += ly_scm2double (s);
- }
- }
}
- /*
- TODO: fix user penalties.
-
- */
+
Interval x (extent (this, X_AXIS));
Interval y (extent (this, Y_AXIS));
Stencil sys_stencil (Box (x,y),
Paper_line *pl = new Paper_line (sys_stencil, false);
+
+
+ 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 ());
}
(define (doc-markup-function func)
(let*
- (
- (doc-str (procedure-documentation func) )
+ ((doc-str (procedure-documentation func) )
(f-name (symbol->string (procedure-name func)))
(c-name (regexp-substitute/global #f "-markup$" f-name 'pre "" 'post))
(sig (object-property func 'markup-signature))