"Marc Evanstein (formerly Evans)" <m...@marcevanstein.com> writes:
> Hi all, > > I'm trying to create a variable to handle a certain type of markup > text. For instance, I'd like percussion strikings to be in small caps > above the staff, and what I really want is to define some sort of > macro that replaces all instances of "\striking { theText }" with > "^\markup\smallCaps { theText }". > > The following clearly doesn't work (much as I would like it to): > > striking = ^\markup\smallCaps Current master will allow striking = ^\markup \smallCaps \etc > From searching around, it seems like I need to define a function using > scheme. I tried this: > > striking = #(define-music-function (parser location text) > (string?) > #{ > ^\markup\smallCaps { #text } > #}) > > ... and while the single line "\striking mallet" seems to render the > word mallet as a smallCaps markup above a dummy staff, when I try to > incorporate it into a series of notes, e.g.: > > {c'4 \striking mallet d'4 e'4 f'4 } > > I get an "error: unexpected post-event". What exactly does that mean? Current master would have worked as expected for this use... At any rate, you are pretty close (whether we are talking about 2.18 or 2.19). Just use define-event-function instead of define-music-function . And rejoice that LilyPond will have fewer stumbling blocks in the near future. Or at least will be better at hiding the stumbling blocks so you'll just get hit by them when digging deeper. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user