Function measure

Source
pub fn measure(
    engine: &mut Engine<'_>,
    context: Tracked<'_, Context<'_>>,
    span: Span,
    width: Smart<Length>,
    height: Smart<Length>,
    content: Content,
) -> SourceResult<Dict>
Expand description

Measures the layouted size of content.

The measure function lets you determine the layouted size of content. By default an infinite space is assumed, so the measured dimensions may not necessarily match the final dimensions of the content. If you want to measure in the current layout dimensions, you can combine measure and [layout].

ยงExample

The same content can have a different size depending on the [context] that it is placed into. In the example below, the [#content] is of course bigger when we increase the font size.

#let content = [Hello!]
#content
#set text(14pt)
#content

For this reason, you can only measure when context is available.

#let thing(body) = context {
  let size = measure(body)
  [Width of "#body" is #size.width]
}

#thing[Hey] \
#thing[Welcome]

The measure function returns a dictionary with the entries width and height, both of type [length].