Am 11.03.19 um 23:40 schrieb David Kastrup:
Urs Liska <[email protected]> writes:
Am 11.03.19 um 20:22 schrieb Aaron Hill:
On 2019-03-11 11:30 am, David Kastrup wrote:
Urs Liska <[email protected]> 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?
I must admit I have never really thought about it, but if you are
talking of the operating system and desktop environment that should be
good (I don't see any issues with special characters anywhere).
~$ locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
Or do you have to set a locale specifically for LilyPond? I can't
imagine since I usually can engrave anything through it (except now this
case with individual characters).
Urs
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user