+2002-05-20 Han-Wen <hanwen@cs.uu.nl>
+
+ * lily/note-head.cc (internal_brew_molecule): warn if note head
+ not found.
+
+ * lily/time-signature.cc (special_time_signature): remove warning
+ about time signature.
+
+ * lily/spacing-spanner.cc (musical_column_spacing): Prevent
+ reverse springs by limiting fixed-note space.
+
2002-05-19 Jan Nieuwenhuizen <janneke@gnu.org>
* stepmake/aclocal.m4: Bugfix: complain if program not found.
\version "1.3.146"
\header {
-texidoc = "There is limited support for mensural notation: note head shapes are available. Mensural stems are centered on the note heads, both for up and down stems."
+
+texidoc = "There is limited support for mensural notation: note head
+shapes are available. Mensural stems are centered on the note heads,
+both for up and down stems."
+
}
+
\score {\notes { \context Voice {
-\property Voice.NoteHead \override #'style = #'mensural
+ \property Voice.NoteHead \set #'font-family = #'ancient
+ \property Voice.NoteHead \override #'style = #'mensural
\transpose d''' { c4 c2 c8 c16 c16 c1 c\breve c\longa }
\transpose c'' { c4 c2 c8 c16 c16 c1 c\breve c\longa }
}}}
"An object that handles collisions between notes with different stem
directions and horizontal shifts. Most of the interesting properties
are to be set in @ref{note-column-interface}: these are
-@code{force-hshift} and @{horizontal-shift}.
+@code{force-hshift} and @code{horizontal-shift}.
",
"merge-differently-dotted merge-differently-headed collision-done");
+0.5*(ledgerlinethickness));
Box ledger_line (x_extent, y_extent);
-#if 1
Molecule proto_ledger_line =
Lookup::roundfilledbox (ledger_line, blotdiameter);
-#else
- Molecule proto_ledger_line = // if you like it the old way
- Lookup::filledbox (ledger_line);
-#endif
if (!take_space)
proto_ledger_line.set_empty (true);
SCM_UNDEFINED);
String name = "noteheads-" + ly_scm2string (scm_primitive_eval (exp));
Molecule out = Font_interface::get_default_font (me)->find_by_name (name);
-
+ if (out.empty_b())
+ {
+ warning (_f("Symbol not found, ", name.ch_C()));
+ }
+
int interspaces = Staff_symbol_referencer::line_count (me)-1;
int pos = (int)rint (Staff_symbol_referencer::position_f (me));
if (abs (pos) - interspaces > 1)
/*
- Generate the space between two musical columns LC and RC, given spacing parameters INCR and SHORTEST.
+ Generate the space between two musical columns LC and RC, given
+ spacing parameters INCR and SHORTEST.
*/
void
Spacing_spanner::musical_column_spacing (Grob *me, Item * lc, Item *rc, Real increment, Rational shortest)
if (max_note_space < 0)
{
max_note_space = base_note_space;
- max_fixed_note_space = increment;
+ max_fixed_note_space = increment;
}
bool ragged = to_boolean (me->paper_l ()->get_scmvar ("raggedright"));
+
+ /*
+ Whatever we do, the fixed space is smaller than the real
+ space.
+
+ TODO: this criterion is discontinuous in the derivative.
+ Maybe it should be continuous?
+ */
+ max_fixed_note_space = max_fixed_note_space <? max_note_space;
+
Real strength = (ragged) ? 1.0 : 1 / (max_note_space - max_fixed_note_space);
Real distance = (ragged) ? max_fixed_note_space : max_note_space;
// Spaceable_grob::add_spring (lc, rc, distance, strength, expand_only);
Spaceable_grob::add_spring (lc, rc, distance, strength, false);
}
+
+/*
+ The one-size-fits all spacing. It doesn't take into account
+ different spacing wishes from one to the next column.
+ */
void
Spacing_spanner::standard_breakable_column_spacing (Grob * me, Item*l, Item*r,
Real * fixed, Real * space,
-
+
if (isinf (max_space))
{
- programming_error ("No pref spacing found");
+ /*
+ One situation where this can happen is when there is a column
+ that only serves as a spanning point for a short staff-symbol.
+
+ ===============X===
+
+ |=======Y
+
+
+ (here no StaffSpacing from Y to X is found.)
+ */
+ programming_error ("No StaffSpacing wishes found");
max_space = 2.0;
max_fixed = 1.0;
}
if (!m.empty_b ())
return m;
- String message =
- "unknown time signature `" + s +
- "'; resorting to default layout with numbers";
- warning (_ (message.ch_C ()));
-
- // Resort to default layout with numbers
+ /*
+ If there is no such symbol, we default without warning to the
+ numbered style.
+ */
return time_signature (me, n, d);
}
##docme: why global?
foutn=""
def do_file(input_filename):
- global foutn
- file_settings = {}
- if outname:
- my_outname = outname
- elif input_filename == '-' or input_filename == "/dev/stdin":
- my_outname = '-'
- else:
- my_outname = os.path.basename (os.path.splitext(input_filename)[0]) + '.' + format
- my_depname = my_outname + '.dep'
chunks = read_doc_file(input_filename)
chunks = chop_chunks(chunks, 'lilypond', make_lilypond, 1)
x = 0
chunks = completize_preamble (chunks)
+
+
+ global foutn
+
+ if outname:
+ my_outname = outname
+ elif input_filename == '-' or input_filename == "/dev/stdin":
+ my_outname = '-'
+ else:
+ my_outname = os.path.basename (os.path.splitext(input_filename)[0]) + '.' + format
+ my_depname = my_outname + '.dep'
+
if my_outname == '-' or my_outname == '/dev/stdout':
fout = sys.stdout
foutn = "<stdout>"