@end lilypond
@noindent
-and five types of repeat bar line:
+and nine types of repeat bar lines:
@lilypond[quote,relative=1,verbatim]
f1 \bar ".|:"
g1 \bar ":..:"
a1 \bar ":|.|:"
b1 \bar ":|.:"
-c1 \bar ":|."
-e1
+c1 \bar ":.|.:"
+d1 \bar "[|:"
+e1 \bar ":|][|:"
+f1 \bar ":|]"
+g1 \bar ":|."
+a1
@end lilypond
Additionally, a bar line can be printed as a simple tick:
preferable to use @code{\divisioMinima} there instead, described in
the section @ref{Divisiones} in Gregorian chant.
+Lilypond supports kievan notation and provides a special kievan
+bar line:
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "k"
+@end lilypond
+Further details of this notation are explained in
+@ref{Typesetting Kievan square notation}.
+
@cindex segno
For in-line segno signs, there are three types of bar lines which
using the various repeat commands (see @ref{Repeats}), which
automatically print the appropriate bar lines.
-In addition, you can specify @code{"||:"}, which is equivalent to
-@code{"|:"} except at line breaks, where it gives a double bar
+In addition, you can specify @code{".|:-||"}, which is equivalent to
+@code{".|:"} except at line breaks, where it gives a double bar
line at the end of the line and a start repeat at the beginning of
the next line.
creates a segno bar, placed in cooperation
with the @code{\repeat volta} command.
+@funindex \defineBarLine
+@funindex defineBarLine
+@cindex bar lines, defining
+@cindex defining bar lines
+
+New bar line types can be defined with @code{\defineBarLine}:
+
+@example
+\defineBarLine @var{bartype} #'(@var{end} @var{begin} @var{span})
+@end example
+
+The @code{\defineBarline} variables can include the
+@q{empty} string @code{""}, which is equivalent to an invisible
+bar line being printed. Or they can be set to @code{#f} which
+prints no bar line at all.
+
+After the definiton, the new bar line can be used by
+@code{\bar} @var{bartype}.
+
+There are currently ten bar line elements available:
+
+@lilypond[quote,verbatim]
+\defineBarLine ":" #'("" ":" "")
+\defineBarLine "=" #'("=" "" "")
+\defineBarLine "[" #'("" "[" "")
+\defineBarLine "]" #'("]" "" "")
+
+\new Staff {
+ s1 \bar "|"
+ s1 \bar "."
+ s1 \bar "!"
+ s1 \bar ";"
+ s1 \bar ":"
+ s1 \bar "k"
+ s1 \bar "S"
+ s1 \bar "="
+ s1 \bar "["
+ s1 \bar "]"
+ s1 \bar ""
+}
+@end lilypond
+
+The @code{"="} bar line provides the double span bar line, used
+in combination with the segno sign. Do not use it as a standalone
+double thin bar line; here, @code{\bar} @var{"||"} is
+preferred.
+
+The @code{"-"} sign starts annotations to bar lines which
+are useful to distinguish those with identical appearance
+but different behavior at line breaks and/or different span bars.
+The part following the @code{"-"} sign is not used for building up
+the bar line.
+
+@lilypond[quote,relative=2,verbatim]
+\defineBarLine "||-dashedSpan" #'("||" "" "!!")
+
+\new StaffGroup <<
+ \new Staff {
+ c1 \bar "||"
+ c1 \bar "||-dashedSpan"
+ c1
+ }
+ \new Staff {
+ c1
+ c1
+ c1
+ }
+>>
+@end lilypond
+
+Furthermore, the space character @code{" "} serves as a placeholder
+for defining span bars correctly aligned to the main bar lines:
+
+@lilypond[quote,relative=2,verbatim]
+\defineBarLine ":|.-wrong" #'(":|." "" "|.")
+\defineBarLine ":|.-right" #'(":|." "" " |.")
+
+\new StaffGroup <<
+ \new Staff {
+ c1 \bar ":|.-wrong"
+ c1 \bar ":|.-right"
+ c1
+ }
+ \new Staff {
+ c1
+ c1
+ c1
+ }
+>>
+@end lilypond
+
+If additional elements are needed, LilyPond provides a simple
+way to define them. For more informations on modifying or adding
+bar lines, see file @file{scm/bar-line.scm}.
In scores with many staves, a @code{\bar} command in one staff is
automatically applied to all staves. The resulting bar lines are
@ref{Repeats},
@ref{Grouping staves}.
+Installed Files:
+@file{scm/bar-line.scm}.
+
Snippets:
@rlsr{Rhythms}.