X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fframework-ps.scm;h=9095c1a9b903be15d57e3180b2dbd824bfb05226;hb=cc676c5aadd45985251b5d60fa23eed1ed98f6e6;hp=65fa29194422afe5f2e4cc7a2fc66b0399919a30;hpb=96836c61532a417f64d4ef3b2732db7dcb0f5737;p=lilypond.git diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index 65fa291944..9095c1a9b9 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -43,9 +43,6 @@ (define (define-font command fontname scaling) (string-append "/" command " { /" fontname " " (ly:number->string scaling) " output-scale div selectfont } bind def\n")) -; (string-append -; "/" command " { /" fontname " findfont " -; (ly:number->string scaling) " output-scale div scalefont } bind def\n")) (define (standard-tex-font? x) (or (equal? (substring x 0 2) "ms") @@ -118,7 +115,8 @@ "page-width output-scale lily-output-units mul mul 0 translate 90 rotate\n" "") "%%EndPageSetup\n" - + + "true setstrokeadjust\n" "gsave 0 paper-height translate " "set-ps-scale-to-lily-scale " "\n")) @@ -267,15 +265,20 @@ (cons name - (cond - ((string-match "^([eE]mmentaler|[Aa]ybabtu)" file-name) - (ps-load-file (ly:find-file - (format "~a.otf" file-name)))) - ((string? bare-file-name) - (ps-load-file file-name)) - (else - (ly:warning (_ "can't embed ~S=~S") name file-name) - ""))))) + + (if (mac-font? bare-file-name) + (handle-mac-font name bare-file-name) + (cond + ((string-match "^([eE]mmentaler|[Aa]ybabtu)" file-name) + (ps-load-file (ly:find-file + (format "~a.otf" file-name)))) + ((string? bare-file-name) + (ps-load-file file-name)) + (else + (ly:warning (_ "can't embed ~S=~S") name file-name) + ""))) + + ))) (define (dir-join a b) (if (equal? a "") @@ -344,7 +347,15 @@ (else (ly:warning (_ "don't know how to embed ~S=~S") name file-name) "")))) - + + (define (mac-font? bare-file-name) + (and + (eq? PLATFORM 'darwin) + bare-file-name + (or + (string-match "\\.dfont" bare-file-name) + (= (stat:size (stat bare-file-name)) 0)))) + (define (load-font font-name-filename) (let* ((font (car font-name-filename)) (name (cadr font-name-filename)) @@ -355,14 +366,7 @@ name (cond - ((and - (eq? PLATFORM 'darwin) - bare-file-name (string-match "\\.dfont" bare-file-name)) - (handle-mac-font name bare-file-name)) - - ((and - (eq? PLATFORM 'darwin) - bare-file-name (= (stat:size (stat bare-file-name)) 0)) + ((mac-font? bare-file-name) (handle-mac-font name bare-file-name)) ((and font (cff-font? font)) @@ -427,6 +431,9 @@ (display (procset "music-drawing-routines.ps") port) (display (procset "lilyponddefs.ps") port) + (if (not (ly:get-option 'point-and-click)) + (display "/mark_URI { pop pop pop pop pop } bind def\n" port)) + (display "%%EndProlog\n" port) (display "%%BeginSetup\ninit-lilypond-parameters\n%%EndSetup\n\n" port)) @@ -440,6 +447,7 @@ (open-file filename "wb") "ps")) (paper (ly:paper-book-paper book)) + (systems (ly:paper-book-systems book)) (page-stencils (map page-stencil (ly:paper-book-pages book))) (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t)) @@ -447,11 +455,16 @@ (page-count (length page-stencils)) (port (ly:outputter-port outputter))) + (if (ly:get-option 'dump-signatures) + (write-system-signatures basename (ly:paper-book-systems book) 1)) + (output-scopes scopes fields basename) (display (file-header paper page-count #t) port) - (display "\n%%BeginDefaults -%%PageMedia: a4 -%%EndDefaults\n" port) + + + ;; don't do BeginDefaults PageMedia: A4 + ;; not necessary and wrong + (write-preamble paper #t port) @@ -577,12 +590,20 @@ (define-public (convert-to-pdf book name) (let* ((defs (ly:paper-book-paper book)) - (papersizename (ly:output-def-lookup defs 'papersizename))) + (landscape (ly:output-def-lookup defs 'landscape)) + (output-scale (ly:output-def-lookup defs 'output-scale)) + (convert (lambda (x) (* x output-scale (/ (ly:bp 1))))) + + (paper-width (convert (ly:output-def-lookup defs 'paper-width))) + (paper-height (convert (ly:output-def-lookup defs 'paper-height))) + + (w (if landscape paper-height paper-width)) + (h (if landscape paper-width paper-height)) + ) (if (equal? (basename name ".ps") "-") (ly:warning (_ "can't convert to ~S" "PDF")) - (postscript->pdf (if (string? papersizename) papersizename "a4") - name)))) + (postscript->pdf w h name)))) (define-public (convert-to-png book name) (let* ((defs (ly:paper-book-paper book)) @@ -590,10 +611,13 @@ (resolution (if (number? defs-resolution) defs-resolution (ly:get-option 'resolution))) - (papersizename (ly:output-def-lookup defs 'papersizename))) + (paper-width (ly:output-def-lookup defs 'paper-width)) + (paper-height (ly:output-def-lookup defs 'paper-height)) + (output-scale (ly:output-def-lookup defs 'output-scale))) (postscript->png resolution - (if (string? papersizename) papersizename "a4") + (* paper-width output-scale (/ (ly:bp 1))) + (* paper-height output-scale (/ (ly:bp 1))) name))) (define-public (convert-to-dvi book name)