Unofficial Typst + Polylux presentation template in the style of the University of Münster Corporate Design (Schloss Blue). The template aims to be visually close to the official style while intentionally not being an official university template. This package has been based on the modern-ovgu-fma-polylux package by Jonas Danker
License & Usage Restrictions
This project consists of distinct licensing parts covering the underlying code, the background images, and the visual corporate design. Please read carefully before using.
1. The Code (MIT License)
The underlying Typst code structure of this template is open-source. It is an adaptation of original work by Jonas Danker. The code itself is freely available under the MIT License.
2. Background Images (MIT License)
To ensure this package remains highly accessible and conforms with open-source package requirements, the proprietary background images from the original university template have been replaced with copyright-free images of the Münster Schloss (Schloss_Left.jpeg and Schloss_Right.jpeg located in the assets/ directory).
These specific images are explicitly included under the permissive MIT License mentioned above and are completely free to use, copy, and distribute.
3. Corporate Design & Logos (STRICTLY RESTRICTED)
** Important:** The visual output of this template—including the layout, color schemes, line placements, typography choices, and all SVG logo files in the assets/ directory—constitute the Corporate Design and Trademarks of the University of Münster.
According to the university’s usage guidelines:
- These specific design elements may ONLY be used within the scope of studies and university projects (“in the context of studies and university projects”).
- The Corporate Design and institutional logos are strictly excluded from the MIT License.
- You may not use the visual output of this template for commercial purposes or non-university projects, nor may you distribute these restricted assets under an open-source license.
Quick Start
Initialize a project from Typst Universe:
typst init @preview/uni-ms-pres-schloss:0.1.0
Or import the package directly:
#import "@preview/uni-ms-pres-schloss:0.1.0": *
#show: pres-theme.with(
author: [Firstname Lastname],
title: [Presentation Title],
date: ez-today.today(lang: "en"),
text-lang: "en",
)
#title-slide(subtitle: [A possible subtitle])
Polylux documentation: https://polylux.dev/book/
Theme Parameters
pres-theme supports these parameters:
#show: pres-theme.with(
text-font: "Carlito",
text-lang: "en", // "en" and "de" are currently supported in defaults
text-size: 20pt,
code-font: "JetBrains Mono",
author: [],
title: [],
date: [],
progressbar: true,
)
author, title, and date are reused in the page header/footer and on #title-slide unless explicitly overridden there.
Fonts
For the closest visual match to the university style, use text font Carlito (https://fonts.google.com/specimen/Carlito)
The default code font is set as JetBrains Mono (https://fonts.google.com/specimen/JetBrains+Mono) but only due to personal liking.
The theme includes fallback fonts, so it still compiles when those fonts are unavailable.
In the web version you can simply copy the .ttf files into the project and they should be recognized automaticly.
For further help or to setup the fonts with a local compiler, please see the typst font parameter documentation.
Local setups might need different configurations.
If these fonts are not to your liking you can easily replace them when calling
pres-theme(
...
text-font: "Carlito",
code-font: "JetBrains Mono",
...
)
Slide Types
Title Slide
![]()
#title-slide(
author: none,
date: none,
title: none,
subtitle: none,
max-width: 90%,
)
If author, date, or title stay none, values from pres-theme are used.
Standard Slide
#slide(
heading: none,
show-section: true,
block-height: none,
)[
// content
]
heading: slide title content.show-section: kept for API compatibility.block-height: main content area height (useful when footnotes are present).
Outline Slide

#outline-slide(
heading: none,
multipage: false,
items-per-page: 8,
)
Uses a language-aware default heading (Outline / Gliederung) if heading is none.
If multipage is set to true, the automatically breaks page when items-per-page items are reached. Otherwise, the text is scaled dynamically.
Header Slide

#header-slide registers the section for the outline automatically.
If you want to create a new section without it, use:
#toolbox.register-section(head)
Content Examples
Basic Slide

#slide(heading: [Basic Slide])[
#lorem(84)
]
Multi-Column Layout

#slide(heading: [Multi-column Slide])[
#toolbox.side-by-side()[#lorem(42)][#lorem(27)][#lorem(35)]
]
Code Slide

#slide(heading: [Code])[
```py
import torch
if (torch.cuda.is_available()):
{
print("cuda is there wohoo!")
}
break; # Oh no Java! // lelolalu
variable = variable * 100.000 +- >< | &&
```
]
Equations

#show: document => conf-equations(document)
#slide(heading: [How to use equations])[
You can define equations like this: $a + b != c$.
Only labeled equations are numbered:
$a^2 + b^2 = c^2$ <pythagoras>
The @pythagoras reference points to this equation.
]
Image + Footnote

#slide(block-height: 85%)[
#figure(
caption: [Example image#footnote([Thanks to #link("https://www.svgrepo.com/") for the inspiration and Florian Bohlken for this remade image])],
)[
#image("example-image.svg", height: 70%)
]
]
Bibliography Slide

#header-slide()[Bibliography]
#counter("logical-slide").step()
= Bibliography
#bibliography(
"example.bib",
style: "ieee",
)
Useful Commands
- Reveal content step by step:
#show: later - Disable animations for handouts:
#enable-handout-mode(true) - Find symbol commands by drawing them: https://detypify.quarticcat.com/