--- /dev/null
+\header {
+
+ texidoc = "No hyphen should be printed under a grace note at the start
+of a line if the grace's main note starts a new syllable."
+}
+
+<<
+ \new Staff {
+ \appoggiatura f'8 g'2 g'( | \break
+ \appoggiatura f'8 g'2) \appoggiatura f'8 g'2 | \break
+ \appoggiatura f'8 g'2 g' | \break
+ g'2 g' |
+ }
+ \addlyrics {
+ \lyricmode {
+ bla -- bla -- bla -- bla -- bla -- bla -- bla
+ }
+ }
+ \new Staff {
+ g'2 g' |
+ g'2 g' |
+ g'2 g' |
+ g'2 g' |
+ }
+ \addlyrics {
+ \lyricmode {
+ bla -- bla -- bla -- bla -- bla -- bla -- bla -- bla
+ }
+ }
+>>
bool to_bool () const;
I64 den () const;
I64 num () const;
+ Rational main_part () const;
+ Rational grace_part () const;
/*
Deliver a copy of THIS as a smobified SCM
*/
bool moment_less (SCM a, SCM b);
#endif /* MOMENT_HH */
-
SCM
Lyric_hyphen::print (SCM smob)
{
+
Spanner *me = unsmob_spanner (smob);
Drul_array<Item *> bounds (me->get_bound (LEFT),
me->get_bound (RIGHT));
+ /* No hyphen should be printed under a grace note at the start
+ of a line if the grace's main note starts a new syllable. */
+
+ if (Paper_column::when_mom (bounds[LEFT]->get_column ()).grace_part () != Rational (0)
+ && Paper_column::when_mom (bounds[LEFT]->get_column ()).main_part ()
+ == Paper_column::when_mom (bounds[RIGHT]->get_column ()).main_part ())
+ return SCM_EOL;
+
if (bounds[LEFT]->break_status_dir ()
&& (Paper_column::when_mom (bounds[LEFT])
== Paper_column::when_mom (bounds[RIGHT]->get_column ())))
"padding "
"thickness "
);
-
return main_part_ || grace_part_;
}
+Rational
+Moment::main_part () const
+{
+ return main_part_;
+}
+
+Rational
+Moment::grace_part () const
+{
+ return grace_part_;
+}
+
void
Moment::set_infinite (int k)
{
{
return *unsmob_moment (a) < *unsmob_moment (b);
}
-