From 17d66c0ec6d2f99624e902dbbe71497a4424c445 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Wed, 29 Nov 2000 17:09:39 +0100 Subject: [PATCH] patch::: 1.3.112.jcn3 1.3.112.jcn3 ============ * Added stems to font for use in markup text. * Fixed markup text kerning, see input/test/metronome.ly. (Ugh, only feasible if kerning is first markup -- markup text should be revised.) --- CHANGES | 8 ++++++++ VERSION | 2 +- input/test/markup.ly | 6 +++++- input/test/metronome.ly | 21 +++++++++++++++++++++ lily/text-item.cc | 28 ++++++++++++++++++---------- mf/feta-banier.mf | 15 +++++++++++++++ scm/chord-name.scm | 4 ++-- scm/font.scm | 2 +- 8 files changed, 71 insertions(+), 15 deletions(-) create mode 100644 input/test/metronome.ly diff --git a/CHANGES b/CHANGES index f1dbe42f42..27b8019a26 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,11 @@ +1.3.112.jcn3 +============ + +* Added stems to font for use in markup text. + +* Fixed markup text kerning, see input/test/metronome.ly. + (Ugh, only feasible if kerning is first markup -- markup text should be revised.) + 1.3.112.jcn2 ============ diff --git a/VERSION b/VERSION index 97c76d3de2..c9d4f024df 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=112 -MY_PATCH_LEVEL=jcn2 +MY_PATCH_LEVEL=jcn3 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/test/markup.ly b/input/test/markup.ly index d6d882f88d..4b35fea469 100644 --- a/input/test/markup.ly +++ b/input/test/markup.ly @@ -18,7 +18,11 @@ (italic "three")) f-\textscript #'(finger "3") g-\textscript #'(music (named "noteheads-2" "flags-u3")) - } + + b-#'(rows "a" ((kern . 3) ((raise . 2) "b")) "c") + c-#'(rows "1" ((kern . -3) ((raise . -2) "2")) "3") + + } \paper{ linewidth = -1.\mm; \translator{ diff --git a/input/test/metronome.ly b/input/test/metronome.ly new file mode 100644 index 0000000000..197f5adc33 --- /dev/null +++ b/input/test/metronome.ly @@ -0,0 +1,21 @@ + +\version "1.3.110"; + +% +% Test new font selection and scm text markup +% + +\score{ + \notes\relative c''{ + % put me in an engraver + a1-#'(rows (music "noteheads-2" ((kern . -0.1) "flags-stem") ((kern . -0.1) ((raise . 3.5) "flags-u3"))) " = 64") + } + \paper{ + linewidth = -1.\mm; + \translator{ + \ScoreContext + TextScript \override #'font-shape = #'upright + TextScript \override #'direction = #1 + } + } +} diff --git a/lily/text-item.cc b/lily/text-item.cc index 34c710db9d..ef256e5b7a 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -28,7 +28,7 @@ */ /* - TODO: + FIXME: rewrite routines and syntax to be like @@ -128,13 +128,6 @@ Molecule Text_item::markup_sentence2molecule (Grob *me, SCM markup_sentence, SCM alist_chain) { - /* - FIXME - - huh? - */ - // return Molecule (); - SCM sheet = me->paper_l ()->style_sheet_; SCM f = gh_cdr (scm_assoc (ly_symbol2scm ("markup-to-properties"), sheet)); @@ -159,17 +152,32 @@ Text_item::markup_sentence2molecule (Grob *me, SCM markup_sentence, if (gh_pair_p (r) && gh_number_p (gh_cdr (r))) raise = gh_scm2double (gh_cdr (r)) * staff_space; +#if 0 Offset o (align == X_AXIS ? kern : 0, (align == Y_AXIS ? - kern : 0) + raise); - +#else + Offset o (0, (align == Y_AXIS ? - kern : 0) + raise); +#endif + Molecule mol; while (gh_pair_p (sentence)) { + /* Ugh: this (kerning) only works if 'kern' is the first modifier of a + markup. I guess the only solution is to rewrite markup definition, + see above. */ Molecule m = text2molecule (me, gh_car (sentence), p); + Real m_kern = 0; + SCM m_p = SCM_EOL; + if (gh_pair_p (gh_car (sentence))) + m_p = gh_cons (gh_call2 (f, sheet, gh_caar (sentence)), alist_chain); + SCM m_k = ly_assoc_chain (ly_symbol2scm ("kern"), m_p); + if (gh_pair_p (m_k) && gh_number_p (gh_cdr (m_k))) + m_kern = gh_scm2double (gh_cdr (m_k)) * staff_space; + if (!m.empty_b ()) { m.translate (o); - mol.add_at_edge (align, align == X_AXIS ? RIGHT : DOWN, m, 0); + mol.add_at_edge (align, align == X_AXIS ? RIGHT : DOWN, m, m_kern); } sentence = gh_cdr (sentence); } diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 246f599bfe..c384f98fc6 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -432,4 +432,19 @@ fet_beginchar("grace dash (down)", "dgrace", "dgracedash") y_mirror_char; fet_endchar; +% ustem? +fet_beginchar("stem (up)", "stem", "stem") + set_char_box(stemthickness#/2, 0, 3.5staff_space#, stemthickness#/2); + pickup pencircle scaled stemthickness; + draw (0, 0) .. (0, 3.5staff_space); +fet_endchar; + +% do we want this? +fet_beginchar("stem (down)", "dstem", "dstem") + set_char_box(stemthickness#/2, -3.5staff_space#, 0, stemthickness#/2); + pickup pencircle scaled stemthickness; + draw (0, 0) .. (-3.5staff_space, 0); +fet_endchar; + + fet_endgroup("flags"); diff --git a/scm/chord-name.scm b/scm/chord-name.scm index d3ad48943c..49604d17bb 100644 --- a/scm/chord-name.scm +++ b/scm/chord-name.scm @@ -96,8 +96,8 @@ (((0 . 0) (2 . -1) (4 . 0) (6 . 0)) . ("m(maj7)")) ;jazz: the delta, see jazz-chords.ly ;;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super ((font-family . math) "N")) - ;; slashed o - (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows ((raise . 1) "o") ((raise . 0.5) ((kern . -0.5) ((font-relative-size . -3) "/"))) "7")) ; slashed o + ;; ugh, kludge slashed o + (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows ((raise . 1) "o") ((kern . -0.85) ((raise . 0.57) ((font-relative-size . -3) "/"))) "7")) ; slashed o (((0 . 0) (2 . 0) (4 . 1) (6 . -1)) . ("aug7")) (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (rows "maj7" ((font-relative-size . -2) ((raise . 0.2) (music (named "accidentals--1")))) "5")) (((0 . 0) (2 . 0) (4 . -1) (6 . -1)) . (rows "7" ((font-relative-size . -2) ((raise . 0.2) (music (named "accidentals--1")))) "5")) diff --git a/scm/font.scm b/scm/font.scm index fec9446ef5..2682e60011 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -201,7 +201,7 @@ . ((rows . ((align . 0))) (lines . ((align . 1))) (roman . ((font-family . roman))) - (music . ((font-family . music) (font-shape . upright))) + (music . ((font-family . music) (font-shape . upright) (lookup . name))) (finger . ((font-style . finger))) (bold . ((font-series . bold))) (italic . ((font-shape . italic))) -- 2.39.2