elisp: Specified Space
37.16.2 Specified Spaces
------------------------
To display a space of specified width and/or height, use a display
specification of the form ‘(space . PROPS)’, where PROPS is a property
list (a list of alternating properties and values). You can put this
property on one or more consecutive characters; a space of the specified
height and width is displayed in place of _all_ of those characters.
These are the properties you can use in PROPS to specify the weight of
the space:
‘:width WIDTH’
If WIDTH is a number, it specifies that the space width should be
WIDTH times the normal character width. WIDTH can also be a “pixel
width” specification (Pixel Specification).
‘:relative-width FACTOR’
Specifies that the width of the stretch should be computed from the
first character in the group of consecutive characters that have
the same ‘display’ property. The space width is the pixel width of
that character, multiplied by FACTOR. (On text-mode terminals, the
“pixel width” of a character is usually 1, but it could be more for
TABs and double-width CJK characters.)
‘:align-to HPOS’
Specifies that the space should be wide enough to reach HPOS. If
HPOS is a number, it is measured in units of the normal character
width. HPOS can also be a “pixel width” specification (Pixel
Specification).
You should use one and only one of the above properties. You can
also specify the height of the space, with these properties:
‘:height HEIGHT’
Specifies the height of the space. If HEIGHT is a number, it
specifies that the space height should be HEIGHT times the normal
character height. The HEIGHT may also be a “pixel height”
specification (Pixel Specification).
‘:relative-height FACTOR’
Specifies the height of the space, multiplying the ordinary height
of the text having this display specification by FACTOR.
‘:ascent ASCENT’
If the value of ASCENT is a non-negative number no greater than
100, it specifies that ASCENT percent of the height of the space
should be considered as the ascent of the space—that is, the part
above the baseline. The ascent may also be specified in pixel
units with a “pixel ascent” specification (Pixel
Specification).
Don’t use both ‘:height’ and ‘:relative-height’ together.
The ‘:width’ and ‘:align-to’ properties are supported on non-graphic
terminals, but the other space properties in this section are not.
Note that space properties are treated as paragraph separators for
the purposes of reordering bidirectional text for display.
Bidirectional Display, for the details.