[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Lyric centre-on-word / ignore-punctuation bug
From: |
Kieren MacMillan |
Subject: |
Lyric centre-on-word / ignore-punctuation bug |
Date: |
Fri, 23 Feb 2018 21:45:05 -0500 |
Hi all,
When a lyric syllable begins with a typographer’s single quote (e.g., ’cause,
’ll, etc.), the "ignore-punctuation" hack doesn't work. Any hints on how to fix
this would be appreciated.
Thanks,
Kieren.
%%% SNIPPET BEGINS
\version "2.19"
#(define space-set
(list->char-set
(string->list "—.?-;,:“â€â€˜â€™â€“— */()[]{}|<>!`~&…")))
#(define (width grob text)
(let* ((X-extent
(ly:stencil-extent (grob-interpret-markup grob text) X)))
(if (interval-empty? X-extent)
0
(cdr X-extent))))
#(define (center-on-word grob)
(let* ((text (ly:grob-property-data grob 'text))
(syllable (markup->string text))
(word-position
(if (string-skip syllable space-set)
(string-skip syllable space-set)
0))
(word-end
(if (string-skip-right syllable space-set)
(+ (string-skip-right syllable space-set) 1)
(string-length syllable)))
(preword (substring syllable 0 word-position))
(word (substring syllable word-position word-end))
(preword-width (width grob preword))
(word-width (width grob (if (string-null? syllable) text word)))
(note-column (ly:grob-parent grob X))
(note-column-extent (ly:grob-extent note-column note-column X))
(note-column-width (interval-length note-column-extent)))
(-
(*
(/ (- note-column-width word-width) 2)
(1+ (ly:grob-property-data grob 'self-alignment-X)))
preword-width)))
\layout {
ragged-right = ##f
line-width = 3\in
}
\score {
<<
\new Staff { c''2 2 }
\addlyrics { That -- ’ll }
>>
\layout {
\context {
\Lyrics
\override LyricText.X-offset = #center-on-word
}
}
}
}
\score {
<<
\new Staff { c''2 2 }
\addlyrics { That -- ’ll }
>>
}
%%% SNIPPET ENDS
________________________________
Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: address@hidden
- Lyric centre-on-word / ignore-punctuation bug,
Kieren MacMillan <=
- Re: Lyric centre-on-word / ignore-punctuation bug, Thomas Morley, 2018/02/24
- Re: Lyric centre-on-word / ignore-punctuation bug, David Kastrup, 2018/02/24
- Snippet 888 string, was Re: Lyric centre-on-word / ignore-punctuation bug, David Wright, 2018/02/24
- Re: Snippet 888 string, was Re: Lyric centre-on-word / ignore-punctuation bug, David Kastrup, 2018/02/24
- Re: Snippet 888 string, was Re: Lyric centre-on-word / ignore-punctuation bug, Kieren MacMillan, 2018/02/24
- Re: Snippet 888 string, was Re: Lyric centre-on-word / ignore-punctuation bug, madMuze, 2018/02/24
- Re: Snippet 888 string, was Re: Lyric centre-on-word / ignore-punctuation bug, David Wright, 2018/02/24
- Re: Snippet 888 string, was Re: Lyric centre-on-word / ignore-punctuation bug, David Wright, 2018/02/24