Universe
Create project in app

Typst License Status

A clean, professional Typst template for academic writing at Hochschule Emden/Leer. The template supports multiple authors, custom document types, and follows academic formatting standards.

This is an unofficial template. It is not affiliated with Hochschule Emden/Leer.

Acknowledgments

This template is heavily inspired by HAW-Hamburg-Typst-Template created by Lasse Rosenow. Many thanks to Lasse for creating such an excellent foundation that this project builds upon.

Features

  • πŸ“ Support for multiple authors and matriculation numbers
  • 🏒 Company and supervisor information
  • πŸ“š Automatic table of contents, list of figures, and tables
  • πŸ“Š Properly styled headings, figures, and tables
  • πŸ”€ Multilingual support (English and German)
  • πŸ“„ Declaration of independent processing

Example

Here are some sample pages of what the final document would look like if created using this template:

Abstract Page Example

Abstract Page

Table of Contents Example

Table of Contents

Content Page Example

Content Page

Usage

You can use this template in several ways:

Via the Typst Package Registry (Recommended)

Just add the following code to your Typst document:

#import "@preview/ostfriesen-layout:0.1.0": thesis

#show: thesis.with(
  // Your configuration here
)

Configuration Options

The template provides numerous configuration options to customize your document:

Attribute Type Default Required Description
Document Basics
title string none required The title of your document
authors array or string () required Author names (single author or multiple)
matriculation-numbers array or string () optional Student matriculation numbers
date string or date none required Publication date (e.g., β€œMay 2025” or datetime object)
document-type string none required Type of document (e.g., β€œBachelor Thesis”, β€œMaster Thesis”)
University Information
faculty string none required Faculty name
department string none required Department name
course-of-studies string none optional Course of studies name
Supervision Details
supervisor1 string none required First/primary supervisor
supervisor2 string none optional Second supervisor
supervisor3 string none optional Third supervisor
Company Information
company string none optional Company name (for industry collaborations)
company-supervisor string none optional Company supervisor name
Content Metadata
abstract content none optional Document abstract
keywords array or string () optional Keywords related to the document
Document Settings
include-declaration boolean true optional Include declaration of independent processing
lang string β€œen” optional Document language: β€œen” (English) or β€œde” (German)
Typography Settings
font string β€œNew Computer Modern” optional Font family
font-size length 11pt optional Base font size
line-spacing float 1.5 optional Line spacing multiplier
Layout Settings
lower-chapter-headings boolean false optional Reduce spacing for level-1-headings
Code Highlighting
enable-code-highlighting boolean true optional Enable syntax highlighting for code blocks

Usage Examples

Basic Document Setup (click to expand)
#show: thesis.with(
  title: "Implementation of an Advanced Machine Learning Algorithm",
  authors: "John Doe",
  matriculation-numbers: "123456",
  date: "May 2025", 
  document-type: "Master Thesis",
  faculty: "Faculty of Technology",
  department: "Computer Science",
  supervisor1: "Prof. Dr. Jane Smith"
)
Multiple Authors and University Details
#show: thesis.with(
  title: "Blockchain Technologies for Supply Chain Management",
  authors: ("John Doe", "Jane Smith"),
  matriculation-numbers: ("123456", "789012"),
  date: datetime(year: 2025, month: 5, day: 11),
  document-type: "Group Project Report",
  
  faculty: "Faculty of Business Studies",
  department: "Business Informatics",
  course-of-studies: "Digital Business Management",
  
  supervisor1: "Prof. Dr. First Supervisor",
  supervisor2: "Second Supervisor"
)
Industry Collaboration Project
#show: thesis.with(
  title: "Development of an IoT Solution for Smart Manufacturing",
  authors: "John Doe",
  matriculation-numbers: "123456",
  date: "May 2025",
  document-type: "Bachelor Thesis",
  
  faculty: "Faculty of Engineering",
  department: "Electrical Engineering",
  course-of-studies: "Embedded Systems",
  
  supervisor1: "Prof. Dr. Academic Supervisor",
  company: "TechCorp GmbH",
  company-supervisor: "Dr. Industry Expert"
)

Document Structure

Headings

Use Typst’s standard heading syntax:

= Main Heading (Chapter)
== Second-level Heading (Section)
=== Third-level Heading (Subsection)
Figures and Images
#figure(
  image("path/to/image.png", width: 80%),
  caption: [This is a caption for the figure.]
) <fig-label>

// Reference the figure in text
See @fig-label for details.
Tables
#figure(
  table(
    columns: (auto, auto, auto),
    [*Header 1*], [*Header 2*], [*Header 3*],
    [Row 1, Col 1], [Row 1, Col 2], [Row 1, Col 3],
    [Row 2, Col 1], [Row 2, Col 2], [Row 2, Col 3],
  ),
  caption: [Sample table with data.]
) <table-label>

// Reference the table in text
As shown in @table-label...
Citations and Bibliography
  1. Create a bibliography file (e.g., references.bib)
  2. Reference citations in your document: According to @smith2022, the results show...
  3. Add the bibliography at the end of your document
#pagebreak()
#import "lib/pages/translations.typ": translations  
#let t = translations.at("en")  // "en" for English, "de" for German
#heading(t.at("bibliography"), numbering: none, outlined: true)
#bibliography("references.bib", title: none)
Using Glossary Terms

Reference glossary terms in your document:

// Reference a glossary term
The @algorithm is efficient.

// Or use functions for more control
The #gls("algorithm") is efficient.
These #glspl("cpu") are powerful.

To manually include a glossary section:

#pagebreak()
#heading("Glossary", numbering: none, outlined: true)
#import "lib/pages/glossary.typ": glossary_entries
#print-glossary(glossary_entries, show-all: true)

File Organization

For larger documents, we recommend organizing your project files in a modular structure like the provided example:

project/
β”œβ”€β”€ main.typ                # Main document that imports template and includes chapter files
β”œβ”€β”€ references.bib          # Bibliography file
β”œβ”€β”€ assets/
β”‚   └── images/             # Images and other media
└── chapters/
    β”œβ”€β”€ introduction.typ    # Each chapter in a separate file
    β”œβ”€β”€ background.typ
    └── ...

Requirements

  • Typst 0.13.1 or higher
  • New Computer Modern font

Contributing

Contributions to improve the template are welcome! To contribute:

  1. Fork the repository
  2. Create a branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

License

This template is provided under the MIT License.


Made with ❀️ for Hochschule Emden/Leer students