LilyPond Internals Reference: 3.1.94 Slur

### 3.1.94 Slur

Slur objects are created by: Slur_engraver.

Standard settings:

> `avoid-slur` (symbol):

>   `'inside`

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

>   `ly:slur::calc-control-points`

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

> `details` (list):

>   `'((region-size . 4) (head-encompass-penalty . 1000.0) (stem-encompass-penalty . 30.0) (closeness-factor . 10) (edge-attraction-factor . 4) (same-slope-penalty . 20) (steeper-slope-factor . 50) (non-horizontal-penalty . 15) (max-slope . 1.1) (max-slope-factor . 10) (free-head-distance . 0.3) (free-slur-distance . 0.8) (extra-object-collision-penalty . 50) (accidental-collision . 3) (extra-encompass-free-distance . 0.3) (extra-encompass-collision-distance . 0.8) (head-slur-distance-max-ratio . 3) (head-slur-distance-factor . 10) (absolute-closeness-measure . 0.3) (edge-slope-exponent . 1.7))`

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

>   `ly:slur::calc-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`.

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

>   `2.0`

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

> `line-thickness` (number):

>   `0.8`

>   The thickness of the tie or slur contour.

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

>   `1.5`

>   Try to make a spanner at least this long, normally in the horizontal direction. This requires an appropriate callback for the `springs-and-rods` property. If added to a `Tie`, this sets the minimum distance between noteheads.

> `ratio` (number):

>   `0.25`

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

> `spanner-id` (string):

>   `""`

>   An identifier to distinguish concurrent spanners.

> `springs-and-rods` (boolean):

>   `ly:spanner::set-spacing-rods`

>   Dummy variable for triggering spacing routines.

> `stencil` (stencil):

>   `ly:slur::print`

>   The symbol to print.

> `thickness` (number):

>   `1.2`

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

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

>   `ly:slur::height`

>   Hard coded extent in Y direction.

This object supports the following interface(s): grob-interface, slur-interface and spanner-interface.

#### Internals Reference