Skip to content

All Options

All options below can be passed to examst-set().

TypeDefault
boolfalse

Whether to display correct answers, solutions, and filled score cells. Toggle this to generate an answer key from the same source document.

TypeDefault
function

A function (counter) => content that formats the question number. Receives the question-number counter.

#examst-set(
  render-question-counter: it => [
    #let depth = it.get().len()
    #let last = it.get().last()
    #if depth == 1 { numbering("1.", last) }
    #if depth == 2 { numbering("(a)", last) }
  ],
)

#question(points: 5)[Top-level question.]
#question()[
  Parent
  #question(points: 3)[Sub-part a]
  #question(points: 3)[Sub-part b]
]
TypeDefault
str or function"parenthesized"

How points are formatted next to questions.

Presets: "parenthesized", "bracketed", "boxed"

Or provide a custom (points-dict) => content function.

#examst-set(
  render-question-counter: it => numbering("1.", it.get().last()),
  render-points: "boxed",
)

#question(points: 10)[Boxed points style.]
TypeDefault
str or function"inline"

Where points appear relative to the question.

PresetDescription
"inline"After the counter, before the body
"before-counter"Before the counter
"after-body"At the end of the question
"left-margin" / "right-margin"Placed in the page margin
"two-sided" / "two-sided-reversed"Alternates margins on odd/even pages
TypeDefault
int or none1

Default column count for multi-choice layouts. 1 = vertical list, none = inline/wrapping, > 1 = grid.

TypeDefault
str or function"bubble"

Default marker style. Presets: "bubble", "bubble-letter", "checkbox", "checkbox-letter", "none".

TypeDefault
str"A"

Numbering pattern for choice labels (passed to numbering()).

TypeDefault
function

Function applied to correct-answer text when show-answers is true.

TypeDefault
str, array, or nonenone

Font for marker letters. none inherits the document font.

TypeDefault
content or none[*Solution:* ]

Content prepended to printed solutions. Set to none to disable.

TypeDefault
function

Function applied to solution body text when printed.

TypeDefault
str, dictionary, or function"boxed"

How solutions are framed. Presets: "boxed", "shaded", "none". Also accepts a dictionary of block() keys or a (content) => content function.

TypeDefault
str or function"lines"

Fill pattern for answer spaces. Presets: "lines", "grid", "none". Or a (height) => content function.

TypeDefault
length2in

Default height for answer spaces.

TypeDefault
auto, length, or functionauto

Width of fill-in-the-blank lines. auto measures the answer content.