From 901e5c91a6a8bcf3f7b05e45cc304f328f32f2fe Mon Sep 17 00:00:00 2001 From: janneke Date: Thu, 18 Aug 2005 09:55:08 +0000 Subject: [PATCH] * scm/define-grob-properties.scm (avoid-slur): New property. * lily/phrasing-slur-engraver.cc (acknowledge_extra_object): * lily/slur-engraver.cc (acknowledge_extra_object): Invoke outside_slur_callback if avoid-slur != #'inside. * scm/define-grobs.scm (Fingering, Textscript): No inside-slur/outside-slur preference. (DynamicLineSpanner): Always outside slur. * input/regression/slur-script.ly: More tests. --- Documentation/topdocs/NEWS.tely | 2 +- input/regression/slur-script.ly | 10 ++++++++-- lily/accidental.cc | 10 ++++++++-- lily/phrasing-slur-engraver.cc | 4 ++-- lily/script-interface.cc | 14 ++++++++++++-- lily/slur-engraver.cc | 3 ++- scm/define-grob-properties.scm | 4 ++-- scm/define-grobs.scm | 2 ++ 8 files changed, 37 insertions(+), 12 deletions(-) diff --git a/Documentation/topdocs/NEWS.tely b/Documentation/topdocs/NEWS.tely index ce1b7c309a..282c2441f4 100644 --- a/Documentation/topdocs/NEWS.tely +++ b/Documentation/topdocs/NEWS.tely @@ -56,7 +56,7 @@ collisions with slurs { b_1( f'_1_2_3 c_3_4_5 a) b( f'\p b,) - c-2_\markup { \italic {"cresc."}}( f c) + c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c) } @end lilypond diff --git a/input/regression/slur-script.ly b/input/regression/slur-script.ly index bf3162ec2c..e0399ba7c5 100644 --- a/input/regression/slur-script.ly +++ b/input/regression/slur-script.ly @@ -11,6 +11,7 @@ \version "2.6.0" \layout { + indent = 0\mm raggedright = ##t } \relative @@ -22,10 +23,15 @@ b( f'\p b,) %% Do not force dynamics outside slur, only avoid collisions. - \override DynamicLineSpanner #'avoid-slur = #'() - \override DynamicLineSpanner #'padding = #0.3 + \override DynamicLineSpanner #'avoid-slur = #'around + \override DynamicLineSpanner #'padding = #0.4 b( e\p e\f b) + %% Do not avoid collisions. + \override DynamicLineSpanner #'avoid-slur = #'() + \revert DynamicLineSpanner #'padding + b( d\p d\f b) + c_\markup { \italic {"cresc."}}( c c) \once \override Script #'padding = #1.2 b-.( b-. diff --git a/lily/accidental.cc b/lily/accidental.cc index bd02de2067..6df7e5116d 100644 --- a/lily/accidental.cc +++ b/lily/accidental.cc @@ -240,8 +240,14 @@ Accidental_interface::print (SCM smob) } /* - TODO: should move inside-slur into item? + TODO: should move avoid-slur into item? */ ADD_INTERFACE (Accidental_interface, "accidental-interface", "a single accidental", - "inside-slur cautionary cautionary-style style tie accidentals"); + "accidentals " + "avoid-slur " + "cautionary " + "cautionary-style " + "style " + "tie " + ); diff --git a/lily/phrasing-slur-engraver.cc b/lily/phrasing-slur-engraver.cc index 2be42433a2..c240642d8f 100644 --- a/lily/phrasing-slur-engraver.cc +++ b/lily/phrasing-slur-engraver.cc @@ -103,8 +103,8 @@ Phrasing_slur_engraver::acknowledge_extra_object (Grob_info info) for (int i = end_slurs_.size (); i--;) Slur::add_extra_encompass (end_slurs_[i], e); } - else if (avoid != ly_symbol2scm ("inside") - && e->name () != "DynamicText") + else if (avoid == ly_symbol2scm ("outside") + || avoid == ly_symbol2scm ("around")) { Grob *slur = slurs_.size () ? slurs_[0] : 0; slur = (end_slurs_.size () && !slur) diff --git a/lily/script-interface.cc b/lily/script-interface.cc index f796c58e38..1b313ffc65 100644 --- a/lily/script-interface.cc +++ b/lily/script-interface.cc @@ -90,12 +90,22 @@ struct Text_script ADD_INTERFACE (Text_script, "text-script-interface", "An object that is put above or below a note", - "add-stem-support slur script-priority inside-slur"); + "add-stem-support " + "avoid-slur " + "script-priority " + "slur " + ); /* Hmm. Where should we put add-stem-support ? */ ADD_INTERFACE (Script_interface, "script-interface", "An object that is put above or below a note", - "add-stem-support slur-padding slur script-priority script-stencil inside-slur"); + "add-stem-support " + "avoid-slur " + "script-priority " + "script-stencil " + "slur " + "slur-padding " + ); diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index 6f76ed297f..f24a377c3d 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -102,7 +102,8 @@ Slur_engraver::acknowledge_extra_object (Grob_info info) for (int i = end_slurs_.size (); i--;) Slur::add_extra_encompass (end_slurs_[i], e); } - else if (avoid != ly_symbol2scm ("inside") + else if ((avoid == ly_symbol2scm ("outside") + || avoid == ly_symbol2scm ("around")) && e->name () != "DynamicText") { Grob *slur = slurs_.size () ? slurs_[0] : 0; diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index 8a477c570b..fb4e97fff2 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -277,8 +277,8 @@ slur, the closer it is to this height.") of note-column for horizontal shifting. This is used by @internalsref{note-collision-interface}.") (avoid-slur ,symbol? "Method of handling slur collisions. -Choices are @{around}, @{ignore}, @{inside}, @{outside}. If -unset, script and slur ignore eachother.") +Choices are @{around}, @{inside}, @{outside}. If unset, script +and slur ignore eachother.") (inspect-quants ,number-pair? "If debugging is set, set beam quant to this position, and print the respective scores.") diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 2aa0c7dc4f..c1df9d2044 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -536,6 +536,7 @@ ;; sync with TextScript (?) (padding . 0.5) + (avoid-slur . around) (slur-padding . 0.2) (staff-padding . 0.5) (self-alignment-X . 0) @@ -1408,6 +1409,7 @@ (padding . 0.5) (staff-padding . 0.5) (before-line-breaking-callback . ,Script_interface::before_line_breaking) + (avoid-slur . around) (slur-padding . 0.5) (script-priority . 200) ;; todo: add X self alignment? -- 2.39.5