Skip to main content
Glama
layout.md2.34 kB
# Layout ## `layout` Provides access to the current outer container's (or page's, if none) dimensions (width and height). Accepts a function that receives a single parameter, which is a dictionary with keys `width` and `height`, both of type [`length`]. The function is provided [context], meaning you don't need to use it in combination with the `context` keyword. This is why [`measure`] can be called in the example below. ```example #let text = lorem(30) #layout(size => [ #let (height,) = measure( width: size.width, text, ) This text is #height high with the current page width: \ #text ]) ``` Note that the `layout` function forces its contents into a [block]-level container, so placement relative to the page or pagebreaks are not possible within it. If the `layout` call is placed inside a box with a width of `{800pt}` and a height of `{400pt}`, then the specified function will be given the argument `{(width: 800pt, height: 400pt)}`. If it is placed directly into the page, it receives the page's dimensions minus its margins. This is mostly useful in combination with [measurement]($measure). To retrieve the _remaining_ height of the page rather than its full size, you can wrap your `layout` call in a `{block(height: 1fr)}`. This works because the block automatically grows to fill the remaining space (see the [fraction] documentation for more details). ```example #set page(height: 150pt) #lorem(20) #block(height: 1fr, layout(size => [ Remaining height: #size.height ])) ``` You can also use this function to resolve a [`ratio`] to a fixed length. This might come in handy if you're building your own layout abstractions. ```example #layout(size => { let half = 50% * size.width [Half a page is #half wide.] }) ``` Note that the width or height provided by `layout` will be infinite if the corresponding page dimension is set to `{auto}`. ## Parameters ### func *(required)* A function to call with the outer container's size. Its return value is displayed in the document. The container's size is given as a [dictionary] with the keys `width` and `height`. This function is called once for each time the content returned by `layout` appears in the document. This makes it possible to generate content that depends on the dimensions of its container. ## Returns - content

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FujishigeTemma/typst-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server