### 3.1.11 BarLine

BarLine objects are created by: Bar_engraver.

Standard settings:

> `allow-span-bar` (boolean):

>   `#t`

>   If false, no inter-staff bar line will be created below this bar line.

> `bar-extent` (pair of numbers):

>   `ly:bar-line::calc-bar-extent`

>   The Y-extent of the actual bar line. This may differ from `Y-extent` because it does not include the dots in a repeat bar line.

> `break-align-anchor` (number):

>   `ly:bar-line::calc-anchor`

>   Grobs aligned to this break-align grob will have their X-offsets shifted by this number. In bar lines, for example, this is used to position grobs relative to the (visual) center of the bar line.

> `break-align-symbol` (symbol):

>   `'staff-bar`

>   This key is used for aligning and spacing breakable items.

> `break-visibility` (vector):

>   `bar-line::calc-break-visibility`

>   A vector of 3 booleans, `#(end-of-line unbroken begin-of-line)`. `#t` means visible, `#f` means killed.

> `extra-spacing-height` (pair of numbers):

>   `pure-from-neighbor-interface::account-for-span-bar`

>   In the horizontal spacing problem, we increase the height of each item by this amount (by adding the ‘car’ to the bottom of the item and adding the ‘cdr’ to the top of the item). In order to make a grob infinitely high (to prevent the horizontal spacing problem from placing any other grobs above or below this grob), set this to `(-inf.0 . +inf.0)`.

> `gap` (dimension, in staff space):

>   `0.4`

>   Size of a gap in a variable symbol.

> `glyph` (string):

>   `"|"`

>   A string determining what ‘style’ of glyph is typeset. Valid choices depend on the function that is reading this property.

>   In combination with (span) bar lines, it is a string resembling the bar line appearance in ASCII form.

> `glyph-name` (string):

>   `bar-line::calc-glyph-name`

>   The glyph name within the font.

>   In the context of (span) bar lines, glyph-name represents a processed form of `glyph`, where decisions about line breaking etc. are already taken.

> `hair-thickness` (number):

>   `1.9`

>   Thickness of the thin line in a bar line.

> `kern` (dimension, in staff space):

>   `3.0`

>   Amount of extra white space to add. For bar lines, this is the amount of space after a thick line.

> `layer` (integer):

>   `0`

>   An integer which determines the order of printing objects. Objects with the lowest value of layer are drawn first, then objects with progressively higher values are drawn, so objects with higher values overwrite objects with lower values. By default most objects are assigned a layer value of 1.

> `non-musical` (boolean):

>   `#t`

>   True if the grob belongs to a `NonMusicalPaperColumn`.

> `rounded` (boolean)

>   Decide whether lines should be drawn rounded or not.

> `space-alist` (list):

>   `'((time-signature extra-space . 0.75) (custos minimum-space . 2.0) (clef minimum-space . 1.0) (key-signature extra-space . 1.0) (key-cancellation extra-space . 1.0) (first-note fixed-space . 1.3) (next-note semi-fixed-space . 0.9) (right-edge extra-space . 0.0))`

>   A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: `(break-align-symbol type . distance)`, where type can be the symbols `minimum-space` or `extra-space`.

> `stencil` (stencil):

>   `ly:bar-line::print`

>   The symbol to print.

> `thick-thickness` (number):

>   `6.0`

>   Bar line thickness, measured in `line-thickness`.

> `thin-kern` (number):

>   `3.0`

>   The space after a hair-line in a bar line.

> `Y-extent` (pair of numbers):

>   `#<unpure-pure-container #<primitive-procedure ly:grob::stencil-height> >`

>   Extent (size) in the Y direction, measured in staff-space units, relative to object’s reference point.

This object supports the following interface(s): bar-line-interface, break-aligned-interface, font-interface, grob-interface, item-interface and pure-from-neighbor-interface.

#### Internals Reference v2.18.2 (稳定分支).