luis jure <[email protected]> writes:
> in my score i have a series of markups all with the same format, for
> example something like:
>
> \markup { \hspace #-1.6 \lower #3 \sans "1" }
> \markup { \hspace #-1.6 \lower #3 \sans "2" }
> \markup { \hspace #-1.6 \lower #3 \sans "3" }
> etc.
At top level?
> so i decided to create a function to save typing and to be consistent.
> i wrote the following expecting that it would work, but it didn't:
>
>
> \version "2.17.18"
>
> tiempo = #(define-music-function (parser location secs) (string?)
> #{ \markup { \hspace #-1.6 \lower #3 \sans #secs } #})
>
> { c''4\tiempo "1" }
A music-function is supposed to return music. You are returning a
markup instead. Try using a scheme-function instead (quite likely that
it will work with 2.17.18).
Or use define-markup-command instead.
> reading the documentation i found something that i could adapt, and i came
> up with this:
>
> \version "2.17.18"
>
> tiempo = #(define-music-function (parser location secs) (string?)
> #{ <>_\markup { \hspace #-1.6 \lower #3 \sans #secs } #})
>
> { \tiempo "1" c''4 }
> now, that *does* work, but i don't understand why it does
Because an empty chord with a markup subscript is music.
--
David Kastrup
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user