]> git.donarmstrong.com Git - lilypond.git/commitdiff
Prepare for adding alternative music font, set default font-family feta.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 20 Oct 2009 11:33:39 +0000 (13:33 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Tue, 20 Oct 2009 11:33:39 +0000 (13:33 +0200)
This makes using alternative fetaMusic encoded music fonts, such
as Gonville, fairly easy.  See input/regression/gonville.ly.

Documentation/changes.tely
input/regression/gonville.ly [new file with mode: 0644]
ly/paper-defaults-init.ly
scm/font.scm

index 4675f0caaf188ab50ab4ff9ee120376163758f32..848f832455ef60e20200500ef982535e13684bec 100644 (file)
@@ -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 (file)
index 0000000..9a3e36e
--- /dev/null
@@ -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)))
+  }
+}
index 0e71cdac045f41fa42242030a284c299f0d628ce..df7a63b768a1cad7834f15f4dbf1a85ae418178f 100644 (file)
@@ -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
index 3d30e4569595cd5a2e76cd119fa51d38e81f620b..559bb41ddbee8d73eed49b45247220c52dc24726 100644 (file)
 
 ;; 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)
 
 (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)