]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/titling.scm
Add '-dcrop' option to ps and svg backends
[lilypond.git] / scm / titling.scm
index 23fdce87752f5415d1f6d4626c7e6df7d061219a..4bb464ae68cc0bbbb18cde1762d1210ce36bcb59 100644 (file)
-;;;; titling.scm -- titling functions
+;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;;
-;;;; (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 2004--2015 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;          Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-public (layout-extract-page-properties layout)
   (list (append `((line-width . ,(ly:paper-get-number
-                                layout 'line-width)))
-               (ly:output-def-lookup layout 'text-font-defaults))))
+                                  layout 'line-width)))
+                (ly:output-def-lookup layout 'text-font-defaults))))
 
 ;;;;;;;;;;;;;;;;;;
 
-(define-public ((marked-up-headfoot what-odd what-even) layout scopes page-number last?)
-
-  "Read variables WHAT-ODD, WHAT-EVEN from LAYOUT, and interpret them
-as markup. The PROPS argument will include variables set in SCOPES and
-page:last?, page:page-number-string and page:page-number
-" 
+(define ((marked-up-headfoot what-odd what-even)
+                layout scopes page-number is-last-bookpart is-bookpart-last-page)
+  "Read variables @var{what-odd}, @var{what-even} from @var{layout},
+and interpret them as markup.  The @var{props} argument will include
+variables set in @var{scopes} and @code{page:is-bookpart-last-page},
+@code{page:is-last-bookpart}, @code{page:page-number-string}, and
+@code{page:page-number}."
 
   (define (get sym)
     (ly:output-def-lookup layout sym))
 
   (define (interpret-in-page-env potential-markup)
     (if (markup? potential-markup)
-       (let* ((alists (map ly:module->alist scopes))
-              (prefixed-alists
-               (map (lambda (alist)
-                      (map (lambda (entry)
-                             (cons
-                              (string->symbol
-                               (string-append
-                                "header:"
-                                (symbol->string (car entry))))
-                              (cdr entry)))
-                           alist))
-                    alists))
-              (pgnum-alist
-               (list
-                (cons 'header:tagline
-                      (ly:modules-lookup scopes 'tagline
-                                         (ly:output-def-lookup layout 'tagline)))
-                (cons 'page:last? last?)
-                (cons 'page:page-number-string
-                      (number->string page-number))
-                (cons 'page:page-number page-number)))
-              (props (append
-                      (list pgnum-alist)
-                      prefixed-alists
-                      (layout-extract-page-properties layout))))
-         
-         (interpret-markup layout props potential-markup))
+        (let* ((alists (map ly:module->alist scopes))
+               (prefixed-alists
+                (map (lambda (alist)
+                       (map (lambda (entry)
+                              (cons
+                               (string->symbol
+                                (string-append
+                                 "header:"
+                                 (symbol->string (car entry))))
+                               (cdr entry)))
+                            alist))
+                     alists))
+               (number-type (get 'page-number-type))
+               (pgnum-alist
+                (list
+                 (cons 'header:tagline
+                       (ly:modules-lookup scopes 'tagline
+                                          (ly:output-def-lookup layout 'tagline)))
+                 (cons 'page:is-last-bookpart is-last-bookpart)
+                 (cons 'page:is-bookpart-last-page is-bookpart-last-page)
+                 (cons 'page:page-number-string
+                       (number-format number-type page-number))
+                 (cons 'page:page-number page-number)))
+               (props (append
+                       (list pgnum-alist)
+                       prefixed-alists
+                       (layout-extract-page-properties layout))))
+          (interpret-markup layout props potential-markup))
 
-       empty-stencil))
+        empty-stencil))
 
   (interpret-in-page-env
    (if (and (even? page-number)
-           (markup? (get what-even)))
+            (markup? (get what-even)))
        (get what-even)
        (get what-odd))))
+(export marked-up-headfoot)
+
+(define ((marked-up-title what) layout scopes)
+  "Read variables @var{what} from @var{scopes}, and interpret it as markup.
+The @var{props} argument will include variables set in @var{scopes} (prefixed
+with `header:'."
 
-(define-public ((marked-up-title what) layout scopes)
-  "Read variables WHAT from SCOPES, and interpret it as markup. The
-PROPS argument will include variables set in SCOPES (prefixed with
-`header:'
-"
-  
   (define (get sym)
     (let ((x (ly:modules-lookup scopes sym)))
       (if (markup? x) x #f)))
 
   (let* ((alists (map ly:module->alist scopes))
-        (prefixed-alist
-         (map (lambda (alist)
-                (map (lambda (entry)
-                       (cons
-                        (string->symbol
-                         (string-append
-                          "header:"
-                          (symbol->string (car entry))))
-                        (cdr entry)))
-                     alist))
-              alists))
-        (props (append prefixed-alist
-                       (layout-extract-page-properties layout)))
+         (prefixed-alist
+          (map (lambda (alist)
+                 (map (lambda (entry)
+                        (cons
+                         (string->symbol
+                          (string-append
+                           "header:"
+                           (symbol->string (car entry))))
+                         (cdr entry)))
+                      alist))
+               alists))
+         (props (append prefixed-alist
+                        (layout-extract-page-properties layout)))
 
-        (markup (ly:output-def-lookup layout what)))
+         (markup (ly:output-def-lookup layout what)))
 
     (if (markup? markup)
-       (interpret-markup layout props markup)
-       (ly:make-stencil '() '(1 . -1) '(1 . -1)))))
+        (interpret-markup layout props markup)
+        empty-stencil)))
+(export marked-up-title)