]> git.donarmstrong.com Git - lilypond.git/blob - ly/titling-init.ly
Web-ja: update introduction
[lilypond.git] / ly / titling-init.ly
1 \version "2.16.0"
2
3 #(if (guile-v2)
4   (use-modules (ice-9 curried-definitions)))
5
6 slashSeparator = \markup {
7   \center-align
8   \vcenter \combine
9   \beam #2.0 #0.5 #0.48
10   \raise #0.7 \beam #2.0 #0.5 #0.48
11 }
12
13 tagline = \markup {
14   \pad-to-box #'(0 . 0) #'(0 . 3)
15   {  \with-url
16
17     #"http://lilypond.org/"
18     \line {
19
20       %% 2014 = em dash.
21
22       #(format #f "Music engraving by LilyPond ~a~awww.lilypond.org"
23          (lilypond-version)
24          (ly:wide-char->utf-8 #x2014)
25          )
26     }
27   }
28 }
29
30 #(define (print-all-headers layout props arg)
31   (if (eq? (ly:output-def-lookup layout 'print-all-headers) #t)
32    (interpret-markup layout props arg)
33    empty-stencil))
34
35 bookTitleMarkup = \markup {
36   \override #'(baseline-skip . 3.5)
37   \column {
38     \fill-line { \fromproperty #'header:dedication }
39     \override #'(baseline-skip . 3.5)
40     \column {
41       \fill-line {
42         \huge \larger \larger \bold
43         \fromproperty #'header:title
44       }
45       \fill-line {
46         \large \bold
47         \fromproperty #'header:subtitle
48       }
49       \fill-line {
50         \smaller \bold
51         \fromproperty #'header:subsubtitle
52       }
53       \fill-line {
54         \fromproperty #'header:poet
55         { \large \bold \fromproperty #'header:instrument }
56         \fromproperty #'header:composer
57       }
58       \fill-line {
59         \fromproperty #'header:meter
60         \fromproperty #'header:arranger
61       }
62     }
63   }
64 }
65
66 scoreTitleMarkup = \markup { \column {
67   \on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1 }
68   \fill-line {
69     \fromproperty #'header:piece
70     \fromproperty #'header:opus
71   }
72 }
73 }
74
75 %% Book first page and last page predicates
76 #(define (book-first-page? layout props)
77    "Return #t iff the current page number, got from @code{props}, is the
78 book first one."
79    (= (chain-assoc-get 'page:page-number props -1)
80       (book-first-page layout props)))
81
82 #(define (book-last-page? layout props)
83    "Return #t iff the current page number, got from @code{props}, is the
84 book last one."
85    (and (chain-assoc-get 'page:is-bookpart-last-page props #f)
86         (chain-assoc-get 'page:is-last-bookpart props #f)))
87
88 #(define (first-page layout props arg)
89   (if (book-first-page? layout props)
90       (interpret-markup layout props arg)
91       empty-stencil))
92
93 #(define (last-page layout props arg)
94   (if (book-last-page? layout props)
95       (interpret-markup layout props arg)
96       empty-stencil))
97
98 #(define (not-first-page layout props arg)
99   (if (not (book-first-page? layout props))
100       (interpret-markup layout props arg)
101       empty-stencil))
102
103 #(define ((on-page nmbr) layout props arg)
104  (if (= (chain-assoc-get 'page:page-number props -1) nmbr)
105    (interpret-markup layout props arg)
106    empty-stencil))
107
108 %% Bookpart first page and last page predicates
109 #(define (part-first-page? layout props)
110   (= (chain-assoc-get 'page:page-number props -1)
111      (ly:output-def-lookup layout 'first-page-number)))
112
113 #(define (part-last-page? layout props)
114   (chain-assoc-get 'page:is-bookpart-last-page props #f))
115
116 #(define (part-first-page layout props arg)
117   (if (part-first-page? layout props)
118       (interpret-markup layout props arg)
119       empty-stencil))
120
121 #(define (not-part-first-page layout props arg)
122   (if (not (part-first-page? layout props))
123       (interpret-markup layout props arg)
124       empty-stencil))
125
126 #(define (part-last-page layout props arg)
127   (if (part-last-page? layout props)
128       (interpret-markup layout props arg)
129       empty-stencil))
130
131 %% unused
132 #(define (not-single-page layout props arg)
133   (if (not (and (= (chain-assoc-get 'page:page-number props -1)
134                    (ly:output-def-lookup layout 'first-page-number))
135                (chain-assoc-get 'page:last? props -1)))
136    (interpret-markup layout props arg)
137    empty-stencil))
138
139 #(define (create-page-number-stencil layout props arg)
140   (if (eq? (ly:output-def-lookup layout 'print-page-number) #t)
141    (interpret-markup layout props arg)
142    empty-stencil))
143
144 #(define (print-page-number-check-first layout props arg)
145   (if (or (not (book-first-page? layout props))
146           (eq? (ly:output-def-lookup layout 'print-first-page-number) #t))
147    (create-page-number-stencil layout props arg)
148    empty-stencil))
149
150 oddHeaderMarkup = \markup
151 \fill-line {
152   ""
153   \on-the-fly #not-part-first-page \fromproperty #'header:instrument
154   \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
155 }
156
157 %% evenHeaderMarkup would inherit the value of
158 %% oddHeaderMarkup if it were not defined here
159 evenHeaderMarkup = \markup
160 \fill-line {
161   \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
162   \on-the-fly #not-part-first-page \fromproperty #'header:instrument
163   ""
164 }
165
166 oddFooterMarkup = \markup {
167   \column {
168     \fill-line {
169       %% Copyright header field only on first page in each bookpart.
170       \on-the-fly #part-first-page \fromproperty #'header:copyright
171     }
172     \fill-line {
173       %% Tagline header field only on last page in the book.
174       \on-the-fly #last-page \fromproperty #'header:tagline
175     }
176   }
177 }
178
179 %% As long as evenFooterMarkup is unset, it inherits the value of
180 %% oddFooterMarkup, as if this were declared here:
181 % evenFooterMarkup = \oddFooterMarkup