Die @code{measureLength}-Eigenschaft ist beschrieben in
@ref{Verwaltung der Zeiteinheiten}.
+@cindex \inStaffSegno
+
+Der @code{\inStaffSegno}-Befehl kann angewandt werden, um das
+Segno-Zeichen in die Notenzeile einzubinden, auch in Kooperation
+mit dem @code{\repeat volta}-Befehl. Die benutzten
+Taktstrichsymbole können durch Überschreiben der Eigenschaften
+@code{segnoType}, @code{startRepeatSegnoType},
+@code{endRepeatSegnoType} bzw. @code{doubleRepeatSegnoType}
+geändert werden.
+
+@lilypond[verbatim,quote,relative=1]
+e1
+\repeat volta 2 {
+ \inStaffSegno
+ f2 g a b
+}
+c1_"D.S." \bar "|."
+@end lilypond
+
@cindex Wiederholungen mit Überbindung
@cindex Alternative Schlüsse mit Bindebogen
@cindex Überbindung in Wiederholung
c1
@end lilypond
+Darüber hinaus wählt der @code{\inStaffSegno}-Befehl eines dieser
+Segno-Taktstriche aus, in Zusammenarbeit mit dem
+@code{\repeat volta}-Befehl.
+
In Partituren mit vielen Systemen wird ein @code{\bar}-Befehl in einem
System automatisch auf alle anderen Systeme angewendet. Die resultierenden
Taktstriche sind miteinander verbunden innerhalb einer Gruppe
The @code{measureLength} property is described in @ref{Time
administration}.
+@funindex \inStaffSegno
+
+The @code{\inStaffSegno} command can be used to place the segno
+symbol in cooperation with the @code{\repeat volta} command.
+Alternative bar line symbols can be set in a Score context by
+overriding the properties @code{segnoType},
+@code{startRepeatSegnoType}, @code{endRepeatSegnoType} or
+@code{doubleRepeatSegnoType} as required.
+
+@lilypond[verbatim,quote,relative=1]
+e1
+\repeat volta 2 {
+ \inStaffSegno
+ f2 g a b
+}
+c1_"D.S." \bar "|."
+@end lilypond
+
@cindex repeats, with ties
@cindex alternative endings, with ties
@cindex ties, in repeats
c1
@end lilypond
+Additionally there is an @code{\inStaffSegno} command which
+creates a segno bar, placed in cooperation
+with the @code{\repeat volta} command.
+
In scores with many staves, a @code{\bar} command in one staff is
automatically applied to all staves. The resulting bar lines are
string s = "";
bool start = false;
bool end = false;
+ bool segno = false;
bool volta_found = false;
while (scm_is_pair (cs))
{
start = true;
else if (command == ly_symbol2scm ("end-repeat"))
end = true;
+ else if (command == ly_symbol2scm ("segno-display"))
+ segno = true;
else if (scm_is_pair (command) && scm_car (command) == ly_symbol2scm ("volta"))
volta_found = true;
cs = scm_cdr (cs);
}
- if (start && end)
- s = robust_scm2string (get_property ("doubleRepeatType"), ":|:");
- else if (start)
- s = robust_scm2string (get_property ("startRepeatType"), "|:");
- else if (end)
- s = robust_scm2string (get_property ("endRepeatType"), ":|");
+ /*
+ Select which bar type to set
+ */
+ if (segno)
+ if (start)
+ if (end) // { segno, start, end }
+ s = robust_scm2string (get_property ("doubleRepeatSegnoType"), ":|S|:");
+ else // { segno, start }
+ s = robust_scm2string (get_property ("startRepeatSegnoType"), ".S|:");
+ else
+ if (end) // { segno, end }
+ s = robust_scm2string (get_property ("endRepeatSegnoType"), ":|S");
+ else // { segno }
+ s = robust_scm2string (get_property ("segnoType"), "S");
+ else
+ if (start)
+ if (end) // { start, end }
+ s = robust_scm2string (get_property ("doubleRepeatType"), ":|:");
+ else // { start }
+ s = robust_scm2string (get_property ("startRepeatType"), "|:");
+ else
+ if (end) // { end }
+ s = robust_scm2string (get_property ("endRepeatType"), ":|");
/*
TODO: line breaks might be allowed if we set whichBar to "".
/* read */
"doubleRepeatType "
+ "startRepeatType "
+ "endRepeatType "
+ "doubleRepeatSegnoType "
+ "startRepeatSegnoType "
+ "endRepeatSegnoType "
+ "segnoType "
"repeatCommands "
"whichBar ",
\revert NoteHead #'stencil
#})
+inStaffSegno =
+#(define-music-function (parser location) ()
+ (_i "Put the segno variant 'varsegno' at this position into the staff,
+compatible with the repeat command.")
+ (make-music 'ApplyContext
+ 'procedure
+ (lambda (ctx)
+ (let ((score-ctx (ly:context-find ctx 'Score)))
+ (if (ly:context? score-ctx)
+ (let ((old-rc (ly:context-property score-ctx 'repeatCommands '())))
+ (if (eq? (memq 'segno-display old-rc) #f)
+ (ly:context-set-property! score-ctx 'repeatCommands (cons 'segno-display old-rc)))))))))
+
instrumentSwitch =
#(define-music-function
(parser location name) (string?)
(defaultStrings ,list? "A list of strings to use in calculating
frets for tablatures and fretboards if no strings are provided in
the notes for the current moment.")
+ (doubleRepeatSegnoType ,string? "Set the default bar line for
+the combinations double repeat with segno. Default is @samp{:|S|:}.")
(doubleRepeatType ,string? "Set the default bar line for double
repeats.")
(doubleSlurs ,boolean? "If set, two slurs are created for every
@code{(@var{notehead-style} @var{script} @var{vertical-position})} as
values.")
+ (endRepeatSegnoType ,string? "Set the default bar line for the
+combinations ending of repeat with segno. Default is @samp{:|S}.")
(endRepeatType ,string? "Set the default bar line for the ending
of repeats.")
(explicitClefVisibility ,vector? "@samp{break-visibility}
(searchForVoice ,boolean? "Signal whether a search should be made
of all contexts in the context hierarchy for a voice to provide rhythms
for the lyrics.")
+ (segnoType ,string? "Set the default bar line for a requested segno.
+Default is @samp{S}.")
(shapeNoteStyles ,vector? "Vector of symbols, listing style for
each note head relative to the tonic (qv.) of the scale.")
(shortInstrumentName ,markup? "See @code{instrumentName}.")
@code{traditional}, or @code{semitone}.")
(stanza ,markup? "Stanza @q{number} to print before the start of a
verse. Use in @code{Lyrics} context.")
+ (startRepeatSegnoType ,string? "Set the default bar line for the
+combinations beginning of repeat with segno. Default is @samp{.S|:}.")
(startRepeatType ,string? "Set the default bar line for the beginning
of repeats.")
(stemLeftBeamCount ,integer? "Specify the number of beams to draw