Urs Liska <li...@openlilylib.org> writes: > Am 11.03.19 um 20:22 schrieb Aaron Hill: >> On 2019-03-11 11:30 am, David Kastrup wrote: >>> Urs Liska <li...@openlilylib.org> writes: >>> >>>> Hi, >>>> >>>> I've written a poor-man's implementation of a simple \letterspaced >>>> markup command: >>>> >>>> #(define-markup-command >>>> (letterspaced layout props text)(markup?) >>>> (let* >>>> ((chars (string->list text)) >>>> (dummy (ly:message "Chars: ~a" chars)) >>>> (spaced-text >>>> (string-join >>>> (map string chars) " "))) >>>> (interpret-markup layout props >>>> (markup spaced-text)))) >>>> >>>> However, this scrambles umlauts and presumably other UTF-8 characters >>>> as you can see with >>>> >>>> { >>>> s1 ^\markup \letterspaced "Täst" >>>> } >>>> >>>> =>Chars: (T � � s t) >>>> >>>> Obviously the characters are wrongly en/decoded along the way, which >>>> makes me think whether I have simply forgotten an encoding setting >>>> somewhere (although I have no idea where and how I should include >>>> that) or whether that whole routine is totally clumsy. >>>> >>>> Any pointer would be appreciated. >>> >>> Guile-1.8 has only byte strings, not Unicode character strings. >>> However, the regexp procedures are locale aware, so you can use >>> something like >> >> /./ isn't smart enough to match Unicode graphemes. You would need >> /\X/, however that is not supported in POSIX ERE. Neither is the >> approximation /\P{M}\p{M}*+/. > > > I can confirm that the suggestion doesn't work for me, even with the > given example. It's still "T s t" (see attached).
Do you have an UTF-8 locale set? -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user