X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fframework-ps.scm;h=44427dbd09e272f45f365199cba17bca31c5f724;hb=dd995017b7f85676fabd12cbb340d09e56554cd5;hp=670e28e538d35cb053aee265af64a41c8124ce41;hpb=65fba337cc28643505081d63d39afb2a547ec53f;p=lilypond.git diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index 670e28e538..44427dbd09 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -2,7 +2,7 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 2004--2006 Han-Wen Nienhuys +;;;; (c) 2004--2007 Han-Wen Nienhuys (define-module (scm framework-ps)) @@ -17,10 +17,7 @@ (scm clip-region) (lily)) -(define (format dest . rest) - (if (string? dest) - (apply simple-format (cons #f (cons dest rest))) - (apply simple-format (cons dest rest)))) +(define format ergonomic-simple-format) (define framework-ps-module (current-module)) @@ -52,10 +49,6 @@ (string-append "/" command " { /" fontname " " (ly:number->string scaling) " output-scale div selectfont } bind def\n")) - (define (standard-tex-font? x) - (or (equal? (substring x 0 2) "ms") - (equal? (substring x 0 2) "cm"))) - (define (font-load-command font) (let* ((specced-font-name (ly:font-name font)) (fontname (if specced-font-name @@ -70,10 +63,6 @@ (ops (ly:output-def-lookup paper 'output-scale)) (scaling (* ops magnification designsize))) - ;; Bluesky pfbs have UPCASE names (sigh.) - ;; FIXME - don't support Bluesky? - (if (standard-tex-font? fontname) - (set! fontname (string-upcase fontname))) (if (equal? fontname "unknown") (display (list font fontname))) (define-font plain fontname scaling))) @@ -172,13 +161,13 @@ (ly:output-def-lookup paper 'output-scale)) (ly:bp 1))) (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t))) - (format "%%DocumentMedia: ~a ~a ~a ~a ~a ~a\n" - (ly:output-def-lookup paper 'papersizename) - (round2 (if landscape? h w)) - (round2 (if landscape? w h)) - 80 ;; weight - "()" ;; color - "()" ;; type + (ly:format "%%DocumentMedia: ~a ~2f ~2f ~a ~a ~a\n" + (ly:output-def-lookup paper 'papersizename) + (if landscape? h w) + (if landscape? w h) + 80 ;; weight + "()" ;; color + "()" ;; type ))) @@ -257,14 +246,21 @@ (define (write-preamble paper load-fonts? port) - - (define (load-font-via-GS font-name-filename) - (define (ps-load-file name) - (format - (if (string? name) - "(~a) (r) file .loadfont\n" - "% cannot find font file: ~a\n") - name)) + (define (internal-font? file-name) + (or (string-startswith file-name "Emmentaler") + (string-startswith file-name "emmentaler") + (string-startswith file-name "aybabtu") + (string-startswith file-name "Aybabtu"))) + (define (load-font-via-GS font-name-filename) + (define (ps-load-file file-name) + (if (string? file-name) + (if (string-contains file-name (ly:get-option 'datadir)) + (begin + (set! file-name (ly:string-substitute (ly:get-option 'datadir) "" file-name)) + (format "lilypond-datadir (~a) concatstrings (r) file .loadfont" file-name)) + + (format "(~a) (r) file .loadfont\n" file-name)) + (format "% cannot find font file: ~a\n" file-name))) (let* ((font (car font-name-filename)) (name (cadr font-name-filename)) @@ -277,10 +273,7 @@ (if (mac-font? bare-file-name) (handle-mac-font name bare-file-name) (cond - ((or (string-startswith file-name "Emmentaler") - (string-startswith file-name "emmentaler") - (string-startswith file-name "aybabtu") - (string-startswith file-name "Aybabtu")) + ((internal-font? file-name) (ps-load-file (ly:find-file (format "~a.otf" file-name)))) ((string? bare-file-name) @@ -393,6 +386,8 @@ (define (load-fonts paper) (let* ((fonts (ly:paper-fonts paper)) + + ;; todo - doc format of list. (all-font-names (map (lambda (font) @@ -419,14 +414,30 @@ (sort (apply append all-font-names) (lambda (x y) (string + lilypond -dbackend=eps FILE If have cut & pasted a lilypond fragment from a webpage, be sure to only remove anything before @@ -779,5 +787,4 @@ to only remove anything before %% **************************************************************** %% Start cut-&-pastable-section %% **************************************************************** - ")))