### 3.1.98 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) (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) (close-to-edge-length . 2.5) (encompass-object-range-overshoot . 0.5) (slur-tie-extrema-min-distance . 0.2) (slur-tie-extrema-min-distance-penalty . 2))`

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

> `vertical-skylines` (pair of skylines):

>   `#<unpure-pure-container #<primitive-procedure ly:slur::vertical-skylines> #<primitive-procedure ly:grob::pure-simple-vertical-skylines-from-extents> >`

>   Two skylines, one above and one below this grob.

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

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

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

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

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