Graham King <lilyp...@tremagi.org.uk> writes:

> But when I try to move all the complicated Scheme stuff into a function,
> it gives an impenetrable thicket of errors:
>
>         \version "2.16.2"
>         
>         mensSign = #(define-scheme-function (parser location name)
>         (string?)
>           (case name
>             (("C")  (#(markup #:number
>
>                      (#:line ((markup (#:musicglyph
> "timesig.mensural64"))
>                                       (#:fontsize -4 #:column ("3"
> "2")))))))
>
>
>           )
>         )
>         
>         music = \relative c' {
>         \time 3/4
>         c8 b c d e f g4
>         \mark \markup { \mensSign #"C" }
>         g g g4 a8 g f e d2. \bar "|."
>         }
>         
>         \score { \music }

Inside of markups, you can't use functions defined with
define-scheme-function (their argument parsing is just not compatible
with markup mode).  Check out define-markup-command instead.

As a note aside: case can't be used with strings as (eqv? "x" "x") => #f

-- 
David Kastrup


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to