An unofficial Monash-inspired presentation package for Typst. It is
intentionally thin: Touying remains the slide authoring system, while this
package supplies a theme aligned with the quarto-monash/presentation Typst
template, theorem-like environments styled with frame-it, and
Monash-inspired code blocks powered by zebraw.
Preview
The package ships with both a starter template and a full example deck:
template/main.typis the minimal starter used bytypst init.example/main.typis a fuller feature showcase and usage guide.thumbnail.pngis the template preview image used by the package manifest.
Usage
Create a deck from the template:
typst init @preview/unofficial-monash-touying:0.1.0 my-slides
Or import the package directly in an existing Touying deck:
#import "@preview/touying:0.7.3": *
#import themes.university: *
#import "@preview/unofficial-monash-touying:0.1.0": *
#let monash-titlegraphic = image(
"assets/monash-presentation/background/bg-02.png",
width: 100%,
height: 100%,
fit: "cover",
)
#show: monash-theme.with(
titlegraphic: monash-titlegraphic,
config-info(
title: [Presentation Title],
short-title: [Short Title],
subtitle: [Subtitle],
author: [Your Name],
institution: [Monash University],
date: datetime.today(),
),
)
#show: show-monash-frames
#title-slide()
= Section
== Slide Title
Use normal Touying content.
- Bullets receive Quarto Monash square markers.
- Nested bullets use triangle markers.
=== Content Heading
Level-three headings use Monash blue bold text.
#definition[Term][
A definition can be placed directly inside a slide.
]
```py
def mse(y, pred):
return ((y - pred) ** 2).mean()
```
Exports
monash-themeshow-monash-framesmonash-frame-stylemonash-accent-ruledefinitiontheoremprooflemmacorollaryremarknotewarning
The package does not provide custom slide wrappers. Use Touying’s own headings,
#slide, #pause, composers, and other presentation features directly.
Frame environments are numbered independently by environment type by default.
Use #show: show-monash-frames.with(numbering: false) in the preamble to hide
frame numbers.
For detailed API documentation, compile docs/reference.typ. The reference is
generated from Typst doc comments with @preview/tidy:0.4.3.
Local Development
Run:
./scripts/check.sh
The harness compiles the starter template, the example deck, the generated
tidy reference, and refreshes the thumbnail.
Design Notes
The default visual language follows the Typst implementation from
quarto-monash/presentation: a full-page title graphic, full-width Monash blue
slide title bars, orange square list markers, a light footer baseline, orange
footer progress, and a small grey slide number. The template vendors a
logo-free background PNG derived from that design under
template/assets/monash-presentation/.
Code blocks use the locked Typst Universe package @preview/zebraw:0.6.1 with
a Monash light code block style, and continue to work through ordinary fenced
raw blocks.
The starter deck does not bundle Monash logos, crests, or wordmarks. Users with
appropriate rights can pass their own logo through
monash-theme.with(logo: ...). The titlegraphic defaults to
assets/monash-presentation/background/bg-02.png, a logo-free variant used for
Quarto Monash visual alignment.
Credits
This project is an unofficial community package and is not affiliated with or endorsed by Monash University.
The visual direction and bundled logo-free presentation background asset are based on the Quarto Monash presentation template: https://github.com/quarto-monash/presentation. That project is distributed under the CC0 1.0 Universal public domain dedication. Monash names, logos, crests, wordmarks, and marks remain associated with Monash University and should be used according to the relevant brand guidance.
Typst Universe Submission Notes
Typst Universe packages are submitted through a pull request to
typst/packages under packages/preview/<package-name>/<version>. The package
manifest must include the package metadata, and template packages must define
[template] with path, entrypoint, and thumbnail.
For template packages, the template entrypoint must compile out of the box after
typst init; in particular, it should import this package with an absolute
package import such as @preview/unofficial-monash-touying:0.1.0 rather than a
relative path like ../lib.typ.
Before submitting, run ./scripts/check.sh. The script compiles the starter
template and example deck through a temporary local package path so the
absolute package imports are tested before publication.