From: Anthony Fok Date: Fri, 27 Jan 2017 01:08:04 +0000 (-0700) Subject: Cherry-pick set-global-fonts function from upstream to scm/font.scm X-Git-Tag: debian/2.18.2-9~23 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=7381ecef63e031cd8b6cf598c8e1f19188658f0f;p=lilypond.git Cherry-pick set-global-fonts function from upstream to scm/font.scm --- diff --git a/debian/patches/add_set-global-fonts_function b/debian/patches/add_set-global-fonts_function new file mode 100644 index 0000000000..bf333af984 --- /dev/null +++ b/debian/patches/add_set-global-fonts_function @@ -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 +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 +Reviewed-by: Anthony Fok +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 ++;;;; Copyright (C) 2004--2014 Han-Wen Nienhuys + ;;;; + ;;;; 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}-.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)) diff --git a/debian/patches/series b/debian/patches/series index 64f8ef4e0c..f9a110576d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -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