From 6ebe716b1be059886448e4cad495b1d3ef90c037 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 8 Apr 2004 23:27:50 +0000 Subject: [PATCH] * lily/font-metric.cc (LY_DEFINE): change to ly:font-filename * scm/encoding.scm (coding-alist): add AdobeStandardEncoding --- ChangeLog | 6 + THANKS | 4 +- input/test/title-markup.ly | 3 +- lily/font-metric.cc | 2 +- scm/encoding.scm | 2 +- scm/font.scm | 296 ++++++++++++++++++++++--------------- scm/output-ps.scm | 4 +- scm/output-tex.scm | 4 +- scm/paper.scm | 2 +- 9 files changed, 192 insertions(+), 131 deletions(-) diff --git a/ChangeLog b/ChangeLog index d96c5a059c..98006e10de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-04-09 Han-Wen Nienhuys + + * lily/font-metric.cc (LY_DEFINE): change to ly:font-filename + + * scm/encoding.scm (coding-alist): add AdobeStandardEncoding + 2004-04-08 Han-Wen Nienhuys * scm/part-combiner.scm (determine-split-list): bugfix: if no diff --git a/THANKS b/THANKS index ee60553ef3..542079c2bc 100644 --- a/THANKS +++ b/THANKS @@ -2,7 +2,6 @@ Release 2.3 *********** - HEAD HACKERS Han-Wen Nienhuys @@ -17,8 +16,9 @@ Pedro Kroger BUG HUNTERS/SUGGESTIONS David Bobroff -Stephen Pollei +David Brandon Peter Rosenbeck +Stephen Pollei Release 2.2 *********** diff --git a/input/test/title-markup.ly b/input/test/title-markup.ly index ee71951cbb..e2727161fb 100644 --- a/input/test/title-markup.ly +++ b/input/test/title-markup.ly @@ -9,6 +9,7 @@ \paper{ #(define page-breaking ly:optimal-page-breaks) + fonts = #(make-utopia-tree 1.0) inputencoding = #"latin1" } @@ -71,7 +72,6 @@ spaceTest = \markup { "two space chars" } } \paper { %% #(paper-set-staff-size (* 11.0 pt)) - inputcoding = #"latin1" } } @@ -91,6 +91,5 @@ spaceTest = \markup { "two space chars" } c1 } \paper { - inputcoding = #"latin1" } } diff --git a/lily/font-metric.cc b/lily/font-metric.cc index 1f63dbf951..97c42102fb 100644 --- a/lily/font-metric.cc +++ b/lily/font-metric.cc @@ -178,7 +178,7 @@ LY_DEFINE (ly_text_dimension,"ly:text-dimension", return scm_cons (ly_interval2scm (b[X_AXIS]), ly_interval2scm (b[Y_AXIS])); } -LY_DEFINE (ly_font_name,"ly:font-name", +LY_DEFINE (ly_font_name,"ly:font-filename", 1, 0, 0, (SCM font), "Given the font metric @var{font}, " diff --git a/scm/encoding.scm b/scm/encoding.scm index 4cff90aad6..b7efede0ee 100644 --- a/scm/encoding.scm +++ b/scm/encoding.scm @@ -83,7 +83,7 @@ vector of symbols." ("TeX-text" . "cmr.enc") ("TeX-text-without-f-ligatures" . "0ef0afca.enc") ("Extended-TeX-Font-Encoding---Latin" . "tex256.enc") - + ("AdobeStandardEncoding" . "8a.enc") ("T1" . "tex256.enc") ;; FIXME: find full Adobe; for testing -- almost Adobe: diff --git a/scm/font.scm b/scm/font.scm index e13bbd74a5..6afd21f0cd 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -137,130 +137,186 @@ ; The vector should be sorted according to ascending design size. ; -(define-public (make-font-tree factor) - (let* - ((n (make-font-tree-node 'font-encoding 'music)) - ) - - (for-each - (lambda (x) - (add-font n - (list (cons 'font-encoding (car x))) - (cons (* factor (cadr x)) - (caddr x)))) - `((number 10 - #(,(delay (ly:font-load "feta-nummer4")) - ,(delay (ly:font-load "feta-nummer6")) - ,(delay (ly:font-load "feta-nummer8")) - ,(delay (ly:font-load "feta-nummer10")) - ,(delay (ly:font-load "feta-nummer12")) - ,(delay (ly:font-load "feta-nummer16")))) - (dynamic 14.0 #(,(delay (ly:font-load "feta-din6")) - ,(delay (ly:font-load "feta-din8")) - ,(delay (ly:font-load "feta-din10")) - ,(delay (ly:font-load "feta-din12")) - ,(delay (ly:font-load "feta-din14")) - ,(delay (ly:font-load "feta-din17")) - )) - (math 10 #(,(delay (ly:font-load "msam10")))) - (music 20.0 - #(,(delay (ly:make-virtual-font - (ly:font-load "feta11") - (ly:font-load "parmesan11"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta13") - (ly:font-load "parmesan13"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta14") - (ly:font-load "parmesan14"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta16") - (ly:font-load "parmesan16"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta18") - (ly:font-load "parmesan18"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta20") - (ly:font-load "parmesan20"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta23") - (ly:font-load "parmesan23"))) - ,(delay (ly:make-virtual-font - (ly:font-load "feta26") - (ly:font-load "parmesan26"))) - )) - - (braces 15 #(,(delay - (ly:make-virtual-font - (ly:font-load "feta-braces-a") - (ly:font-load "feta-braces-b") - (ly:font-load "feta-braces-c") - (ly:font-load "feta-braces-d") - (ly:font-load "feta-braces-e") - (ly:font-load "feta-braces-f") - (ly:font-load "feta-braces-g") - (ly:font-load "feta-braces-h") - (ly:font-load "feta-braces-i")) - ))))) - - (for-each - (lambda (x) - (add-font - n - `((font-encoding . text) - (font-series . ,(vector-ref (car x) 2)) - (font-shape . ,(vector-ref (car x) 1)) - (font-family . ,(vector-ref (car x) 0))) - (cons (* factor (cadr x)) - (cddr x)) - )) - `((#(roman upright medium) . - (10.0 . #(,(delay (ly:font-load "cmr6")) - ,(delay (ly:font-load "cmr8")) - ,(delay (ly:font-load "cmr10")) - ,(delay (ly:font-load "cmr17")) - ))) - - (#(roman upright bold) . - (10.0 . #(,(delay (ly:font-load "cmbx6")) - ,(delay (ly:font-load "cmbx8")) - ,(delay (ly:font-load "cmbx10")) - ,(delay (ly:font-load "cmbx12")) - ))) - - (#(roman italic medium) . - (10.0 . #(,(delay (ly:font-load "cmti7")) - ,(delay (ly:font-load "cmti10")) - ,(delay (ly:font-load "cmti12")) - ))) - (#(roman italic bold) . - (10.0 . #(,(delay (ly:font-load "cmbxti8")) - ,(delay (ly:font-load "cmbxti10")) - ,(delay (ly:font-load "cmbxti14")) - ))) +(define-public (add-music-fonts node factor) + (for-each + (lambda (x) + (add-font node + (list (cons 'font-encoding (car x))) + (cons (* factor (cadr x)) + (caddr x)))) + `((number 10 + #(,(delay (ly:font-load "feta-nummer4")) + ,(delay (ly:font-load "feta-nummer6")) + ,(delay (ly:font-load "feta-nummer8")) + ,(delay (ly:font-load "feta-nummer10")) + ,(delay (ly:font-load "feta-nummer12")) + ,(delay (ly:font-load "feta-nummer16")))) + (dynamic 14.0 #(,(delay (ly:font-load "feta-din6")) + ,(delay (ly:font-load "feta-din8")) + ,(delay (ly:font-load "feta-din10")) + ,(delay (ly:font-load "feta-din12")) + ,(delay (ly:font-load "feta-din14")) + ,(delay (ly:font-load "feta-din17")) + )) + (music 20.0 + #(,(delay (ly:make-virtual-font + (ly:font-load "feta11") + (ly:font-load "parmesan11"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta13") + (ly:font-load "parmesan13"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta14") + (ly:font-load "parmesan14"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta16") + (ly:font-load "parmesan16"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta18") + (ly:font-load "parmesan18"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta20") + (ly:font-load "parmesan20"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta23") + (ly:font-load "parmesan23"))) + ,(delay (ly:make-virtual-font + (ly:font-load "feta26") + (ly:font-load "parmesan26"))) + )) + + (braces 15 #(,(delay + (ly:make-virtual-font + (ly:font-load "feta-braces-a") + (ly:font-load "feta-braces-b") + (ly:font-load "feta-braces-c") + (ly:font-load "feta-braces-d") + (ly:font-load "feta-braces-e") + (ly:font-load "feta-braces-f") + (ly:font-load "feta-braces-g") + (ly:font-load "feta-braces-h") + (ly:font-load "feta-braces-i")) + )))))) - (#(roman caps medium) . - (10.0 . #(,(delay (ly:font-load "cmcsc10"))))) - (#(roman upright bold-narrow ) . - (10.0 . #(,(delay (ly:font-load "cmb10")) - ))) - - (#(sans upright medium) . - (10.0 . #(,(delay (ly:font-load "cmss8")) - ,(delay (ly:font-load "cmss10")) - ,(delay (ly:font-load "cmss12")) - ,(delay (ly:font-load "cmss17")) - ))) - (#(typewriter upright medium) . - (10.0 . #(,(delay (ly:font-load "cmtt8")) - ,(delay (ly:font-load "cmtt10")) - ,(delay (ly:font-load "cmtt12")) - ))) - )) - n)) +(define-public (add-cmr-fonts node factor) + (add-font + node + '((font-encoding . math)) + `((* factor 10) . #(,(delay (ly:font-load "msam10"))))) + + (for-each + (lambda (x) + (add-font + node + `((font-encoding . text) + (font-series . ,(vector-ref (car x) 2)) + (font-shape . ,(vector-ref (car x) 1)) + (font-family . ,(vector-ref (car x) 0))) + (cons (* factor (cadr x)) + (cddr x)) + )) + `((#(roman upright medium) . + (10.0 . #(,(delay (ly:font-load "cmr6")) + ,(delay (ly:font-load "cmr8")) + ,(delay (ly:font-load "cmr10")) + ,(delay (ly:font-load "cmr17")) + ))) + + (#(roman upright bold) . + (10.0 . #(,(delay (ly:font-load "cmbx6")) + ,(delay (ly:font-load "cmbx8")) + ,(delay (ly:font-load "cmbx10")) + ,(delay (ly:font-load "cmbx12")) + ))) + + (#(roman italic medium) . + (10.0 . #(,(delay (ly:font-load "cmti7")) + ,(delay (ly:font-load "cmti10")) + ,(delay (ly:font-load "cmti12")) + ))) + (#(roman italic bold) . + (10.0 . #(,(delay (ly:font-load "cmbxti8")) + ,(delay (ly:font-load "cmbxti10")) + ,(delay (ly:font-load "cmbxti14")) + ))) + + (#(roman caps medium) . + (10.0 . #(,(delay (ly:font-load "cmcsc10"))))) + + (#(roman upright bold-narrow ) . + (10.0 . #(,(delay (ly:font-load "cmb10")) + ))) + + (#(sans upright medium) . + (10.0 . #(,(delay (ly:font-load "cmss8")) + ,(delay (ly:font-load "cmss10")) + ,(delay (ly:font-load "cmss12")) + ,(delay (ly:font-load "cmss17")) + ))) + (#(typewriter upright medium) . + (10.0 . #(,(delay (ly:font-load "cmtt8")) + ,(delay (ly:font-load "cmtt10")) + ,(delay (ly:font-load "cmtt12")) + ))) + ))) ; (display (make-font-tree 1.0)) +(define-public (add-utopia-fonts node factor) + + (add-font node + '((font-family . roman) + (font-shape . upright) + (font-series . medium) + (font-encoding . text)) + `(10.0 . #(,(delay (ly:font-load "putr8a"))))) + + (add-font node + '((font-family . roman) + (font-shape . italic) + (font-series . medium) + (font-encoding . text)) + `(10.0 . #(,(delay (ly:font-load "putri8a"))))) + + (add-font node + '((font-family . roman) + (font-shape . upright) + (font-series . bold) + (font-encoding . text)) + `(10.0 . #(,(delay (ly:font-load "putb8a"))))) + + (add-font node + '((font-family . roman) + (font-shape . italic) + (font-series . bold) + (font-encoding . text)) + `(10.0 . #(,(delay (ly:font-load "putbi8a"))))) + ) + + +(define-public (make-cmr-tree factor) + + (let + ((n (make-font-tree-node 'font-encoding 'music))) + + (add-music-fonts n factor) + (add-cmr-fonts n factor) + n + )) + + +(define-public (make-utopia-tree factor) + + (let + ((n (make-font-tree-node 'font-encoding 'music))) + + (add-music-fonts n factor) + (add-utopia-fonts n factor) + n + )) + + + (define-public (magstep x) (exp (* (/ x 6) (log 2)))) diff --git a/scm/output-ps.scm b/scm/output-ps.scm index 3913fe38f3..c475c59173 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -164,7 +164,7 @@ " ] 0 draw_dashed_slur")) (define (font-command font . override-coding-command) - (let* ((name (ly:font-name font)) + (let* ((name (ly:font-filename font)) (magnify (ly:font-magnification font)) (coding-alist (ly:font-encoding-alist font)) (input-encoding (assoc-get 'input-name coding-alist)) @@ -207,7 +207,7 @@ (else basename))) (define (font-load-command paper font) - (let* ((basename (ly:font-name font)) + (let* ((basename (ly:font-filename font)) (fontname (guess-ps-fontname basename)) (coding-alist (ly:font-encoding-alist font)) (input-encoding (assoc-get 'input-name coding-alist)) diff --git a/scm/output-tex.scm b/scm/output-tex.scm index 6ffd94ea92..42fab6aeae 100644 --- a/scm/output-tex.scm +++ b/scm/output-tex.scm @@ -66,7 +66,7 @@ (string-append "magfont" (string-encode-integer - (hashq (ly:font-name font) 1000000)) + (hashq (ly:font-filename font) 1000000)) "m" (string-encode-integer (inexact->exact (round (* 1000 (ly:font-magnification font))))))) @@ -169,7 +169,7 @@ (define (font-load-command paper font) (string-append "\\font\\" (font-command font) "=" - (ly:font-name font) + (ly:font-filename font) " scaled " (ly:number->string (inexact->exact (round (* 1000 diff --git a/scm/paper.scm b/scm/paper.scm index ae0ca635b5..cf47f42b35 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -12,7 +12,7 @@ (pt (eval 'pt m)) (mm (eval 'mm m))) - (module-define! m 'fonts (make-font-tree (/ sz (* 20 pt)))) + (module-define! m 'fonts (make-cmr-tree (/ sz (* 20 pt)))) (module-define! m 'staffheight sz) (module-define! m 'staff-space ss) -- 2.39.2