[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
page break failure
From: |
Hugh Myers |
Subject: |
page break failure |
Date: |
Tue, 1 Dec 2009 21:57:00 -0700 |
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
- page break failure,
Hugh Myers <=
- Re: page break failure, Graham Percival, 2009/12/02
- Re: page break failure, Marc Hohl, 2009/12/02
- Re: page break failure, Hugh Myers, 2009/12/02
- Re: page break failure, Marc Hohl, 2009/12/02
- Re: page break failure, Hugh Myers, 2009/12/02
- Re: page break failure, Alexander Kobel, 2009/12/02