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