]> git.donarmstrong.com Git - lilypond.git/blob - scm/framework-texstr.scm
* scm/lily-library.scm (interval-translate): new function
[lilypond.git] / scm / framework-texstr.scm
1 ;;;; framework-tex.scm --
2 ;;;;
3 ;;;;  source file of the GNU LilyPond music typesetter
4 ;;;;
5 ;;;; (c) 2004--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6
7 (define-module (scm framework-texstr)
8   #:export (output-framework-tex        
9             output-classic-framework-tex))
10
11 (use-modules (ice-9 regex)
12              (ice-9 string-fun)
13              (ice-9 format)
14              (guile)
15              (srfi srfi-1)
16              (srfi srfi-13)
17              (lily))
18
19 (define (header filename)
20   (format  "% header
21 \\input{lilypond-tex-metrics}
22 \\documentclass{article}
23 \\lilyglobalscale{1.0}
24 \\lilymetricsfile{~a.textmetrics}
25 \\begin{document}
26 " filename))
27
28 (define (footer)
29   "
30 \\end{document}
31 ")
32
33 (define-public (output-classic-framework basename book scopes fields)
34   (let* ((filename (format "~a.texstr" basename))
35          (outputter (ly:make-paper-outputter
36                      (open-file filename "wb")
37                      (ly:output-backend)))
38          (paper (ly:paper-book-paper book))
39          (lines (ly:paper-book-systems book)))
40     (ly:outputter-dump-string outputter (header basename))
41     (for-each
42      (lambda (system)
43        (ly:outputter-dump-stencil outputter (paper-system-stencil system)))
44      lines)
45     (ly:outputter-dump-string outputter (footer))))
46
47 (define-public (output-framework basename book scopes fields )
48   (let* ((filename (format "~a.texstr" basename))
49          (outputter
50           (ly:make-paper-outputter
51            (open-file filename "wb")
52            (ly:output-backend)))
53          (paper (ly:paper-book-paper book))
54          (pages (ly:paper-book-pages book)))
55     (ly:outputter-dump-string outputter (header basename))
56     (for-each
57      (lambda (page)
58        (ly:outputter-dump-stencil outputter page))
59      pages)
60     (ly:outputter-dump-string outputter (footer))))
61
62 (define-public (convert-to-ps . args) #t)
63 (define-public (convert-to-pdf . args) #t)
64 (define-public (convert-to-png . args) #t)
65 (define-public (convert-to-dvi . args) #t)
66 (define-public (convert-to-tex . args) #t)