From d93f7d1101b3d24487398de766f1bf48ae4fc9af Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 20 Oct 2009 13:33:39 +0200 Subject: [PATCH] Prepare for adding alternative music font, set default font-family feta. This makes using alternative fetaMusic encoded music fonts, such as Gonville, fairly easy. See input/regression/gonville.ly. --- Documentation/changes.tely | 4 +++ input/regression/gonville.ly | 57 ++++++++++++++++++++++++++++++++++++ ly/paper-defaults-init.ly | 2 +- scm/font.scm | 33 +++++++++++++-------- 4 files changed, 83 insertions(+), 13 deletions(-) create mode 100644 input/regression/gonville.ly diff --git a/Documentation/changes.tely b/Documentation/changes.tely index 4675f0caaf..848f832455 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -198,6 +198,10 @@ and to add notes to the number or fraction: FretBoards now have a chordChanges property to keep repeated FretBoard objects from being typeset. +@item +Support for using an alternative music font, such as Gonville, is now +added. + @end itemize diff --git a/input/regression/gonville.ly b/input/regression/gonville.ly new file mode 100644 index 0000000000..9a3e36ebc1 --- /dev/null +++ b/input/regression/gonville.ly @@ -0,0 +1,57 @@ +\header { + + texidoc = "The default music font can be overridden by setting + @code{(font-family . gonville)} in the @code{font-defaults} in the + paper block." + +} + +\version "2.13.6" + +\paper { + % Load the alternative font definitions into the font tree. + #(add-music-fonts fonts "gonville" 'gonville (/ staff-height (* 20 pt))) +} + +%{ + Note: for this to work, do something like + + wget -P out http://www.chiark.greenend.org.uk/~sgtatham/gonville/gonville-r8724.tar.gz + tar xzf out/gonville-r8724.tar.gz + ln out/gonville-r8724/lilyfonts/otf/gonville* out/share/lilypond/current/fonts/otf/ + (cd out/share/lilypond/current/fonts/otf && for i in gonville*; do mv $i $(echo $i | sed s/gonville/gonville-/); done) + + + To show all available fonts, do + + lilypond -dshow-available-fonts blabla + +%} + +\relative c'' { + \set Staff.instrumentName = #"Default" + a4-\trill b8 c16 d32 +} + +\score { + \relative c'' { + \set Staff.instrumentName = #"Feta" + a4-\trill b8 + c16 d32 + } + \layout { + #(define font-defaults + '((font-family . feta) (font-encoding . fetaMusic))) + } +} + +\score { + \relative c'' { + \set Staff.instrumentName = #"Gonville" + a4-\trill b8 c16 d32 + } + \layout { + #(define font-defaults + '((font-family . gonville) (font-encoding . fetaMusic))) + } +} diff --git a/ly/paper-defaults-init.ly b/ly/paper-defaults-init.ly index 0e71cdac04..df7a63b768 100644 --- a/ly/paper-defaults-init.ly +++ b/ly/paper-defaults-init.ly @@ -68,7 +68,7 @@ page-limit-inter-system-space-factor = 1.4 #(define font-defaults - '((font-encoding . fetaMusic))) + '((font-family . feta) (font-encoding . fetaMusic))) %% %% the font encoding `latin1' is a dummy value for Pango fonts diff --git a/scm/font.scm b/scm/font.scm index 3d30e45695..559bb41ddb 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -140,26 +140,33 @@ ;; Each size family is a vector of fonts, loaded with a delay. The ;; vector should be sorted according to ascending design size. -(define-public (add-music-fonts node factor) +(define-public (add-music-fonts node name family factor) (for-each (lambda (x) (add-font node - (list (cons 'font-encoding (car x))) + (list (cons 'font-encoding (car x)) + (cons 'font-family family)) (cons (* factor (cadr x)) (caddr x)))) `((fetaDynamic ,(ly:pt 20.0) ,feta-alphabet-size-vector) (fetaNumber ,(ly:pt 20.0) ,feta-alphabet-size-vector) (fetaMusic ,(ly:pt 20.0) - #(,(delay (ly:system-font-load "emmentaler-11")) - ,(delay (ly:system-font-load "emmentaler-13")) - ,(delay (ly:system-font-load "emmentaler-14")) - ,(delay (ly:system-font-load "emmentaler-16")) - ,(delay (ly:system-font-load "emmentaler-18")) - ,(delay (ly:system-font-load "emmentaler-20")) - ,(delay (ly:system-font-load "emmentaler-23")) - ,(delay (ly:system-font-load "emmentaler-26")))) + #( + ,(delay (ly:system-font-load (string-append name "-11"))) + ,(delay (ly:system-font-load (string-append name "-13"))) + ,(delay (ly:system-font-load (string-append name "-14"))) + ,(delay (ly:system-font-load (string-append name "-16"))) + ,(delay (ly:system-font-load (string-append name "-18"))) + ,(delay (ly:system-font-load (string-append name "-20"))) + ,(delay (ly:system-font-load (string-append name "-23"))) + ,(delay (ly:system-font-load (string-append name "-26"))) + )) (fetaBraces ,(ly:pt 20.0) - #(,(delay (ly:system-font-load "aybabtu"))))))) + #(,(delay (ly:system-font-load + ;;; TODO: rename aybabtu to emmentaler-brace + (string-replace "emmentaler-brace" "aybabtu" + (string-append name "-brace")) + ))))))) (define-public (add-pango-fonts node lily-family family factor) (define (add-node shape series) @@ -186,7 +193,9 @@ (define-public (make-pango-font-tree roman-str sans-str typewrite-str factor) (let ((n (make-font-tree-node 'font-encoding 'fetaMusic))) - (add-music-fonts n factor) + (add-music-fonts n "emmentaler" 'feta factor) +;; Let's not do this [yet], see input/regression/gonville.ly +;; (add-music-fonts n "gonville" 'gonville factor) (add-pango-fonts n 'roman roman-str factor) (add-pango-fonts n 'sans sans-str factor) (add-pango-fonts n 'typewriter typewrite-str factor) -- 2.39.2