erlaube Umbrüche in Versen nach angegebenen Texten
This commit is contained in:
parent
f0010c7746
commit
9de2869750
@ -103,9 +103,24 @@
|
|||||||
(interpret-markup layout props
|
(interpret-markup layout props
|
||||||
(make-size-box-to-box-markup #f #t (make-stanza-raw-markup arg) (make-stanza-raw-markup "x"))))
|
(make-size-box-to-box-markup #f #t (make-stanza-raw-markup arg) (make-stanza-raw-markup "x"))))
|
||||||
|
|
||||||
|
#(define (handle-custom-newlines custom-verse-breaks text)
|
||||||
|
(if (null? custom-verse-breaks)
|
||||||
|
text
|
||||||
|
(let make-custom-linebreaks
|
||||||
|
((break-words custom-verse-breaks)
|
||||||
|
(newtext (ly:regex-replace (ly:make-regex "\n") text " ")))
|
||||||
|
(if (null? break-words)
|
||||||
|
newtext
|
||||||
|
(make-custom-linebreaks
|
||||||
|
(cdr break-words)
|
||||||
|
(ly:regex-replace
|
||||||
|
(ly:make-regex (string-append "(" (ly:regex-replace (ly:make-regex "(.)") (car break-words) "(?:\\(?" 1 "| *,[^,)]+\\)" 1 ")") "(?: *,[^,)]+\\))?)(.*)$"))
|
||||||
|
newtext
|
||||||
|
1 "\n" 2))))))
|
||||||
|
|
||||||
% Kompletten Vers mit Akkorden
|
% Kompletten Vers mit Akkorden
|
||||||
#(define-markup-command (chordverse layout props stanza verse) (markup? string?)
|
#(define-markup-command (chordverse layout props stanza verse) (markup? string?)
|
||||||
#:properties ((intraverse-vspace 0))
|
#:properties ((intraverse-vspace 0)(custom-verse-breaks '()))
|
||||||
"Vers mit Akkorden"
|
"Vers mit Akkorden"
|
||||||
(let* ((fromto (chain-assoc-get 'transposition props #f))
|
(let* ((fromto (chain-assoc-get 'transposition props #f))
|
||||||
(transp (if fromto
|
(transp (if fromto
|
||||||
@ -116,18 +131,18 @@
|
|||||||
(markup #:override `(baseline-skip . ,(+ intraverse-vspace songTextLineHeigth)) #:anchor-x-between #:stanza stanza
|
(markup #:override `(baseline-skip . ,(+ intraverse-vspace songTextLineHeigth)) #:anchor-x-between #:stanza stanza
|
||||||
(make-wrap-newline-markup
|
(make-wrap-newline-markup
|
||||||
(ly:regex-replace (ly:make-regex "\\(( *)([^,()]*)( *),([^)]*)\\)")
|
(ly:regex-replace (ly:make-regex "\\(( *)([^,()]*)( *),([^)]*)\\)")
|
||||||
(ly:regex-replace (ly:make-regex "(([^ \n]*\\([^()]*,[^()]+\\)[^ \n(]*)+)") verse " \\concat { " 1 " } ")
|
(ly:regex-replace (ly:make-regex "(([^ \n]*\\([^()]*,[^()]+\\)[^ \n(]*)+)") (handle-custom-newlines custom-verse-breaks verse) " \\concat { " 1 " } ")
|
||||||
"\\textup \\line { \"" 1 "\" " 2 " \"" 3 "\" } \\score { \\transposable " transp " \\chords { s4 " 4 " } \\layout { \\verselayout } }")
|
"\\textup \\line { \"" 1 "\" " 2 " \"" 3 "\" } \\score { \\transposable " transp " \\chords { s4 " 4 " } \\layout { \\verselayout } }")
|
||||||
)
|
)
|
||||||
))))
|
))))
|
||||||
|
|
||||||
% Kompletter Vers aus dem Akkorde entfernt werden
|
% Kompletter Vers aus dem Akkorde entfernt werden
|
||||||
#(define-markup-command (nochordverse layout props stanza verse) (markup? string?)
|
#(define-markup-command (nochordverse layout props stanza verse) (markup? string?)
|
||||||
#:properties ((intraverse-vspace 0))
|
#:properties ((intraverse-vspace 0)(custom-verse-breaks '()))
|
||||||
"Vers ohne Akkorde"
|
"Vers ohne Akkorde"
|
||||||
(interpret-markup layout props
|
(interpret-markup layout props
|
||||||
(markup #:override `(baseline-skip . ,(+ intraverse-vspace 3.0)) #:anchor-x-between #:stanza stanza
|
(markup #:override `(baseline-skip . ,(+ intraverse-vspace 3.0)) #:anchor-x-between #:stanza stanza
|
||||||
#:wrap-newline (ly:regex-replace (ly:make-regex "\\(([^,]*),([^)]*)\\)") verse 1)
|
#:wrap-newline (ly:regex-replace (ly:make-regex "\\(([^,]*),([^)]*)\\)") (handle-custom-newlines custom-verse-breaks verse) 1)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user