(define (write-preamble paper load-fonts? port)
+
+ (define (load-font-via-GS font-name-filename)
+ (define (ps-load-file name)
+ (format "(~a) (r) file .loadfont " name))
+
+ (let* ((font (car font-name-filename))
+ (name (cadr font-name-filename))
+ (file-name (caddr font-name-filename))
+ (bare-file-name (ly:find-file file-name)))
+
+ (cons
+ (munge-lily-font-name name)
+ (cond
+ ((string-match "([eE]mmentaler|[Aa]ybabtu)" file-name)
+ (ps-load-file (ly:find-file
+ (format "~a.pfa" (munge-lily-font-name file-name)))))
+ ((string? bare-file-name)
+ (ps-load-file (munge-lily-font-name file-name)))
+ (else
+ (ly:warning (_ "don't know how to embed ~S=~S") name file-name)
+ "")))))
(define (load-font font-name-filename)
(let* ((font (car font-name-filename))
(cached-file-contents bare-file-name))
((and bare-file-name (string-match "\\.pfb" bare-file-name))
(ly:pfb->pfa bare-file-name))
-
+ ((and bare-file-name (string-match "\\.ttf" bare-file-name))
+ (ly:ttf->pfa bare-file-name))
+
((string-match "([eE]mmentaler|[Aa]ybabtu)" file-name)
(cached-file-contents
(format "~a.pfa" (munge-lily-font-name file-name))))
+
+ ((and bare-file-name (string-match "\\.otf" bare-file-name))
+ (ps-embed-cff (ly:otf->cff bare-file-name) name 0))
((and bare-file-name (string-match "\\.ttf" bare-file-name))
(ly:ttf->pfa bare-file-name))
(ps-embed-cff (ly:otf-font-table-data font "CFF ")
name
0))
- (bare-file-name (cached-file-contents bare-file-name))
- (cff-file-name (cached-file-contents cff-file-name))
(else
- (ly:warning (_ "can't find CFF/PFA/PFB font ~S=~S" name file-name))
- (cons font-name "")))
- )))
-
+ (ly:warning (_ "don't know how to embed ~S=~S") name file-name)
+ "")))))
(define (load-fonts paper)
(let* ((fonts (ly:paper-fonts paper))
-
(all-font-names
(map
(lambda (font)
; adobe note 5002: should initialize variables before loading routines.
(display (procset "music-drawing-routines.ps") port)
(display (procset "lilyponddefs.ps") port)
- (display "init-lilypond-parameters\n" port)
-
- )
+ (display "init-lilypond-parameters\n" port))
(define-public (output-framework basename book scopes fields)
(let* ((filename (format "~a.ps" basename))