### 3.2.100 side-position-interface

Position a victim object (this one) next to other objects (the support). The property `direction` signifies where to put the victim object relative to the support (left or right, up or down?)

The routine also takes the size of the staff into account if `staff-padding` is set. If undefined, the staff symbol is ignored.

#### User settable properties:

> `add-stem-support` (boolean)

>   If set, the `Stem` object is included in this script’s support.

> `direction` (direction)

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

> `minimum-space` (dimension, in staff space)

>   Minimum distance that the victim should move (after padding).

> `horizon-padding` (number)

>   The amount to pad the axis along which a `Skyline` is built for the `side-position-interface`.

> `padding` (dimension, in staff space)

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

> `side-axis` (number)

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

> `slur-padding` (number)

>   Extra distance between slur and script.

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

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

> `use-skylines` (boolean)

>   Should skylines be used for side positioning?

#### Internal properties:

> `quantize-position` (boolean)

>   If set, a vertical alignment is aligned to be within staff spaces.

> `side-support-elements` (array of grobs)

>   The side support, an array of grobs.

This grob interface is used in the following graphical object(s): AccidentalSuggestion, AmbitusAccidental, Arpeggio, BarNumber, BassFigureAlignmentPositioning, ClefModifier, CombineTextScript, DoublePercentRepeatCounter, DynamicLineSpanner, Episema, Fingering, HorizontalBracket, InstrumentName, InstrumentSwitch, MeasureCounter, MeasureGrouping, MetronomeMark, MultiMeasureRestNumber, MultiMeasureRestText, OttavaBracket, PercentRepeatCounter, RehearsalMark, Script, SostenutoPedalLineSpanner, StanzaNumber, StringNumber, StrokeFinger, SustainPedalLineSpanner, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare, TextScript, TextSpanner, TrillPitchAccidental, TrillPitchGroup, TrillSpanner, UnaCordaPedalLineSpanner, VoltaBracket and VoltaBracketSpanner.

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