<nothingwavering <at> gmail.com> writes:

> I'm familiar with the instruction
>       \context {   \Staff \RemoveEmptyStaves }

> Is there a way to tell Lilypond to stop showing a non-empty staff 
> (that contains notes) and reclaim its space after the next line break?  

There is a variable called keepAliveInterfaces that describes what contents
LilyPond considers before removing "empty" staves.  (It is only mentioned 
in the documentation in the Internals Reference, but you can see its usual 
definition in 'engraver-init.ly' included in the LilyPond installation.)

You could set this variable to an empty list for the Staff that you want 
to disappear at the next line, and then "unset" it so that LilyPond uses
the default definition when you need that Staff to return.  Or you can 
probably do something more clever.  

If this or some other solution works well for you, you might recommend 
it as a solution/workaround for an outstanding bug 
<http://code.google.com/p/lilypond/issues/detail?id=2779>


\version "2.16.0"
\paper { #(set-paper-size "a6") indent = 2.5\cm short-indent = 1.2\cm }

violinI = \repeat unfold 8 {c''1}

violinIIa = \relative c' {
  \override Staff.VerticalAxisGroup #'remove-first = ##t
  \set Staff.shortInstrumentName = "outer"  
  \set Staff.keepAliveInterfaces = #'()
  c4 d e f g f e d
  \unset Staff.keepAliveInterfaces
  <>_"divisi"
  e f g a b a g f
  \set Staff.keepAliveInterfaces = #'()
  <>_"unison"
  c d e f g f e d
  c d e f c1 }

violinIIb = \relative c' {
  c4 d e f g f e d 
  \set Staff.shortInstrumentName = "inner"
  c d e f g f e d 
  \set Staff.shortInstrumentName = "" 
  c d e f g f e d
  c d e f c1 } 

\new StaffGroup <<
  \new Staff \with {
    instrumentName = "1st Violins"
    shortInstrumentName = "Vn1"  
  } \violinI
  \new GrandStaff \with {
    instrumentName = "2nd Violins"
    shortInstrumentName = "Vn2"  
  } <<
    \new Staff \violinIIa
    \new Staff \violinIIb >> >>
\layout {
  \context {
    \Staff \RemoveEmptyStaves }}


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to