Thanks for the tip, Valentin, great to know about this.
On Sat, May 4, 2024 at 3:22 AM Valentin Petzel <[email protected]> wrote:
> Hello Alec,
>
> note that since 2.24 we have a neat markup function
> \with-string-transformer,
> which is called whenever a string is found, and does a lot of the logic
> for
> you (such as making sure this is called upon a string, not a complex
> markup:
>
> \markup
> \with-string-transformer
> #(lambda (layout props str)
> (if (> (string-length str) 0)
> (let ((last-char (string-ref str (1- (string-length str))))
> (prefix (substring str 0 (1- (string-length str)))))
> (cond
> ((char=? last-char #\#)
> (markup
> #:concat (prefix #:hspace 0.2 #:fontsize -2.5 #:raise 0.6
> #:sharp)))
> ((char=? last-char #\b)
> (markup
> #:concat (prefix #:hspace 0.2 #:fontsize -2.5 #:raise 0.6
> #:flat)))
> (else str)))
> str))
> { "A#" "Bb" }
>
> But then I’d think maybe here it would be useful to have an option for
> regex
> matching in \replace ...
>
> Cheers,
> Valentin