Hi Paul, On Sun, Aug 30, 2015 at 4:51 PM, Paul Morris <p...@paulwmorris.com> wrote:
> Hi David, > > On Aug 30, 2015, at 3:16 PM, David Nalesnik <david.nales...@gmail.com> > wrote: > >> >> LilyPond already has the ability to make analysis brackets, which are >> attached to note columns and can nest as in the link (HorizontalBracket). >> I have an old patch for adding text to these that I will finish up and >> post. (I have code for doing this in Scheme, but my approach now is an >> enhancement of the C++ engraver.) >> > > The attached file is what I used to use when making form handouts. > > > This is great! – both the analysis brackets (which I didn’t know about > before) and your code for text labels for them. I’ve often resorted to > using Inkscape to add this kind of thing to LilyPond SVGs. > > In trying out your code I noticed that it didn’t really work when the text > was wider than the bracket (the bracket was pushed over out of place). So > I came up with a revision that handles this, using the > “center-stencil-on-stencil” function I recently contributed to the LSR. > See attached. > Good catch. Thanks! > > Would be nice to have this in the LSR, at least. It also might be nice if > it could accept a markup instead of a string, so you could change the > appearance of the text (size, color, style, etc.). > > Actually, you can. The syntax is just a little awkward, though: gluck = \relative c'' { \time 3/4 \key f \major \override HorizontalBracket.direction = #UP c4-\tweak stencil #(label #{ \markup \italic \center-column { "contrasting" "period" } #} #{ \markup \italic \center-column { "period" "(cont.)" } #}) \startGroup -\tweak stencil #(label "a" "a" )\startGroup a8( bes c f) f4( e d) c d8( c bes c) \appoggiatura bes4 a2 g4 \stopGroup %\break f'8-\tweak stencil #(label "b" "b")\startGroup r a, r d r c4( e, f) g8( bes) a4 g8( f) f2 \stopGroup \stopGroup r4 } %%% The plan at the moment is to create a grob HorizontalBracketText. That will allow easy use of markups through overrides of a 'text property: \override HorizontalBracketText.text = \markup ... and tweakability. Best, David
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user