On Sun 18 Oct 2020 at 23:43:18 (+0200), Jean Abou Samra wrote: > > Le 18/10/2020 à 17:40, Marc Shepherd a écrit : > > In a score where "RemoveAllEmptyStaves" is set, a staff will > > normally not show in a system where it has all rests. > > > > Sometimes, you may /want/a staff (temporarily) to appear on a > > specific system, even though it contains all rests. What’s the > > command or setting to do this? > > > Well, I can't explain the output of: > > \version "2.23.0" > > showIt = \set Staff.keepAliveInterfaces = #'(rest-interface) > hideIt = \unset Staff.keepAliveInterfaces > > \new Score \with \RemoveAllEmptyStaves > << > { > R1 R1 R1 \break > R1 R1 R1 \break > \showIt > R1 R1 R1 \break > \hideIt > R1 R1 R1 \break > R1 R1 R1 \break > } > { > \repeat unfold 15 { c'1 } > } > >> > > I would expect just the third staff to be shown, but in fact the > second and the fourth are also printed. > > Do folks here think this is a bug? Am I missing something? > > Anyway, there is this workaround: > > \version "2.23.0" > > \new Score \with \RemoveAllEmptyStaves > << > { > R1\break > << { \oneVoice R1 } \\ { \once \hideNotes c'1 } >> \break > R1\break > } > { > \repeat unfold 3 { c'1 } > }
I just moved the show/hide away from the line ends, because I don't know precisely when each component of the source is seen/enacted. There may be some look behind/ahead. Cheers, David.
showIt = \set Staff.keepAliveInterfaces = #'(rest-interface) hideIt = \unset Staff.keepAliveInterfaces \new Score \with \RemoveAllEmptyStaves << { R1 R1 R1 \break R1 R1 R1 \break R1 \showIt R1 \hideIt R1 \break R1 R1 R1 \break R1 R1 R1 \break } { \repeat unfold 15 { c'1 } } >>
hide.pdf
Description: Adobe PDF document