--- /dev/null
+Description: Add set-global-fonts function to scm/font.scm
+ Allow changing of notation fonts
+ .
+ This commit changes the behaviour of make-pango-font-tree in the
+ following ways:
+ .
+ - Make all arguments optional key/value pairs
+ keeping the current default values (emmentaler/Century Schoolbook)
+ - Allow changing of music fonts too.
+ .
+ Currently alternative music fonts have to be present in the font
+ directory besides Emmentaler fonts, and they have to be manually installed.
+ But now there are a number of alternative and compatible fonts available.
+ .
+ See also:
+ - https://sites.google.com/site/tisimst/lilypond-fonts/docs
+ - http://lilypondblog.org/2015/03/managing-alternative-fonts-with-lilypond/
+Author: Abraham Lee <tisimst.lilypond@gmail.com>
+Date: Sat Aug 2 18:17:01 2014 +0200
+Origin: upstream
+Applied-Upstream: 2.19.12, http://git.savannah.gnu.org/cgit/lilypond.git/commit/?id=a7b6efba453f6bec916d3908cd83bcb825b2a1a8
+Reviewed-by: Urs Liska <ul@openlilylib.org>
+Reviewed-by: Anthony Fok <foka@debian.org>
+Last-Update: 2017-01-25
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/scm/font.scm
++++ b/scm/font.scm
+@@ -1,6 +1,6 @@
+ ;;;; This file is part of LilyPond, the GNU music typesetter.
+ ;;;;
+-;;;; Copyright (C) 2004--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
++;;;; Copyright (C) 2004--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ ;;;;
+ ;;;; LilyPond is free software: you can redistribute it and/or modify
+ ;;;; it under the terms of the GNU General Public License as published by
+@@ -147,7 +147,7 @@
+
+ ;; 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 name family design-size-alist factor)
++(define-public (add-music-fonts node family name brace design-size-alist factor)
+ "Set up music fonts.
+
+ Arguments:
+@@ -156,12 +156,15 @@
+ @var{node} is the font tree to modify.
+
+ @item
++@var{family} is the family name of the music font.
++
++@item
+ @var{name} is the basename for the music font.
+ @file{@var{name}-<designsize>.otf} should be the music font,
+-@file{@var{name}-brace.otf} should have piano braces.
+
+ @item
+-@var{family} is the family name of the music font.
++@var{brace} is the basename for the brace font.
++@file{@var{brace}-brace.otf} should have piano braces.
+
+ @item
+ @var{design-size-alist} is a list of @code{(rounded . designsize)}.
+@@ -199,7 +202,7 @@
+ )))
+ (fetaBraces ,(ly:pt 20.0)
+ #(,(delay (ly:system-font-load
+- (format #f "~a-brace" name)))))
++ (format #f "~a-brace" brace)))))
+ )))
+
+ (define-public (add-pango-fonts node lily-family family factor)
+@@ -229,9 +232,40 @@
+ (add-node 'italic 'normal)
+ (add-node 'italic 'bold))
+
++; 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.
++(define*-public (set-global-fonts #:key
++ (music "emmentaler")
++ (brace "emmentaler")
++ (roman "Century Schoolbook L")
++ (sans "sans-serif")
++ (typewriter "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))
++
+ (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 "emmentaler" 'feta feta-design-size-mapping factor)
++ (add-music-fonts n 'feta "emmentaler" "emmentaler" feta-design-size-mapping 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)
+@@ -240,7 +274,9 @@
+ (define-public (make-century-schoolbook-tree factor)
+ (make-pango-font-tree
+ "Century Schoolbook L"
+- "sans-serif" "monospace" factor))
++ "sans-serif"
++ "monospace"
++ factor))
+
+ (define-public all-text-font-encodings
+ '(latin1))