(define font-list (ly:paper-fonts paper))
(define (define-font command fontname scaling)
(string-append
- "/" command " { /" fontname " findfont "
- (ly:number->string scaling) " output-scale div scalefont } bind def\n"))
+ "/" 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")
"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"))
(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 "")
(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))
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))
(lambda (x y) (string<? (cadr x) (cadr y))))))
- (font-loader (if (ly:get-option 'gs-font-load)
+ (font-loader (if (ly:get-option 'gs-load-fonts)
load-font-via-GS
load-font))
(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))
(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))
(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)
;; the left-overshoot is to make sure that
;; bar numbers stick out of margin uniformly.
;;
- (list (min left-overshoot (car xext))
- (car yext) (cdr xext) (cdr yext))))
+ (list
+
+ (if (ly:get-option 'pad-eps-boxes)
+ (min left-overshoot (car xext))
+ (car xext))
+ (car yext) (cdr xext) (cdr yext))))
+
(rounded-bbox (to-bp-box bbox))
(port (ly:outputter-port outputter))
(header (eps-header paper rounded-bbox load-fonts?)))
;; skip booktitles.
(if (and
- (not (ly:get-option 'preview-include-book-title))
+ (not (ly:get-option 'include-book-title-preview))
(pair? systems)
(ly:prob-property (car systems) 'is-book-title #f))
(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 <stdout> 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))
(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)