Issue 4744
It has been noted several
times that we should have
a companion for RemoveEmptyStaves
and to also set remove-first to ##t.
A doc snippet, removing-the-first-empty-line.ly,
has become obsolete with these changes.
Contains commits:
Add missing word in changes.tely
Add changes entry for RemoveEmptyStavesAll
Use RemoveEmptyStavesAll for ossia example in
Notation Reference
This rewrites documentation for
RemoveEmptyStaves and adds
information on the newly added
RemoveEmptyStavesAll.
Add RemoveEmptyStavesAll command
Introduce a new context modification
identifier, RemoveEmptyStavesAll,
to complement RemoveEmptyStaves.
It sets both the remove-empty
and remove-first properties
of VerticalAxisGroup to ##t.
+@item
+A new command, @code{\RemoveAllEmptyStaves}, has been made available, which
+acts exactly like @code{\RemoveEmptyStaves}, except for also removing empty
+staves on the first system in a score.
+
@item
Markup-commands @code{\undertie} and @code{\overtie} are now available, as well
@item
Markup-commands @code{\undertie} and @code{\overtie} are now available, as well
-the generic markup-command @code{\tie}.
+as the generic markup-command @code{\tie}.
@lilypond[quote,verbatim]
\markup {
\undertie "undertied"
@lilypond[quote,verbatim]
\markup {
\undertie "undertied"
-Using the @code{\Staff \RemoveEmptyStaves} command to create ossia
+Using the @code{\RemoveAllEmptyStaves} command to create ossia
staves may be used as an alternative. This method is most
convenient when ossia staves occur immediately following a line
break. For more information about
staves may be used as an alternative. This method is most
convenient when ossia staves occur immediately following a line
break. For more information about
-@code{\Staff \RemoveEmptyStaves}, see @ref{Hiding staves}.
+@code{\RemoveAllEmptyStaves}, see @ref{Hiding staves}.
@lilypond[verbatim,quote,ragged-right]
<<
@lilypond[verbatim,quote,ragged-right]
<<
\remove "Time_signature_engraver"
\hide Clef
\magnifyStaff #2/3
\remove "Time_signature_engraver"
\hide Clef
\magnifyStaff #2/3
} \relative {
R1*3
c''4 e8 d c2
} \relative {
R1*3
c''4 e8 d c2
-
-\layout {
- \context {
- \Staff \RemoveEmptyStaves
- \override VerticalAxisGroup.remove-first = ##t
- }
-}
@cindex Frenched staff
@cindex staff, hiding
@cindex staff, empty
@cindex Frenched staff
@cindex staff, hiding
@cindex staff, empty
-@cindex hiding of staves
+@cindex hiding staves
+@cindex hiding ancient staves
+@cindex hiding rhythmic staves
+@cindex hiding vaticana staves
@cindex empty staves
@funindex \RemoveEmptyStaves
@cindex empty staves
@funindex \RemoveEmptyStaves
+@funindex \RemoveAllEmptyStaves
@funindex Staff_symbol_engraver
@funindex \stopStaff
@funindex stopStaff
@funindex Staff_symbol_engraver
@funindex \stopStaff
@funindex stopStaff
-Empty staves can be hidden by setting the
-@code{\Staff \RemoveEmptyStaves} command in the @code{\layout}
-block. In orchestral scores, this style is known as @q{Frenched
-Score}. By default, this command hides and removes all empty
-staves in a score except for those in the first system.
+Empty staves can be hidden (for a so-called @q{Frenched Score})
+by applying the @code{\RemoveEmptyStaves} command on a context, which
+can be done globally (in a @code{\layout} block) as well as for
+specific staves only (in a @code{\with} block). This command removes
+all empty staves in a score except for those in the first system. If
+you want those in the first system to be hidden also, use
+@code{\RemoveAllEmptyStaves}. Supported contexts are @code{Staff},
+@code{RhythmicStaff} and @code{VaticanaStaff}.
@warning{A staff is considered empty when it contains only
multi-measure rests, rests, skips, spacer rests, or a combination of these
@warning{A staff is considered empty when it contains only
multi-measure rests, rests, skips, spacer rests, or a combination of these
@lilypond[verbatim,quote,ragged-right]
\layout {
\context {
@lilypond[verbatim,quote,ragged-right]
\layout {
\context {
- \Staff \RemoveEmptyStaves
+ \Staff
+ \RemoveEmptyStaves
-@code{\Staff \RemoveEmptyStaves} can also be used to create ossia
+@code{\RemoveAllEmptyStaves} can also be used to create ossia
sections for a staff. For details, see @ref{Ossia staves}.
sections for a staff. For details, see @ref{Ossia staves}.
-@cindex hiding ancient staves
-@cindex hiding rhythmic staves
-
-@funindex \RemoveEmptyStaves
-
-The @code{\VaticanaStaff \RemoveEmptyStaves} command may be used to
-hide empty staves in ancient music contexts. Similarly,
-@code{\RhythmicStaff \RemoveEmptyStaves} may be used to hide empty
-@code{RhythmicStaff} contexts.
-
-@code{\Staff \RemoveEmptyStaves},
-@code{\VaticanaStaff \RemoveEmptyStaves},
-@code{\RhythmicStaff \RemoveEmptyStaves}.
+@code{\RemoveEmptyStaves},
+@code{\RemoveAllEmptyStaves}.
-
-@snippets
-
-@lilypondfile[verbatim,quote,texidoc,doctitle]
-{removing-the-first-empty-line.ly}
-
@seealso
Music Glossary:
@rglos{Frenched staff}.
@seealso
Music Glossary:
@rglos{Frenched staff}.
to the list of interfaces set by @code{keepAliveInterfaces}."
}
to the list of interfaces set by @code{keepAliveInterfaces}."
}
+RemoveAllEmptyStaves = \with {
+ \override VerticalAxisGroup.remove-empty = ##t
+ \override VerticalAxisGroup.remove-first = ##t
+ \description "Remove staves which are considered to be empty according
+to the list of interfaces set by @code{keepAliveInterfaces}, including those
+in the first system."
+}
+
inherit-acceptability =
#(define-void-function (to from)
(symbol? symbol?)
inherit-acceptability =
#(define-void-function (to from)
(symbol? symbol?)