A 16:9 presentation template for BIPS using Typst and Touying. Based on the institutional style from bips-beamer.
Quick Start
#import "@preview/bypst:0.2.0": *
#show: bips-theme
#title-slide(
title: "Your Presentation Title",
author: "Your Name",
institute: bips-en, // or bips-de
date: datetime.today().display(),
)
#bips-slide(title: "Introduction")[
- Bullet points
- *Bold* and _italic_ in BIPS blue
- Math: $s^2 = 1/(n-1) sum_(i=1)^n (x_i - overline(x))^2$
#pause
- Revealed on click
]
#thanks-slide(
contact-author: "Your Name",
email: "your.email@leibniz-bips.de",
qr-url: "https://link-to-slides.example.com",
)
Installation
Available from the Typst package registry — no installation needed:
#import "@preview/bypst:0.2.0": *
Local development
To work on the theme itself, clone and install locally:
git clone https://github.com/bips-hb/bips-typst.git
cd bips-typst
just install
Then use the local import instead:
#import "@local/bypst:0.2.0": *
Slide Types
| Function | Purpose |
|---|---|
#title-slide() |
Opening slide with author, institute, date |
#bips-slide() |
Content slide with optional title/subtitle |
#section-slide() |
Section divider |
#thanks-slide() |
Closing slide with contact info and optional QR code |
#bibliography-slide[] |
References |
#empty-slide[] |
Blank slide without branding |
Content slide options
#bips-slide(
title: "Slide Title",
subtitle: "Optional Subtitle",
content-align: center + horizon, // center content vertically and horizontally
text-size: 16pt, // override text size for this slide
)[
Content here
]
content-align accepts any Typst alignment: center, horizon, center + horizon, etc.
Multi-author title slides
#title-slide(
title: "Collaborative Research",
authors: (
"Jane Doe" + inst(1,2),
"John Smith" + inst(1),
),
institutes: (
"BIPS",
"University of Bremen",
),
)
Section slides
#section-slide("Results")
#section-slide("Methods", show-logo: false)
Layout Helpers
// Two columns (equal by default)
#two-columns[Left][Right]
#two-columns(columns: (2fr, 1fr), gutter: 2em)[Wide][Narrow]
// Three columns
#three-columns[A][B][C]
Utilities
Color helpers
#blue[text] #orange[text] #green[text] #gray[text]
Callout boxes
#callout(type: "note")[Information]
#callout(type: "tip")[Helpful hint]
#callout(type: "warning")[Caution]
#callout(type: "important")[Critical]
#callout(type: "tip", title: "Custom Title")[With a title]
Compact list spacing
For dense layouts (e.g. multi-column slides), use #compact to tighten list spacing:
#compact[
- Item A
- Item B
- Item C
]
Adjustable: #compact(spacing: 0.2em, leading: 0.2em)[...]
For lighter adjustments, #set list(spacing: 0.4em) works as a local override.
Vertical fill
#vfill // shorthand for v(1fr)
Institutional names
#bips-en // Leibniz Institute for Prevention Research and Epidemiology — BIPS
#bips-de // Leibniz-Institut für Präventionsforschung und Epidemiologie — BIPS
Animations
The theme re-exports Touying’s animation functions:
#pause // reveal on click
#uncover(2)[On second click] // show on specific subslide
#only(1)[First click only] // only on specific subslide
#alternatives[Version A][Version B] // swap content
Note: Do not use #pause inside #two-columns / #three-columns. Use #uncover() or #only() instead.
Global Customization
Logo
The theme ships with a placeholder logo. Replace it with your own:
#show: bips-theme.with(
logo: image("my-logo.png"),
)
Set logo: none to hide the logo entirely.
Fonts and sizes
#show: bips-theme.with(
aspect-ratio: "16-9", // default
// Font families (string or array with fallbacks)
font: "Fira Sans",
code-font: "Fira Mono",
math-font: "New Computer Modern Math",
// Font sizes
base-size: 20pt, // scales headings, small/tiny proportionally
slide-title-size: 28pt, // explicit pt overrides take precedence
slide-subtitle-size: 22pt,
heading-1-size: 22pt,
heading-2-size: 20pt,
heading-3-size: 18pt,
small-size: 16pt,
tiny-size: 14pt,
page-number-size: 16pt,
code-block-scale: 0.9,
code-inline-scale: 1,
)
Text size utilities
#huge[Largest text for emphasis]
#large[Larger text for subheadings]
#small[Smaller text for captions or notes]
#tiny[Even smaller text for fine print]
Examples
The gallery/ directory contains example presentations:
basic.typ— starter templatecomplete.typ— comprehensive feature showcasebibliography.typ— citations and referencesaspect-ratio.typ— 4:3 formatlecture-demo.typ— realistic 100-slide scale test
Development
just install # install package locally
just all # compile all gallery demos
just test # run test suite
just clean # remove generated PDFs
After editing theme files, run just install before compiling.
Project Structure
bypst.typ # package entrypoint
theme.typ # theme implementation
logo.png # placeholder logo (replace with your own)
typst.toml # package metadata
template/ # Typst Universe templates
gallery/ # example presentations
tests/ # test suite
Fonts
The theme uses Fira Sans for body text and Fira Mono for code, with automatic fallbacks if they are not installed:
| Role | Preferred | Fallback |
|---|---|---|
| Body text | Fira Sans | Noto Sans |
| Code | Fira Mono | DejaVu Sans Mono (Typst built-in) |
| Math | New Computer Modern Math | (Typst built-in) |
For the best results, install the Fira fonts. Override with the font:, code-font:, and math-font: parameters on bips-theme().
Requirements
- Typst >= 0.12.0
- Dependencies: touying 0.7.1, codetastic 0.2.2 (resolved automatically)
License
MIT