lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: text spanning


From: Nick Payne
Subject: Re: text spanning
Date: Sat, 28 Nov 2009 06:20:27 +1100
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

Hugh Myers wrote:
Perhaps I misunderstand your reply, but bar 14(where the problem is)
has nothing to do with a rest. The text starts where (as you say) I
wanted it to. That is not the problem. What is the problem is the
continuation of the spanning text at bar 14--- here it starts outside
in the margin instead of being aligned beneath a note. Is this
behavior controllable?
See music function below that I wrote for creating text spanners with arbitrary text. It allows you to specify as parameters:

The starting text
The outside staff priority
Whether the spanner is above or below the stave
The amount by which you want to adjust the left and right ends of the spanner The amount by which you want to adjust the left and right point at which the spanner breaks when it crosses a line break

% usage e.g.:
%   \tspan "sul ponticello" #0 #DOWN #'(0 . -0.5) #5 #1
%   g\startTextSpan c bes' ees, aes c, g c bes' ees, aes c,\stopTextSpan
tspan = #(define-music-function (parser location text osp dirn shorten adjBreak adjEnd) (string? number? number? pair? number? number?) #{
   % set osp to 999 if spanner is colliding with another element
   % this will position the spanner outside all other elements
   % can be normally be set to zero
   \once \override TextSpanner #'outside-staff-priority = #$osp
\once \override TextSpanner #'bound-details #'left #'text = \markup\italic\small\bold { \concat { { $text } " " } }
   \once \override TextSpanner #'font-shape = #'upright
   % direction (either #UP or #DOWN)
   \once \override TextSpanner #'direction = #$dirn
   % setup dashed line and draw a bracket edge on RHS
   \once \override TextSpanner #'dash-period = #1.5
   \once \override TextSpanner #'dash-fraction = #0.3
   \once \override TextSpanner #'thickness = #0.8
\once \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #(cons 0 (/ $dirn -1)) }
   % set alignment of line with reference to left text
\once \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #CENTER \once \override TextSpanner #'bound-details #'left #'padding = #(car $shorten) \once \override TextSpanner #'bound-details #'right #'padding = #(cdr $shorten)
   % allow adjustment of line end when it wraps to following stave
\once \override TextSpanner #'bound-details #'right-broken #'padding = #$adjEnd % adjust LH end of line when it wraps to following stave so that it doesn't
   % extend to the left of the notes on the stave
\once \override TextSpanner #'bound-details #'left-broken #'X = #$adjBreak
   % optional override to remove text and bracket edge at line breaks
   \once \override TextSpanner #'bound-details #'left-broken #'text = ##f
   \once \override TextSpanner #'bound-details #'right-broken #'text = ##f
#})






reply via email to

[Prev in Thread] Current Thread [Next in Thread]