LilyPond Internals Reference: 3.1.11 BarLine

### 3.1.11 `BarLine`

A bar line.

`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 breakable item 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, ordering, and spacing breakable items. See break-alignment-interface.

`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-left` (string):

  `#<procedure 5b68c690d840 at /build/out/share/lilypond/current/scm/lily/output-lib.scm:1472:0 (grob)>`

  The `glyph` value to use at the end of the line when the line is broken. `#f` indicates that no glyph should be visible; otherwise the value must be a string.

`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.

`glyph-right` (string):

  `#f`

  The `glyph` value to use at the beginning of the line when the line is broken. `#f` indicates that no glyph should be visible; otherwise the value must be a string.

`hair-thickness` (number):

  `1.9`

  Thickness of the thin line in a bar line, expressed as a multiple of the default staff-line thickness (i.e., the visual output is not influenced by changes to `Staff.StaffSymbol.thickness`).

`horizontal-skylines` (pair of skylines):

  `#<unpure-pure-container #<procedure ly:grob::horizontal-skylines-from-stencil (_)> >`

  Two skylines, one to the left and one to the right of this grob.

`kern` (dimension, in staff space):

  `3.0`

  The space between individual elements in any compound bar line, expressed as a multiple of the default staff-line thickness (i.e., the visual output is not influenced by changes to `Staff.StaffSymbol.thickness`).

`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):

  `#f`

  Decide whether lines should be drawn rounded or not.

`segno-kern` (number):

  `3.0`

  The space between the two thin lines of the segno bar line symbol, expressed as a multiple of the default staff-line thickness (i.e., the visual output is not influenced by changes to `Staff.StaffSymbol.thickness`).

`space-alist` (alist, with symbols as keys):

      '((ambitus extra-space . 1.0)
        (time-signature extra-space . 0.75)
        (custos minimum-space . 2.0)
        (clef extra-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))

  An alist that specifies distances from this grob to other breakable items, using the format:

  >     '((break-align-symbol . (spacing-style . space))
  >       (break-align-symbol . (spacing-style . space))
  >       ...)

  Standard choices for `break-align-symbol` are listed in break-alignment-interface. Additionally, three special break-align symbols available to `space-alist` are:

  > `first-note`

  >   used when the grob is just left of the first note on a line

  > `next-note`

  >   used when the grob is just left of any other note; if not set, the value of `first-note` gets used

  > `right-edge`

  >   used when the grob is the last item on the line (only compatible with the `extra-space` spacing style)

  Choices for `spacing-style` are:

  > `extra-space`

  >   Put this much space between the two grobs. The space is stretchable when paired with `first-note` or `next-note`; otherwise it is fixed.

  > `minimum-space`

  >   Put at least this much space between the left sides of both grobs, without allowing them to collide. The space is stretchable when paired with `first-note` or `next-note`; otherwise it is fixed. Not compatible with `right-edge`.

  > `fixed-space`

  >   Only compatible with `first-note` and `next-note`. Put this much fixed space between the grob and the note.

  > `minimum-fixed-space`

  >   Only compatible with `first-note` and `next-note`. Put at least this much fixed space between the left side of the grob and the left side of the note, without allowing them to collide.

  > `semi-fixed-space`

  >   Only compatible with `first-note` and `next-note`. Put this much space between the grob and the note, such that half of the space is fixed and half is stretchable.

  Rules for this spacing are much more complicated than this. See [Wanske] page 126–134, [Ross] page 143–147.

`stencil` (stencil):

  `ly:bar-line::print`

  The symbol to print.

`thick-thickness` (number):

  `6.0`

  Thickness of the thick line in a bar line, expressed as a multiple of the default staff-line thickness (i.e., the visual output is not influenced by changes to `Staff.StaffSymbol.thickness`).

`Y-extent` (pair of numbers):

  `#<unpure-pure-container #<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`.

This object is of class Item (characterized by `item-interface`).

#### LilyPond – Internals Reference v2.24.4 (stable-branch).