1 ;;;; page-layout.scm -- page layout functions
3 ;;;; source file of the GNU LilyPond music typesetter
5 ;;;; (c) 2004 Jan Nieuwenhuizen <janneke@gnu.org>
8 (define-public (page-properties paper)
9 (list (append `((linewidth . ,(ly:paper-get-number
11 (ly:output-def-lookup paper 'text-font-defaults))))
13 (define-public (plain-header paper page-number)
14 (let ((props (page-properties paper) ))
15 (interpret-markup paper props
17 ("" #:bold (number->string page-number))))))
19 (define-public (plain-footer paper page-number)
20 (let ((props (page-properties paper)))
22 (interpret-markup paper props
23 (markup #:fill-line ("" (number->string page-number))))))
27 (string-append "Engraved by LilyPond (version " (lilypond-version) ")"))
29 (define-public (TAGLINE-or-tagline-from-header paper scopes)
30 (let* ((props (page-properties paper))
31 (tagline-var (ly:modules-lookup scopes 'tagline))
32 (tagline (if (markup? tagline-var) tagline-var TAGLINE)))
34 (cond ((string? tagline)
35 (if (not (equal? tagline ""))
36 (interpret-markup paper props
37 (markup #:fill-line (tagline "")))))
38 ((markup? tagline) (interpret-markup paper props tagline)))))
40 (define-public (copyright-from-header paper scopes)
41 (let ((props (page-properties paper))
42 (copyright (ly:modules-lookup scopes 'copyright)))
44 (cond ((string? copyright)
45 (if (not (equal? copyright ""))
46 (interpret-markup paper props
47 (markup #:fill-line (copyright "")))))
48 ((markup? copyright) (interpret-markup paper props copyright)))))
53 (define-public (default-book-title paper scopes)
54 "Generate book title from header strings."
58 (let ((x (ly:modules-lookup scopes sym)))
59 (if (markup? x) x "")))
61 (markup? (ly:modules-lookup scopes sym)))
63 (let ((props (page-properties paper)))
72 (list (markup #:fill-line
73 (#:normalsize (get 'dedication))))
77 (list (markup (#:fill-line
78 (#:huge #:bigger #:bigger #:bigger #:bigger #:bold (get 'title)))))
81 (if (or (has 'subtitle) (has 'subsubtitle))
88 (#:large #:bigger #:bigger #:bold (get 'subtitle)))
89 (markup #:fill-line (#:bigger #:bigger #:bold (get 'subsubtitle)))
90 (markup #:override '(baseline-skip . 5)
99 '(baseline-skip . 2.5)
102 (if (or (has 'poet) (has 'composer))
103 (list (markup #:fill-line
104 (#:bigger (get 'poet) #:large #:bigger #:caps (get 'composer))))
106 (if (or (has 'texttranslator) (has 'opus))
109 #:fill-line (#:bigger (get 'texttranslator) #:bigger (get 'opus))))
111 (if (or (has 'meter) (has 'arranger))
114 (#:bigger (get 'meter) #:bigger (get 'arranger))))
117 (if (has 'instrument)
119 (markup #:fill-line (#:large #:bigger (get 'instrument))))
122 ;; piece is done in the score-title
125 ; (markup #:fill-line (#:large #:bigger #:caps (get 'piece) "")))
132 (define-public (default-user-title paper markup)
133 "Generate book title from header markup."
135 (let ((props (page-properties paper))
136 (baseline-skip (chain-assoc-get 'baseline-skip props 2)) )
137 (stack-lines DOWN 0 BASELINE-SKIP
138 (list (interpret-markup paper props markup))))))
140 (define-public (default-score-title paper scopes)
141 "Generate score title from header strings."
144 (let ((x (ly:modules-lookup scopes sym)))
145 (if (markup? x) x "")))
148 (markup? (ly:modules-lookup scopes sym)))
150 (let ((props (page-properties paper)))
154 (make-override-markup
159 (list (markup #:fill-line ("" (get 'opus))))
162 (list (markup #:fill-line (#:large #:bigger #:caps (get 'piece) "")))
169 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
170 ;;;;;;;;;;;;;;;;;;;;;;;;;NEW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
171 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;