### 3.1.4 AccidentalSuggestion

AccidentalSuggestion objects are created by: Accidental_engraver.

Standard settings:

> `alteration` (number):

>   `accidental-interface::calc-alteration`

>   Alteration numbers for accidental.

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

> `glyph-name-alist` (list):

>   `'((0 . accidentals.natural) (-1/2 . accidentals.flat) (1/2 . accidentals.sharp) (1 . accidentals.doublesharp) (-1 . accidentals.flatflat) (3/4 . accidentals.sharp.slashslash.stemstemstem) (1/4 . accidentals.sharp.slashslash.stem) (-1/4 . accidentals.mirroredflat) (-3/4 . accidentals.mirroredflat.flat))`

>   An alist of key-string pairs.

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

>   `0`

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

> `script-priority` (number):

>   `0`

>   A key for determining the order of scripts in a stack, by being added to the position of the script in the user input, the sum being the overall priority. Smaller means closer to the head.

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

>   `0`

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

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

>   `0.25`

>   Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamics p and f) on their baselines.

> `stencil` (stencil):

>   `ly:accidental-interface::print`

>   The symbol to print.

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

>   `ly:accidental-interface::width`

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

> `X-offset` (number):

>   `#<simple-closure (#<primitive-generic +> #<simple-closure (#<primitive-procedure ly:self-alignment-interface::centered-on-x-parent>) > #<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-extent` (pair of numbers):

>   `#<unpure-pure-container #<primitive-procedure ly:accidental-interface::height> #<primitive-procedure ly:accidental-interface::pure-height> >`

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

> `Y-offset` (number):

>   `#<unpure-pure-container #<primitive-procedure ly:side-position-interface::y-aligned-side> #<primitive-procedure ly:side-position-interface::pure-y-aligned-side> >`

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

This object supports the following interface(s): accidental-interface, accidental-suggestion-interface, font-interface, grob-interface, item-interface, script-interface, self-alignment-interface and side-position-interface.

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