From 623532e390c9f701eb2b24adbfba86e74866075b Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Reuter?= Date: Tue, 6 Jun 2006 10:11:52 +0000 Subject: [PATCH] * ly/gregorian-init.ly: Rewrote \versus and \responsum in order to fix lyrics alignment problems. They are implemented now as scheme functions that add the appropriate unicode char to the first lyric event rather than adding a separate lyric event. --- ChangeLog | 7 +++++++ ly/gregorian-init.ly | 35 ++++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index dd6cef86eb..b972812037 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-06-06 Jürgen Reuter + + * ly/gregorian-init.ly: Rewrote \versus and \responsum in order to + fix lyrics alignment problems. They are implemented now as scheme + functions that add the appropriate unicode char to the first lyric + event rather than adding a separate lyric event. + 2006-06-06 Han-Wen Nienhuys * buildscripts/output-distance.py diff --git a/ly/gregorian-init.ly b/ly/gregorian-init.ly index 6f3f06e16e..008cb6e118 100644 --- a/ly/gregorian-init.ly +++ b/ly/gregorian-init.ly @@ -17,11 +17,36 @@ IIJ = \lyricmode { IIJ } ij = \lyricmode { ij } iij = \lyricmode { iij } -% unicode 2123 (versicle) -versus = \lyricmode { ℣ } - -% unicode 211F (response) -responsum = \lyricmode { ℟ } +% Given some music that represents lyrics, add a prefix to the first +% lyric event. +#(define (add-prefix-to-lyrics prefix music) + (make-music + 'SequentialMusic + 'elements (append + (cons + (let* ((elems (car (ly:music-property music 'elements))) + (props (ly:music-mutable-properties elems)) + (events (filter (lambda (x) + (equal? (car x) 'elements)) + props)) + (first-evt (cadar events)) + (first-syllable (ly:prob-property first-evt 'text)) + (first-duration (ly:prob-property first-evt 'duration))) + (make-music + 'LyricEvent + 'duration first-duration + 'text (string-append prefix first-syllable))) + (cdr (ly:music-property music 'elements)))))) + +% Add unicode 2123 (versicle) as prefix to lyrics. +versus = +#(define-music-function (parser location music) (ly:music?) + (add-prefix-to-lyrics "℣" music)) + +% Add unicode 211F (response) as prefix to lyrics. +responsum = +#(define-music-function (parser location music) (ly:music?) + (add-prefix-to-lyrics "℟" music)) % % Declare head prefix shortcuts. -- 2.39.5