]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-ps.scm
*** empty log message ***
[lilypond.git] / scm / framework-ps.scm
index eb62b853fd5ac5d23645c61102a5d079fb9d5fcd..7753ec07edf84281c570ba6e2ea0c6e8289abb27 100644 (file)
             (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