TypstDocumentation

eval

Evaluates a string as Typst code.

This function should only be used as a last resort.

Example

#eval("1 + 1") \
#eval("(1, 2, 3, 4)").len() \
#eval("*Markup!*", mode: "markup") \
Preview

Parameters
Question mark

source
str
RequiredPositional
Question mark

A string of Typst code to evaluate.

The code in the string cannot interact with the file system.

mode

The syntactical mode in which the string is parsed.

VariantDetails
"code"

Evaluate as code, as after a hash.

"markup"

Evaluate as markup, like in a Typst file.

"math"

Evaluate as math, as in an equation.

Default: "code"

View example
#eval("= Heading", mode: "markup")
#eval("1_2^3", mode: "math")
Preview

scope

A scope of definitions that are made available.

Default: (:)

View example
#eval("x + 1", scope: (x: 2)) \
#eval(
  "abc/xyz",
  mode: "math",
  scope: (
    abc: $a + b + c$,
    xyz: $x + y + z$,
  ),
)
Preview