LilyPond Internals Reference: 3.2.95 slur-interface

### 3.2.95 slur-interface

A slur. The following properties may be set in the `details` list.

`region-size`

  Size of region (in staff spaces) for determining potential endpoints in the Y direction.

`head-encompass-penalty`

  Demerit to apply when note heads collide with a slur.

`stem-encompass-penalty`

  Demerit to apply when stems collide with a slur.

`closeness-factor`

  Additional demerit used when scoring encompasses.

`edge-attraction-factor`

  Factor used to calculate the demerit for distances between slur endpoints and their corresponding base attachments.

`same-slope-penalty`

  Demerit for slurs with attachment points that are horizontally aligned.

`steeper-slope-factor`

  Factor used to calculate demerit only if this slur is not broken.

`non-horizontal-penalty`

  Demerit for slurs with attachment points that are not horizontally aligned.

`max-slope`

  The maximum slope allowed for this slur.

`max-slope-factor`

  Factor that calculates demerit based on the max slope.

`free-head-distance`

  The amount of vertical free space that must exist between a slur and note heads.

`absolute-closeness-measure`

  Factor to calculate demerit for variance between a note head and slur.

`extra-object-collision-penalty`

  Factor to calculate demerit for extra objects that the slur encompasses, including accidentals, fingerings, and tuplet numbers.

`accidental-collision`

  Factor to calculate demerit for `Accidental` objects that the slur encompasses. This property value replaces the value of `extra-object-collision-penalty`.

`extra-encompass-free-distance`

  The amount of vertical free space that must exist between a slur and various objects it encompasses, including accidentals, fingerings, and tuplet numbers.

`extra-encompass-collision-distance`

  This detail is currently unused.

`head-slur-distance-factor`

  Factor to calculate demerit for variance between a note head and slur.

`head-slur-distance-max-ratio`

  The maximum value for the ratio of distance between a note head and slur.

`free-slur-distance`

  The amount of vertical free space that must exist between adjacent slurs. This subproperty only works for `PhrasingSlur`.

`edge-slope-exponent`

  Factor used to calculate the demerit for the slope of a slur near its endpoints; a larger value yields a larger demerit.

#### User settable properties:

> `annotation` (string)

>   Annotate a grob for debug purposes.

> `avoid-slur` (symbol)

>   Method of handling slur collisions. Choices are `inside`, `outside`, `around`, and `ignore`. `inside` adjusts the slur if needed to keep the grob inside the slur. `outside` moves the grob vertically to the outside of the slur. `around` moves the grob vertically to the outside of the slur only if there is a collision. `ignore` does not move either. In grobs whose notational significance depends on vertical position (such as accidentals, clefs, etc.), `outside` and `around` behave like `ignore`.

> `control-points` (list)

>   List of offsets (number pairs) that form control points for the tie, slur, or bracket shape. For Béziers, this should list the control points of a third-order Bézier curve.

> `dash-definition` (pair)

>   List of `dash-elements` defining the dash structure. Each `dash-element` has a starting t value, an ending t-value, a `dash-fraction`, and a `dash-period`.

> `details` (list)

>   Alist of parameters for detailed grob behavior. More information on the allowed parameters for a grob can be found by looking at the top of the Internals Reference page for each interface having a `details` property.

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

> `eccentricity` (number)

>   How asymmetrical to make a slur. Positive means move the center to the right.

> `height-limit` (dimension, in staff space)

>   Maximum slur height: The longer the slur, the closer it is to this height.

> `inspect-quants` (pair of numbers)

>   If debugging is set, set beam and slur quants to this position, and print the respective scores.

> `inspect-index` (integer)

>   If debugging is set, set beam and slur configuration to this index, and print the respective scores.

> `line-thickness` (number)

>   The thickness of the tie or slur contour.

> `positions` (pair of numbers)

>   Pair of staff coordinates `(left . right)`, where both left and right are in `staff-space` units of the current staff. For slurs, this value selects which slur candidate to use; if extreme positions are requested, the closest one is taken.

> `ratio` (number)

>   Parameter for slur shape. The higher this number, the quicker the slur attains its `height-limit`.

> `thickness` (number)

>   Line thickness, generally measured in `line-thickness`.

#### Internal properties:

> `encompass-objects` (array of grobs)

>   Objects that a slur should avoid in addition to notes and stems.

> `note-columns` (array of grobs)

>   An array of `NoteColumn` grobs.

This grob interface is used in the following graphical object(s): PhrasingSlur and Slur.

#### Internals Reference