(guile)
(srfi srfi-1)
(srfi srfi-13)
- (scm output-ps)
(lily))
+(define-public (ps-font-command font . override-coding)
+ (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))
+ (font-encoding (assoc-get 'output-name coding-alist))
+ (coding-command (if (null? override-coding)
+ (if (equal? input-encoding font-encoding)
+ #f font-encoding)
+ (car override-coding))))
+
+ ;; FIXME: now feta stuff has feta* input-encoding (again?)
+ ;;(format (current-error-port) "FONT: ~S, ~S\n" name font-encoding)
+ ;;(format (current-error-port) "INPUT: ~S\n" input-encoding)
+ (if (and coding-command
+ (or
+ (equal? (substring coding-command 0 4) "feta")
+ (equal? (substring coding-command 0 8) "parmesan")
+
+ ))
+ (set! coding-command #f))
+
+ (string-append
+ "magfont" (string-encode-integer (hashq name 1000000))
+ "m" (string-encode-integer (inexact->exact (round (* 1000 magnify))))
+ (if (not coding-command) "" (string-append "e" coding-command)))))
+
(define (tex-font? fontname)
- (equal? (substring fontname 0 2) "cm"))
+ (or
+ (equal? (substring fontname 0 2) "cm")
+ (equal? (substring fontname 0 2) "ec")))
(define (load-fonts bookpaper)
(let* ((fonts (ly:bookpaper-fonts bookpaper))
"0 0 start-system { "
"set-ps-scale-to-lily-scale "
"\n"))
- (ly:outputter-dump-stencil outputter (ly:page-stencil page))
+ (ly:outputter-dump-stencil outputter page)
(ly:outputter-dump-string outputter "} stop-system \nshowpage\n"))
-(define-public (output-framework-ps outputter book scopes fields basename)
- (let* ((bookpaper (ly:paper-book-book-paper book))
+(define-public (output-framework outputter book scopes fields basename)
+ (let* ((bookpaper (ly:paper-book-book-paper book))
(pages (ly:paper-book-pages book))
(page-number 0)
(page-count (length pages)))
pages)
(ly:outputter-dump-string outputter "%%Trailer\n%%EOF\n")))
-(define-public (output-classic-framework-ps outputter book scopes fields
+(define-public (output-classic-framework outputter book scopes fields
basename)
(let* ((bookpaper (ly:paper-book-book-paper book))
(lines (ly:paper-book-lines book))
(y 0.0)
+ ;; What the F*** is 2.83463?
(scale (* 2.83464 (ly:output-def-lookup bookpaper 'outputscale)))
(total-y
- (apply + (map (lambda (z) (ly:paper-line-extent z Y)) lines)))
+ (apply + (map (lambda (z) (ly:paper-system-extent z Y)) lines)))
(x-ext '(-8 . 0))
(lineno 0))
(define (dump-line outputter system)
- (let ((stil (ly:paper-line-stencil system)))
+ (let ((stil (ly:paper-system-stencil system)))
(ly:outputter-dump-string
outputter
" 0.0 "
(ly:number->string y)
" start-system {\n set-ps-scale-to-lily-scale\n"))
- (set! y (+ y (ly:paper-line-extent system Y)))
+ (set! y (+ y (ly:paper-system-extent system Y)))
(ly:outputter-dump-stencil outputter stil)
(ly:outputter-dump-string
outputter
(for-each
(lambda (ell)
(set! x-ext (interval-union x-ext
- (cons 0.0 (ly:paper-line-extent ell X)))))
+ (cons 0.0 (ly:paper-system-extent ell X)))))
lines)
(for-each