Armide : acte 2 scène 4 [7/7]
[nenuvar.git] / common / livret.ily
blob04308c2d7f9541a0e69be651f73188a46e688624
1 %%% Commands for entering libretti
3 #(define-markup-command (livretAct layout props text next) (markup? markup?)
4    (interpret-markup
5     layout props
6     (markup #:column (#:fill-line (#:fontsize 4 #:pad-around 3 text)
7                       next))))
9 #(define-markup-command (livretFinAct layout props text) (markup?)
10    (interpret-markup
11     layout props
12     (markup #:fill-line (#:fontsize 3 #:pad-around 2 text))))
14 #(define-markup-command (livretScene layout props text next)
15      (markup? markup?)
16    (stack-lines DOWN 0 0
17                 (list (ly:make-stencil "" '(0 . 0) '(0 . 1))
18                       (interpret-markup
19                        layout props
20                        (markup #:column (#:fill-line (#:fontsize 2 #:pad-around 2 text)
21                                          next))))))
23 #(define-markup-command (livretDesc layout props text) (markup?)
24    (interpret-markup
25     layout props
26     (markup #:fontsize 1 #:pad-around 2 #:italic text)))
28 #(define-markup-command (livretDescPage layout props text) (markup?)
29    #:properties ((line-width)
30                  (gap 9)
31                  (word-space 0))
32    (interpret-markup
33     layout props
34     (markup #:hspace gap
35             #:override `(line-width . ,(- line-width gap word-space 2))
36             #:fontsize 1 #:pad-around 2 #:italic text)))
38 #(define-markup-command (livretDescAtt layout props text next)
39      (markup? markup?)
40    (interpret-markup
41     layout props
42     (markup #:column
43             (#:line (#:fontsize 1 #:pad-around 2 #:italic text)
44              next))))
46 #(define-markup-command (livretDescAttPage layout props text next)
47      (markup? markup?)
48    #:properties ((line-width)
49                  (gap 9)
50                  (word-space 0))
51    (interpret-markup
52     layout props
53     #{ \markup\column {
54          \line {
55            \hspace #gap
56            \override #`(line-width . ,(- line-width gap word-space 2))
57            \fontsize #1 \pad-around #2 \italic #text
58          }
59          $next } #}))
61 #(define-markup-command (livretDidas layout props text) (markup?)
62    (interpret-markup
63     layout props
64     (markup #:fontsize 1 #:italic text)))
66 #(define-markup-command (livretDidasPage layout props text) (markup?)
67    #:properties ((line-width)
68                  (gap 9)
69                  (word-space 0))
70    (interpret-markup
71     layout props
72     (markup #:hspace gap
73             #:override `(line-width . ,(- line-width gap word-space 2))
74             #:fontsize 1 #:italic text)))
76 #(define-markup-command (livretDidasP layout props text) (markup?)
77    (interpret-markup
78     layout props
79     (markup #:fontsize 0 #:italic text)))
81 #(define-markup-command (livretDidasPPage layout props text) (markup?)
82    #:properties ((line-width)
83                  (gap 9)
84                  (word-space 0))
85    (interpret-markup
86     layout props
87     (markup #:hspace gap
88             #:override `(line-width . ,(- line-width gap word-space 2))
89             #:fontsize 0 #:italic text)))
91 #(define-markup-command (livretDidasPC layout props text) (markup?)
92    (interpret-markup
93     layout props
94     #{ \markup\fontsize #0 \italic \fill-line { $text } #}))
96 #(define-markup-command (livretDidascalies layout props text) (markup-list?)
97    (interpret-markup
98     layout props
99     #{ \markup\fontsize #0 \italic\justify { \hspace #4 $text } #}))
101 #(define-markup-command (livretPers layout props text next) (markup? markup?)
102    #:properties ((line-width)
103                  (gap 9)
104                  (word-space 0))
105    (interpret-markup
106     layout props
107     (markup #:column
108             (#:fill-line (#:fontsize 1 #:pad-around 2
109                           #:override `(line-width . ,(- line-width
110                                                         (* 2 gap)
111                                                         word-space
112                                                         2))
113                                      text)
114              next))))
116 #(define-markup-command (livretPersVerse layout props pers verse next)
117      (markup? markup? markup?)
118    (let* ((pers-stencil (interpret-markup
119                          layout props
120                          (markup #:fontsize 0 #:italic pers)))
121           (verse-stencil (interpret-markup layout props verse))
122           (line-stencil (ly:stencil-add pers-stencil verse-stencil)))
123      (interpret-markup layout props
124                        (markup #:column (#:stencil line-stencil
125                                          next)))))
127 #(define livret-verse-aux
128    (let ((gauge-string
129           "Qu’en chantant vos feux nous chantions d’autres flâmes ;")
130          (gap #f))
131      (lambda (layout props verse margin)
132        (if (not gap)
133            (let ((line-width (chain-assoc-get 'line-width props 0))
134                  (gauge (interpret-markup
135                          layout props
136                          (markup #:fontsize 0 gauge-string))))
137              (set! gap (/ (- line-width
138                              (interval-length (ly:stencil-extent gauge X)))
139                           2.0))))
140        (interpret-markup
141         layout props
142         (markup #:hspace (+ gap margin)
143                 #:fontsize 0 verse)))))
145 #(define-markup-command (livretVerse layout props metric args) (number? markup-list?)
146    #:properties ((gap 9))
147    (let ((margin (* 2.5 (- 12 (min 12 metric)))))
148      (interpret-markup
149       layout props
150       (markup #:hspace (+ gap margin)
151               (make-line-markup args)))))
153 #(define-markup-command (livretVer layout props args) (markup-list?)
154    (livret-verse-aux layout props (make-line-markup args) 0))
156 #(define-markup-command (livretVerC layout props args) (markup-list?)
157    (livret-verse-aux layout props (make-line-markup args) 2))
159 #(define-markup-command (livretText layout props args) (markup-list?)
160    (interpret-markup
161     layout props
162     #{ \markup\justify $args #}))
164 #(define-markup-command (livretRef layout props ref next)
165      (symbol? markup?)
166    (interpret-markup
167     layout props
168     (markup #:combine
169             #:with-link ref #:line ("[p." #:page-refIII ref "]")
170             next)))
172 #(define-markup-command (sep layout props) ()
173    (interpret-markup layout props
174                      (markup #:pad-around 1 #:fill-line (#:draw-line '(50 . 0)))))