1 ;;;; titling.scm -- titling functions
3 ;;;; source file of the GNU LilyPond music typesetter
5 ;;;; (c) 2004 Jan Nieuwenhuizen <janneke@gnu.org>
6 ;;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 (define-public (page-properties paper)
9 (list (append `((linewidth . ,(ly:paper-get-number
11 (ly:output-def-lookup paper 'text-font-defaults))))
15 (define-public (default-book-title paper scopes)
16 "Generate book title from header strings."
20 (let ((x (ly:modules-lookup scopes sym)))
21 (if (markup? x) x "")))
23 (markup? (ly:modules-lookup scopes sym)))
25 (let ((props (page-properties paper)))
34 (list (markup #:fill-line
35 (#:normalsize (get 'dedication))))
40 (#:huge #:bigger #:bigger #:bigger #:bigger #:bold
43 (if (or (has 'subtitle) (has 'subsubtitle))
50 (#:large #:bigger #:bigger #:bold (get 'subtitle)))
51 (markup #:fill-line (#:bigger #:bigger #:bold
53 (markup #:override '(baseline-skip . 5)
62 '(baseline-skip . 2.5)
65 (if (or (has 'poet) (has 'composer))
66 (list (markup #:fill-line
68 #:large #:bigger #:caps
71 (if (or (has 'texttranslator) (has 'opus))
75 (#:bigger (get 'texttranslator) #:bigger (get 'opus))))
77 (if (or (has 'meter) (has 'arranger))
80 (#:bigger (get 'meter) #:bigger (get 'arranger))))
85 (markup #:fill-line (#:large #:bigger (get 'instrument))))
87 ;;; piece is done in the score-title
90 ;;; (markup #:fill-line (#:large #:bigger #:caps (get 'piece) "")))
95 (define-public (default-user-title paper markup)
96 "Generate book title from header markup."
98 (let ((props (page-properties paper))
99 (baseline-skip (chain-assoc-get 'baseline-skip props 2)) )
100 (stack-lines DOWN 0 BASELINE-SKIP
101 (list (interpret-markup paper props markup))))))
103 (define-public (default-score-title paper scopes)
104 "Generate score title from header strings."
107 (let ((x (ly:modules-lookup scopes sym)))
108 (if (markup? x) x "")))
111 (markup? (ly:modules-lookup scopes sym)))
113 (let ((props (page-properties paper)))
116 (make-override-markup
122 (list (markup #:fill-line ("" (get 'opus))))
126 (markup #:fill-line (#:large #:bigger #:caps (get 'piece) "")))
129 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;