+; This function allows the user to change the specific fonts, leaving others
+; to the default values. This way, "make-pango-font-tree"'s syntax doesn't
+; have to change from the user's perspective.
+;
+; Usage:
+; \paper {
+; #(define fonts
+; (set-global-fonts
+; #:music "gonville" ; (the main notation font)
+; #:roman "FreeSerif" ; (the main/serif text font)
+; ))
+; }
+;
+; Leaving out "#:brace", "#:sans", and "#:typewriter" leave them at
+; "emmentaler", "sans-serif", and "monospace", respectively. All fonts are
+; still accesible through the usual scheme symbols: 'feta, 'roman, 'sans, and
+; 'typewriter.
+;
+; Note that 'LilyPond Serif', 'LilyPond Sans Serif' and 'Lilypond Monospace'
+; are aliases that are defined in mf/00-lilypond-fonts.conf.in (source file)
+; or fonts/00-lilypond-fonts.conf (installed file).
+
+(define*-public (set-global-fonts #:key
+ (music "emmentaler")
+ (brace "emmentaler")
+ (roman (if (eq? (ly:get-option 'backend) 'svg)
+ "serif" "LilyPond Serif"))
+ (sans (if (eq? (ly:get-option 'backend) 'svg)
+ "sans-serif" "LilyPond Sans Serif"))
+ (typewriter (if (eq? (ly:get-option 'backend) 'svg)
+ "monospace" "LilyPond Monospace"))
+ (factor 1))
+ (let ((n (make-font-tree-node 'font-encoding 'fetaMusic)))
+ (add-music-fonts n 'feta music brace feta-design-size-mapping factor)
+ (add-pango-fonts n 'roman roman factor)
+ (add-pango-fonts n 'sans sans factor)
+ (add-pango-fonts n 'typewriter typewriter factor)
+ n))
+