Pardon the length of the piece of code, but clearly demonstrates the problem where as other pieces don't (got to be a page long for instance...):
% % malaguena.ly -- q&d testbed for mixed notation score and tab. % \version "2.13.7" \header { title = "Malaguena" subtitle = "none" composer = "Music by Unknown" } 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 % add '\bold' to end of \markup if desired... \once \override TextSpanner #'bound-details #'left #'text = \markup\italic\small { \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 % comment out to repeat text at each measure wrap % \once \override TextSpanner #'bound-details #'left-broken #'text = ##f % \once \override TextSpanner #'bound-details #'right-broken #'text = ##f #}) ringer = \tspan "let ring" #0 #DOWN #'(0 . -0.5) #5 #1 chord = < e b gis e b e, > nullTempo = { \once \set Score.tempoHideNote = ##t \tempo 4 = 199 } upper = { \tempo 4=90 \barNumberCheck #1 \chord \chord \chord \repeat volta 2 { \tempo 4=200 \barNumberCheck #2 b c d \barNumberCheck #3 d c b \barNumberCheck #4 c a b \barNumberCheck #5 \acciaccatura d8 \voiceOne c4 b a \barNumberCheck #6 b a g \barNumberCheck #7 a g f \nullTempo } \alternative { { \override TupletBracket #'bracket-visibility = ##t \barNumberCheck #8 r4 \ringer \times 2/3 { gis8 \startTextSpan b e } e,4 \times 2/3 { gis8 b e } e,2 } { \repeat volta 2 { \bar ":|.|:" \barNumberCheck #10 { e8 [e'] gis, [e'] b [e] } \barNumberCheck #11 e,8 [e'] gis, [e'] b [e] \barNumberCheck #12 a,8 [e'] c [e] b [e] \barNumberCheck #13 a,8 [e'] g, [e'] f, [e'] } } } \barNumberCheck #14 e,8 [e'] gis, [e'] b [e] \barNumberCheck #15 d8 [e] c [e] b [e] \barNumberCheck #16 c8 [e] a, [e'] b [e] \barNumberCheck #17 c8 [e] b [e] a, [e'] \barNumberCheck #18 b8 [e] a, [e'] g, [e'] \barNumberCheck #19 a,8 [e'] g, [e'] f, [e'] \barNumberCheck #20 e,4 gis b \stopTextSpan \barNumberCheck #21 < e b gis e b e, >2. \barNumberCheck #22 e4 e e \barNumberCheck #23 e4 e d \barNumberCheck #24 f4 e d \barNumberCheck #25 c2. \barNumberCheck #26 c4 c c \barNumberCheck #27 c4 c b \barNumberCheck #28 d4 c b \barNumberCheck #29 a2. \barNumberCheck #30 a4 b c \barNumberCheck #31 d4 e d \barNumberCheck #32 f4 e d \barNumberCheck #33 c2. \barNumberCheck #34 c4 d e \barNumberCheck #35 f4 g f \barNumberCheck #36 f2 e16 f g ( f ) \tempo 4=200 \barNumberCheck #37 < e b gis e b e, >2. \barNumberCheck #38 e,,8 [ < b'' e > ] gis, [ < b' e > ] b, [ < b' e > ] \barNumberCheck #39 e,,8 [ < b'' e > ] gis, [ < b' e > ] b, [ < b' e > ] \barNumberCheck #40 a,8 [ < c' e > ] c, [ < c' e > ] b, [ < c' e > ] \barNumberCheck #41 a,8 [ < c' e > ] g, [ < b' e > ] f, [ < b' e > ] \barNumberCheck #42 e,,8 [ < b'' e > ] gis, [ < b' e > ] b, [ < b' e > ] \barNumberCheck #43 e,,8 [ < b'' e > ] gis, [ < b' e > ] b, [ < b' e > ] \barNumberCheck #44 a,8 [ < c' e> ] b, [ < c' e > ] c, [ < c' e > ] \barNumberCheck #45 d,8 [ < c' e> ] \stemDown e, [ < c' e > ] f, [ < c' e > ] \bar "|:" \barNumberCheck #46 \ringer \times 2/3 { e,8 \startTextSpan [ e' b ] } \times 2/3 { gis8 [ e' b ] } \times 2/3 { b\3 [ e b ] } \barNumberCheck #47 \times 2/3 { e,8 [ e' b ] } \times 2/3 { gis8 [ e' b ] } \times 2/3 { b\3 [ e b ] } \barNumberCheck #48 \times 2/3 { a8 [ e' c ] } \times 2/3 { c\3 [ e e\2 ] } \times 2/3 { b\3 [ e d ] } \barNumberCheck #49 \times 2/3 { a8 [ e' c ] } \times 2/3 { g [ e' b ] } \times 2/3 { f [ e' b ] } \bar ":|" \barNumberCheck #50 \stemNeutral e,4 gis b \stopTextSpan \barNumberCheck #51 \stemUp e2 e4 \barNumberCheck #52 e4 e d \barNumberCheck #53 f4 e c \barNumberCheck #54 d d c \barNumberCheck #55 <b e> d b \barNumberCheck #56 c c b \barNumberCheck #57 d c a \barNumberCheck #58 gis4 gis a \barNumberCheck #59 b2 e4 \barNumberCheck #60 a4 a gis \barNumberCheck #61 g f e \barNumberCheck #62 g g fis \barNumberCheck #63 f e d \barNumberCheck #64 f f e \barNumberCheck #65 d c d e e dis d c b c c c \acciaccatura d8 c4 b a b b b \acciaccatura c8 b4 a g a b c c d dis } lower = { \barNumberCheck #1 s2. \barNumberCheck #2 < gis d e, >2. \barNumberCheck #3 e,2. \barNumberCheck #4 a2. \barNumberCheck #5 a2. \barNumberCheck #6 g2. \barNumberCheck #7 f2. \barNumberCheck #8 e2.~e2. \barNumberCheck #10 s2. \barNumberCheck #11 s2. \barNumberCheck #12 s2. \barNumberCheck #13 s2. \barNumberCheck #14 s2. \barNumberCheck #15 s2. \barNumberCheck #16 s2. \barNumberCheck #17 s2. \barNumberCheck #18 s2. \barNumberCheck #19 s2. \barNumberCheck #20 s2. \barNumberCheck #21 s2. \barNumberCheck #22 <b' gis e,>2. \barNumberCheck #23 e,,2. \barNumberCheck #24 e2. \barNumberCheck #25 c'4 e g \barNumberCheck #26 c,2. \barNumberCheck #27 e2. \barNumberCheck #28 c2. \barNumberCheck #29 f,4 c' f \barNumberCheck #30 f,2. \barNumberCheck #31 f'2. \barNumberCheck #32 g,2. \barNumberCheck #33 c4 e g \barNumberCheck #34 c,2. \barNumberCheck #35 d2. \barNumberCheck #36 < b' a d, >2. \barNumberCheck #37 s2. \barNumberCheck #38 s2. \barNumberCheck #39 s2. \barNumberCheck #40 s2. \barNumberCheck #41 s2. \barNumberCheck #42 s2. \barNumberCheck #43 s2. \barNumberCheck #44 s2. \barNumberCheck #45 s2. \barNumberCheck #46 s2. \barNumberCheck #47 s2. \barNumberCheck #48 s2. \barNumberCheck #49 s2. \barNumberCheck #50 s2. \barNumberCheck #51 < e,, b' e gis b >2. \barNumberCheck #52 < a a' c >2. \barNumberCheck #53 a2. \barNumberCheck #54 < e d' g >2. \barNumberCheck #55 g'2. \barNumberCheck #56 < f, f' a >2. \barNumberCheck #57 < f' a >2. \barNumberCheck #58 < e, b' e >2. \barNumberCheck #59 < e b' e gis >2. \barNumberCheck #60 a2. \barNumberCheck #61 a2. \barNumberCheck #62 g2. \barNumberCheck #63 g2. \barNumberCheck #64 f2. \barNumberCheck #65 f2. e2. e2. a2. a2. g2. g2. f2. ~f2. } { \time 3/4 \set Score.barNumberVisibility = #all-bar-numbers-visible \bar "" \set Score.voltaSpannerDuration = #(ly:make-moment 3 4) \override Score.BarNumber #'break-visibility = #'#(#t #t #t) \set Score.defaultBarType = "|" << \new Staff \relative c'' { << \override TupletBracket #'bracket-visibility = ##t \new Voice = "1" { \voiceOne \upper } \new Voice = "2" { \voiceTwo \lower } >> } \new TabStaff \relative c' { << \new TabVoice = "t1" { \voiceOne \upper } \new TabVoice = "t2" { \voiceTwo \lower } >> } >> } Note that the last tab overlaps the bottom of the page! Clearly it shouldn't. How do I work around this problem (somehow I don't think I should have to but that is another issue...)? --hsm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user