]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/framework-tex.scm (dump-page): take with-extents?
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 29 Sep 2004 22:57:39 +0000 (22:57 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 29 Sep 2004 22:57:39 +0000 (22:57 +0000)
argument. If true, output Y extents. Used for lilypond-book
documents.

* scripts/lilypond-book.py (PREAMBLE_LY): set dump-extents for
\bookpaper.

* scm/framework-tex.scm (dump-page): put stencil height in dumped
page.

ChangeLog
scm/framework-tex.scm
scm/lily.scm
scripts/lilypond-book.py

index feeb553770518818a5727f656ad1b0f79539a083..11576fba4b91557fc7448bc602779e8675e5bc3e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2004-09-30  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * scm/framework-tex.scm (dump-page): take with-extents?
+       argument. If true, output Y extents. Used for lilypond-book
+       documents.
+
+       * scripts/lilypond-book.py (PREAMBLE_LY): set dump-extents for
+       \bookpaper.
+
        * lily/slur.cc (outside_slur_callback): epsilon-delta management
        for slur edges.
  
index 98dc39fc3873be095fcca39464a381e8dcac5f46..a1358c9506a0f0992a82bcfa97499599599cacdf 100644 (file)
    "\\lilypondspecial\n"
    "\\lilypondpostscript\n"))
 
-(define (dump-page putter page last?)
+(define (dump-page putter page last? with-extents?)
   (ly:outputter-dump-string
    putter
    (format "\\vbox to ~a\\outputscale{%\n\\leavevmode\n\\lybox{0}{0}{0}{0}{%\n"
-          (interval-length (ly:stencil-extent page Y))
-          ))
+          (if with-extents?
+              (- (interval-start (ly:stencil-extent page Y)))
+                      0.0
+              )))
   (ly:outputter-dump-stencil putter page)
   (ly:outputter-dump-string
    putter
    (if last?
-       "}\\vss\n}\n\\vss\n"
-       "}\\vss\n}\n\\vss\\lilypondpagebreak\n")))
+       "}\\vss\n}\n\\vfill\n"
+       "}\\vss\n}\n\\vfill\\lilypondpagebreak\n")))
 
 (define-public (output-framework outputter book scopes fields basename )
   (let* ((bookpaper (ly:paper-book-book-paper book))
         (pages (ly:paper-book-pages book))
         (last-page (car (last-pair pages)))
+        (with-extents
+         (eq? #t (ly:output-def-lookup bookpaper 'dump-extents)))
         )
     (for-each
      (lambda (x)
       (header bookpaper (length pages) #f)
       (define-fonts bookpaper)
       (header-end)))
-    
+    (ly:outputter-dump-string outputter "\\nopagebreak")
     (for-each
-     (lambda (page) (dump-page outputter page (eq? last-page page)))
+     (lambda (page) (dump-page outputter page (eq? last-page page) with-extents))
      pages)
     (ly:outputter-dump-string outputter "\\lilypondend\n")))
 
index b7969de5c792b4cf0b81d269a9d4998ccb2ef046..44772347242cd4cf86479fe689279bfe0bced6b4 100644 (file)
@@ -323,7 +323,8 @@ L1 is copied, L2 not.
   "Length of the number-pair X, when an interval"
   (max 0 (- (cdr x) (car x)))
   )
-  
+(define-public interval-start car)
+(define-public interval-end cdr)
 
 (define (other-axis a)
   (remainder (+ a 1) 2))
index 25b185abda07126010506cda480717bbe69b0c9c..7e772b11e83744e20d4a57f3558cc85a6073eedc 100644 (file)
@@ -314,7 +314,7 @@ output = {
        },
        }
 
-PREAMBLE_LY = r'''%%%% Generated by %(program_name)s
+PREAMBLE_LY = r"""%%%% Generated by %(program_name)s
 %%%% Options: [%(option_string)s]
 #(set! toplevel-score-handler ly:parser-print-score)
 #(set! toplevel-music-handler (lambda (p m)
@@ -322,12 +322,14 @@ PREAMBLE_LY = r'''%%%% Generated by %(program_name)s
                                p (ly:music-scorify m p))
                            ))
 %(preamble_string)s
-\bookpaper {%(bookpaper_string)s
+\bookpaper {
+  #(define 'dump-extents #t)
+  %(bookpaper_string)s
 }
 \paper { %(paper_string)s
 }
 
-''' 
+"""
 
 FRAGMENT_LY = r'''
     %(notes_string)s{