+2005-11-08 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * 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 <VERSION>.
+
2005-11-07 Pedro Kroger <kroeger@pedrokroeger.net>
* lily/main.cc: eps listed as a backend.
2005-11-06 Han-Wen Nienhuys <hanwen@xs4all.nl>
- * 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 <hanwen@xs4all.nl>
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
--- /dev/null
+\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
+}
TRANSLATOR_DECLARATIONS (Dynamic_engraver);
DECLARE_ACKNOWLEDGER (script);
+ DECLARE_ACKNOWLEDGER (stem_tremolo);
DECLARE_ACKNOWLEDGER (note_column);
DECLARE_ACKNOWLEDGER (slur);
}
}
+
+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)
{
Side_position_interface::add_support (line_spanner_, info.grob ());
}
+
void
Dynamic_engraver::acknowledge_note_column (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 */
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));
}
Mensural_ligature_engraver::Mensural_ligature_engraver ()
{
+ brew_ligature_primitive_proc =
+ Mensural_ligature::brew_ligature_primitive_proc;
}
Spanner *
DECLARE_ACKNOWLEDGER (slur);
DECLARE_ACKNOWLEDGER (rhythmic_head);
DECLARE_ACKNOWLEDGER (stem);
+ DECLARE_ACKNOWLEDGER (stem_tremolo);
DECLARE_ACKNOWLEDGER (note_column);
public:
}
}
+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)
{
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.",
void stop_translation_timestep ();
void process_acknowledged ();
+ DECLARE_ACKNOWLEDGER (stem_tremolo);
DECLARE_ACKNOWLEDGER (stem);
DECLARE_ACKNOWLEDGER (rhythmic_head);
};
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 ()
{
#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",
Vaticana_ligature_engraver::Vaticana_ligature_engraver ()
{
+ brew_ligature_primitive_proc =
+ Vaticana_ligature::brew_ligature_primitive_proc;
}
Spanner *
(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))
(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))))
. (
(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)
(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))
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.