From a5dd8f857c7857aaa4acfbddf0c2c46088e69259 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 8 Nov 2005 12:57:27 +0000 Subject: [PATCH] * clef-key-distance.ly: add note. * lily/grob-closure.cc (add_offset_callback): bugfix: properly add offset callbacks. This fixes alignment for Fingering objects. * scm/define-grobs.scm (all-grob-descriptions): tiny bit less space for key - timesig combination. * input/regression/script-stem-tremolo.ly (Module): new file. * scm/define-grobs.scm (all-grob-descriptions): decrease distance to key sig. * lily/dynamic-engraver.cc (acknowledge_stem_tremolo): new function. * lily/text-engraver.cc (acknowledge_stem_tremolo): new function. * lily/script-engraver.cc (acknowledge_stem_tremolo): new function. * scm/define-grobs.scm (all-grob-descriptions): remove self-X-offset. Fixes alignment of octavate-8. * scripts/lilypond-book.py (datadir): look in LILYPONDPREFIX/share/lilypond/current/ * GNUmakefile.in: symlink current to . --- ChangeLog | 29 ++++++++++++++++++++++++- GNUmakefile.in | 2 ++ input/regression/script-stem-tremolo.ly | 14 ++++++++++++ lily/dynamic-engraver.cc | 12 ++++++++++ lily/grob-closure.cc | 28 ++++++++++++++---------- lily/mensural-ligature-engraver.cc | 2 ++ lily/script-engraver.cc | 14 ++++++++++++ lily/text-engraver.cc | 9 ++++++++ lily/vaticana-ligature-engraver.cc | 2 ++ scm/define-grobs.scm | 11 +++++----- scm/define-markup-commands.scm | 2 +- scripts/lilypond-book.py | 4 +++- 12 files changed, 109 insertions(+), 20 deletions(-) create mode 100644 input/regression/script-stem-tremolo.ly diff --git a/ChangeLog b/ChangeLog index 200690b9d5..3d5a4d904f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,37 @@ +2005-11-08 Han-Wen Nienhuys + + * lily/grob-closure.cc (add_offset_callback): bugfix: properly add + offset callbacks. This fixes alignment for Fingering objects. + + * scm/define-grobs.scm (all-grob-descriptions): tiny bit less + space for key - timesig combination. + + * input/regression/script-stem-tremolo.ly (Module): new file. + + * scm/define-grobs.scm (all-grob-descriptions): decrease distance + to key sig. + + * lily/dynamic-engraver.cc (acknowledge_stem_tremolo): new function. + + * lily/text-engraver.cc (acknowledge_stem_tremolo): new function. + + * lily/script-engraver.cc (acknowledge_stem_tremolo): new function. + + * scm/define-grobs.scm (all-grob-descriptions): remove + self-X-offset. Fixes alignment of octavate-8. + + * scripts/lilypond-book.py (datadir): look in + LILYPONDPREFIX/share/lilypond/current/ + + * GNUmakefile.in: symlink current to . + 2005-11-07 Pedro Kroger * lily/main.cc: eps listed as a backend. 2005-11-06 Han-Wen Nienhuys - * scm/lily-library.scm (print-music-as-book): quote $defaultparser. + * scm/lily-library.scm (print-music-as-book): quote $defaultpaper. 2005-11-04 Han-Wen Nienhuys diff --git a/GNUmakefile.in b/GNUmakefile.in index 80c7ad9544..cc81039dfd 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -108,6 +108,8 @@ $(tree-share-prefix)/lilypond-force link-tree: GNUmakefile mkdir -p $(tree-bin) mkdir -p $(tree-share-prefix) mkdir -p $(tree-lib-prefix) + (cd $(tree-lib)/lilypond/ && ln -sf $(TOPLEVEL_VERSION) current) + (cd $(tree-share)/lilypond/ && ln -sf $(TOPLEVEL_VERSION) current) mkdir -p $(tree-share-prefix)/dvips mkdir -p $(tree-share-prefix)/elisp mkdir -p $(tree-share-prefix)/fonts diff --git a/input/regression/script-stem-tremolo.ly b/input/regression/script-stem-tremolo.ly new file mode 100644 index 0000000000..f37025909c --- /dev/null +++ b/input/regression/script-stem-tremolo.ly @@ -0,0 +1,14 @@ +\header { + + texidoc = "Scripts avoid stem tremolos even if there is no visible stem." + +} +\version "2.7.16" + +\layout {raggedright =##t} +{ + \stemDown + g'1:32_"foo" + g'1:32_. + g'1:32_\f +} diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index c3370d014d..bfb0f16b58 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -61,6 +61,7 @@ class Dynamic_engraver : public Engraver TRANSLATOR_DECLARATIONS (Dynamic_engraver); DECLARE_ACKNOWLEDGER (script); + DECLARE_ACKNOWLEDGER (stem_tremolo); DECLARE_ACKNOWLEDGER (note_column); DECLARE_ACKNOWLEDGER (slur); @@ -370,6 +371,15 @@ Dynamic_engraver::typeset_all () } } + +void +Dynamic_engraver::acknowledge_stem_tremolo (Grob_info info) +{ + if (line_spanner_) + Side_position_interface::add_support (line_spanner_, info.grob ()); +} + + void Dynamic_engraver::acknowledge_slur (Grob_info info) { @@ -377,6 +387,7 @@ Dynamic_engraver::acknowledge_slur (Grob_info info) Side_position_interface::add_support (line_spanner_, info.grob ()); } + void Dynamic_engraver::acknowledge_note_column (Grob_info info) { @@ -437,6 +448,7 @@ Dynamic_engraver::acknowledge_script (Grob_info info) ADD_ACKNOWLEDGER (Dynamic_engraver, script); ADD_ACKNOWLEDGER (Dynamic_engraver, note_column); ADD_ACKNOWLEDGER (Dynamic_engraver, slur); +ADD_ACKNOWLEDGER (Dynamic_engraver, stem_tremolo); ADD_TRANSLATOR (Dynamic_engraver, /* doc */ diff --git a/lily/grob-closure.cc b/lily/grob-closure.cc index 519055bdb7..a3075e2cd1 100644 --- a/lily/grob-closure.cc +++ b/lily/grob-closure.cc @@ -33,22 +33,26 @@ void add_offset_callback (Grob *g, SCM proc, Axis a) { SCM data = g->get_property_data (axis_offset_symbol (a)); + if (!scm_is_number (data) + && !ly_is_procedure (data) + && !is_simple_closure (data)) + { + g->internal_set_property (axis_offset_symbol (a), + proc); + return ; + } + if (ly_is_procedure (data)) data = ly_make_simple_closure (scm_list_1 (data)); else if (is_simple_closure (data)) data = simple_closure_expression (data); - else if (!scm_is_number (data)) - g->internal_set_property (axis_offset_symbol (a), - proc); - else - { - SCM plus = ly_lily_module_constant ("+"); - SCM expr = scm_list_3 (plus, - ly_make_simple_closure (scm_list_1 (proc)), - data); - g->internal_set_property (axis_offset_symbol (a), - ly_make_simple_closure (expr)); - } + + SCM plus = ly_lily_module_constant ("+"); + SCM expr = scm_list_3 (plus, + ly_make_simple_closure (scm_list_1 (proc)), + data); + g->internal_set_property (axis_offset_symbol (a), + ly_make_simple_closure (expr)); } diff --git a/lily/mensural-ligature-engraver.cc b/lily/mensural-ligature-engraver.cc index 5818c73c7d..b95f96ccab 100644 --- a/lily/mensural-ligature-engraver.cc +++ b/lily/mensural-ligature-engraver.cc @@ -58,6 +58,8 @@ private: Mensural_ligature_engraver::Mensural_ligature_engraver () { + brew_ligature_primitive_proc = + Mensural_ligature::brew_ligature_primitive_proc; } Spanner * diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 7369a11474..6baa67bfc0 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -43,6 +43,7 @@ protected: DECLARE_ACKNOWLEDGER (slur); DECLARE_ACKNOWLEDGER (rhythmic_head); DECLARE_ACKNOWLEDGER (stem); + DECLARE_ACKNOWLEDGER (stem_tremolo); DECLARE_ACKNOWLEDGER (note_column); public: @@ -180,6 +181,18 @@ Script_engraver::acknowledge_stem (Grob_info info) } } +void +Script_engraver::acknowledge_stem_tremolo (Grob_info info) +{ + int script_count = scripts_.size (); + for (int i = 0; i < script_count; i++) + { + Grob *e = scripts_[i].script_; + Side_position_interface::add_support (e, info.grob ()); + } +} + + void Script_engraver::acknowledge_rhythmic_head (Grob_info info) { @@ -236,6 +249,7 @@ ADD_ACKNOWLEDGER (Script_engraver, slur); ADD_ACKNOWLEDGER (Script_engraver, rhythmic_head); ADD_ACKNOWLEDGER (Script_engraver, stem); ADD_ACKNOWLEDGER (Script_engraver, note_column); +ADD_ACKNOWLEDGER (Script_engraver, stem_tremolo); ADD_TRANSLATOR (Script_engraver, /* doc */ "Handles note scripted articulations.", diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 4b5904abf2..62a81ce2b2 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -27,6 +27,7 @@ protected: void stop_translation_timestep (); void process_acknowledged (); + DECLARE_ACKNOWLEDGER (stem_tremolo); DECLARE_ACKNOWLEDGER (stem); DECLARE_ACKNOWLEDGER (rhythmic_head); }; @@ -69,6 +70,13 @@ Text_engraver::acknowledge_stem (Grob_info inf) Side_position_interface::add_support (texts_[i], inf.grob ()); } +void +Text_engraver::acknowledge_stem_tremolo (Grob_info info) +{ + for (int i = 0; i < texts_.size (); i++) + Side_position_interface::add_support (texts_[i], info.grob ()); +} + void Text_engraver::process_acknowledged () { @@ -120,6 +128,7 @@ Text_engraver::Text_engraver () #include "translator.icc" ADD_ACKNOWLEDGER (Text_engraver, stem); +ADD_ACKNOWLEDGER (Text_engraver, stem_tremolo); ADD_ACKNOWLEDGER (Text_engraver, rhythmic_head); ADD_TRANSLATOR (Text_engraver, /* doc */ "Create text-scripts", diff --git a/lily/vaticana-ligature-engraver.cc b/lily/vaticana-ligature-engraver.cc index 8bb63c6ccd..90e6e59a97 100644 --- a/lily/vaticana-ligature-engraver.cc +++ b/lily/vaticana-ligature-engraver.cc @@ -47,6 +47,8 @@ protected: Vaticana_ligature_engraver::Vaticana_ligature_engraver () { + brew_ligature_primitive_proc = + Vaticana_ligature::brew_ligature_primitive_proc; } Spanner * diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 30d3931304..958e875f18 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -421,8 +421,8 @@ (break-visibility . ,begin-of-line-visible) (space-alist . ((ambitus . (extra-space . 2.0)) (staff-bar . (extra-space . 0.7)) - (key-cancellation . (minimum-space . 4.0)) - (key-signature . (minimum-space . 4.0)) + (key-cancellation . (minimum-space . 3.5)) + (key-signature . (minimum-space . 3.5)) (time-signature . (minimum-space . 4.2)) (first-note . (minimum-fixed-space . 5.0)) (next-note . (extra-space . 0.5)) @@ -792,7 +792,7 @@ (stencil . ,Key_signature_interface::print) (space-alist . ( - (time-signature . (extra-space . 1.25)) + (time-signature . (extra-space . 1.15)) (staff-bar . (extra-space . 1.1)) (right-edge . (extra-space . 0.5)) (first-note . (fixed-space . 2.5)))) @@ -1096,8 +1096,9 @@ . ( (self-alignment-X . 0) (break-visibility . ,begin-of-line-visible) - (self-X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self)) - ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent))))) + (X-offset . ,(ly:make-simple-closure + `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self)) + ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent))))) (Y-offset . ,Side_position_interface::y_aligned_side) diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 2eeb3fae06..3597686ef8 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -559,7 +559,7 @@ linewidth, where X is the number of staff spaces." (ly:make-stencil '() '(1 . -1) '(1 . -1))))) (def-markup-command (justify-field layout props symbol) (symbol?) - (let* ((m (chain-assoc-get symbol props))) +- (let* ((m (chain-assoc-get symbol props))) (if (string? m) (interpret-markup layout props (list justify-string-markup m)) diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 2dbf727b0b..460a814fed 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -50,7 +50,9 @@ if os.environ.has_key ('LILYPONDPREFIX'): datadir = os.environ['LILYPONDPREFIX'] while datadir[-1] == os.sep: datadir= datadir[:-1] - + + datadir = os.path.join (datadir, "share/lilypond/current/") + sys.path.insert (0, os.path.join (datadir, 'python')) # Customize these. -- 2.39.5