]> git.donarmstrong.com Git - lilypond.git/commitdiff
Cherry-pick set-global-fonts function from upstream to scm/font.scm
authorAnthony Fok <foka@debian.org>
Fri, 27 Jan 2017 01:08:04 +0000 (18:08 -0700)
committerAnthony Fok <foka@debian.org>
Fri, 27 Jan 2017 12:00:33 +0000 (05:00 -0700)
debian/patches/add_set-global-fonts_function [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/add_set-global-fonts_function b/debian/patches/add_set-global-fonts_function
new file mode 100644 (file)
index 0000000..bf333af
--- /dev/null
@@ -0,0 +1,125 @@
+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))
index 64f8ef4e0cc25f649a30ef680f704b64fb8dd5c6..f9a110576d81eef2a03bbb9ca3d64ff49fb0d90a 100644 (file)
@@ -1,4 +1,5 @@
 add_dircategories_to_documentation
+add_set-global-fonts_function
 hurd_file_name_support
 more_debug_output_during_build
 use_cstring_and_ctype_includes