### 3.1.108 Stem

Stem objects are created by: Stem_engraver.

Standard settings:

> `beamlet-default-length` (pair):

>   `'(1.1 . 1.1)`

>   A pair of numbers. The first number specifies the default length of a beamlet that sticks out of the left hand side of this stem; the second number specifies the default length of the beamlet to the right. The actual length of a beamlet is determined by taking either the default length or the length specified by `beamlet-max-length-proportion`, whichever is smaller.

> `beamlet-max-length-proportion` (pair):

>   `'(0.75 . 0.75)`

>   The maximum length of a beamlet, as a proportion of the distance between two adjacent stems.

> `default-direction` (direction):

>   `ly:stem::calc-default-direction`

>   Direction determined by note head positions.

> `details` (list):

>   `'((lengths 3.5 3.5 3.5 4.25 5.0 6.0) (beamed-lengths 3.26 3.5 3.6) (beamed-minimum-free-lengths 1.83 1.5 1.25) (beamed-extreme-minimum-free-lengths 2.0 1.25) (stem-shorten 1.0 0.5))`

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

> `duration-log` (integer):

>   `stem::calc-duration-log`

>   The 2-log of the note head duration, i.e., `0` = whole note, `1` = half note, etc.

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

>   `#<unpure-pure-container #<primitive-procedure ly:stem::calc-length> #<primitive-procedure ly:stem::pure-calc-length> >`

>   User override for the stem length of unbeamed stems.

> `neutral-direction` (direction):

>   `-1`

>   Which direction to take in the center of the staff.

> `stem-begin-position` (number):

>   `#<unpure-pure-container #<primitive-procedure ly:stem::calc-stem-begin-position> #<primitive-procedure ly:stem::pure-calc-stem-begin-position> >`

>   User override for the begin position of a stem.

> `stencil` (stencil):

>   `ly:stem::print`

>   The symbol to print.

> `thickness` (number):

>   `1.3`

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

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

>   `ly:stem::width`

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

> `X-offset` (number):

>   `ly:stem::offset-callback`

>   The horizontal amount that this object is moved relative to its X-parent.

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

>   `#<unpure-pure-container #<primitive-procedure ly:stem::height> #<primitive-procedure ly:stem::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:staff-symbol-referencer::callback> >`

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

This object supports the following interface(s): grob-interface, item-interface and stem-interface.

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