Urs Liska <lilyp...@ursliska.de> writes: > Hello list members, > > after fiddling around too long and getting lost with the basics, I > decided to ask my question here. > I know it's basic, and I wonder why I get stuck this way, but > obviously I'm confused and unable to find the right place in the docs. > > I want to write a function "instr" to produce formatted markup that I > can use like > > { c d e f^\instr "Vl." } > > which should be translated to (e.g.) > > { c d e f^\markup \bold \italic \huge { "Vl." } } > > Unfortunately I seem absolutely unable to find out how to define the > function so I can attach it to the note like in the example. > > Hopefully someone can either give me a working example or point me to > the exact location in the docs where I can fully understand this > issue.
The docs are not useful for this. A sequential music expression like that generated with #{ #} can't be attached in this manner. But you should be able to do instr=#(define-music-function (parser location instrument) (string?) (make-music 'TextScriptEvent 'direction UP 'text (markup #:bold #:italic #:huge instrument))) Note that this has the upward direction builtin. If you don't want to have the direction fixed in advance (you can always override it with explicit ^ and _ instead of -, however), remove 'direction UP. How do you arrive there? Take a look what \displayMusic { c^\markup { whatever } } produces and go from there by stripping the layers that don't belong in your expression. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user