Cover pages
A cover page is ordinary content placed before the first question. Examy provides #maketitle(), #name-block(), and #points-table(), which may be used to construct a typical cover page.

examples/final-exam.typ.Title blocks
A #maketitle() renders the exam’s details, which are set with the global config. It includes the institution, exam-name, term, and duration. Each detail can be overridden by passing arguments directly to #maketitle() (e.g. #maketitle(term: [Summer 2026])).
The exam’s duration can be a Typst duration such as duration(minutes: 150), or content.
#show: exam.with(
institution: [University of Examples],
exam-name: [MAT 101 Final Exam],
term: [Winter 2026],
duration: duration(minutes: 150),
)
#maketitle()#import "@preview/examy:1.1.0": *
#show: exam.with(
institution: [University of Examples],
exam-name: [MAT 101 Final Exam],
term: [Winter 2026],
duration: duration(minutes: 150),
)
#maketitle()Name blocks
A #name-block() renders a fill-in block, with a Name and a Student ID row by default.
Customizing
Name blocks can be customized by setting the fields: (..) argument. The fields argument expects an array of content or dictionaries consisting of (prefix: .., suffix: ..). (prefix: .., suffix: ..) items will show before and after an underline.
#set text(font: "DejaVu Sans Mono")
// The default block: a Name row and a Student ID row.
#name-block()
#v(1.5em)
// Custom rows.
#name-block(fields: (
(prefix: [#text(size: .85em)[(Given then Family)] \ NAME:]),
(prefix: [Email address:], suffix: [`@university.edu`]),
(prefix: [Student ID:]),
{
set align(center)
text(size: .85em)[_Write legibly and darkly._]
},
))#import "@preview/examy:1.1.0": *
#set text(font: "DejaVu Sans Mono")
// The default block: a Name row and a Student ID row.
#name-block()
#v(1.5em)
// Custom rows.
#name-block(fields: (
(prefix: [#text(size: .85em)[(Given then Family)] \ NAME:]),
(prefix: [Email address:], suffix: [`@university.edu`]),
(prefix: [Student ID:]),
{
set align(center)
text(size: .85em)[_Write legibly and darkly._]
},
))Presets
Institution-specific presets are available in presets. For example, the University of Toronto standard can be typeset with #name-block(fields: presets.utoronto.name-fields).
Putting together a cover page
With #show: exam at the top of the document, the cover page is part of the exam, so the options given to the exam apply to it too.
#show: exam.with(
institution: [University of Examples],
exam-name: [MAT 101 Final Exam],
term: [Winter 2026],
duration: duration(minutes: 150),
)
// The title and name blocks in the monospaced font bundled with Typst;
// the questions keep the document's font.
#{
set text(font: "DejaVu Sans Mono")
maketitle()
name-block(fields: (
(prefix: [#text(size: .85em)[(Given then Family)] \ NAME:]),
// ..more fields
))
}
#underline[_Instructions:_]
- Fill out your name and student information at the top of this
page.
- Answer each question in the box provided; work outside the
boxes will not be graded.
- No calculators or other aids are permitted.
#v(1fr)
#align(center, points-table())
#pagebreak()
#question[..]The repository’s examples include a minimal quiz, a complete exam with custom name fields, and an exam using the University of Toronto preset.