LilyPond Internals Reference: 3.1.12 BarNumber

### 3.1.12 BarNumber

BarNumber objects are created by: Bar_number_engraver.

Standard settings:

> `after-line-breaking` (boolean):

>   `ly:side-position-interface::move-to-extremal-staff`

>   Dummy property, used to trigger callback for `after-line-breaking`.

> `break-align-symbols` (list):

>   `'(left-edge staff-bar)`

>   A list of symbols that determine which break-aligned grobs to align this to. If the grob selected by the first symbol in the list is invisible due to break-visibility, we will align to the next grob (and so on). Choices are `left-edge`, `ambitus`, `breathing-sign`, `clef`, `staff-bar`, `key-cancellation`, `key-signature`, `time-signature`, and `custos`.

> `break-visibility` (vector):

>   `#(#f #f #t)`

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

> `direction` (direction):

>   `1`

>   If `side-axis` is `0` (or `#X`), then this property determines whether the object is placed `#LEFT`, `#CENTER` or `#RIGHT` with respect to the other object. Otherwise, it determines whether the object is placed `#UP`, `#CENTER` or `#DOWN`. Numerical values may also be used: `#UP`=`1`, `#DOWN`=`-1`, `#LEFT`=`-1`, `#RIGHT`=`1`, `#CENTER`=`0`.

> `font-family` (symbol):

>   `'roman`

>   The font family is the broadest category for selecting text fonts. Options include: `sans`, `roman`.

> `font-size` (number):

>   `-2`

>   The font size, compared to the ‘normal’ size. `0` is style-sheet’s normal size, `-1` is smaller, `+1` is bigger. Each step of 1 is approximately 12% larger; 6 steps are exactly a factor 2 larger. Fractional values are allowed.

> `non-musical` (boolean):

>   `#t`

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

> `outside-staff-priority` (number):

>   `100`

>   If set, the grob is positioned outside the staff in such a way as to avoid all collisions. In case of a potential collision, the grob with the smaller `outside-staff-priority` is closer to the staff.

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

>   `1.0`

>   Add this much extra space between objects that are next to each other.

> `self-alignment-X` (number):

>   `1`

>   Specify alignment of an object. The value `-1` means left aligned, `0` centered, and `1` right-aligned in X direction. Other numerical values may also be specified.

> `side-axis` (number):

>   `1`

>   If the value is `#X` (or equivalently `0`), the object is placed horizontally next to the other object. If the value is `#Y` or `1`, it is placed vertically.

> `stencil` (stencil):

>   `ly:text-interface::print`

>   The symbol to print.

> `X-offset` (number):

>   `#<simple-closure (#<primitive-generic +> #<simple-closure (#<primitive-procedure ly:break-alignable-interface::self-align-callback>) > #<simple-closure (#<primitive-procedure ly:self-alignment-interface::x-aligned-on-self>) >) >`

>   The horizontal amount that this object is moved relative to its X-parent.

> `Y-offset` (number):

>   `ly:side-position-interface::y-aligned-side`

>   The vertical amount that this object is moved relative to its Y-parent.

This object supports the following interface(s): break-alignable-interface, font-interface, grob-interface, item-interface, self-alignment-interface, side-position-interface and text-interface.

#### Internals Reference