SillyFreak / typst-scrutinize

Build exams, tests, etc. with Typst

Home Page:https://typst.app/universe/package/scrutinize

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Scrutinize

Scrutinize is a library for building exams, tests, etc. with Typst. It has three general areas of focus:

  • It helps with grading information: record the points that can be reached for each question and make them available for creating grading keys.
  • It provides a selection of question writing utilities, such as multiple choice or true/false questions.
  • It supports the creation of sample solutions by allowing to switch between the normal and "pre-filled" exam.

Right now, providing a styled template is not part of this package's scope. Also, visual customization of the provided question templates is currently nonexistent.

See the manual for details.

Example

This example can be found in the gallery. Here are some excerpts from it:

#import "@preview/scrutinize:0.3.0" as scrutinize: grading, task, solution, task-kinds
#import task-kinds: free-form, gap, choice
#import task: t

// ... document setup ...

#context {
  let ts = task.all(level: 2)
  let total = grading.total-points(ts)

  let grades = grading.grades(
    [F],
    0.6 * total,
    [D],
    0.7 * total,
    [C],
    0.8 * total,
    [B],
    0.9 * total,
    [A],
  )

  // ... show the grading key ...
}

// ...

= Basic competencies -- theoretical part B

#lorem(40)

== Writing
#t(category: "b", points: 4)
#lorem(30)

#free-form.lines(stretch: 180%, lorem(20))

== Multiple Choice
#t(category: "b", points: 2)
#lorem(30)

#{
  set align(center)
  choice.multiple((
    (lorem(3), true),
    (lorem(5), true),
    (lorem(4), false),
  ))
}

About

Build exams, tests, etc. with Typst

https://typst.app/universe/package/scrutinize

License:MIT License


Languages

Language:Typst 88.0%Language:Shell 8.5%Language:Just 3.4%