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 | ![]() Table of Contents | ![]() 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
- Create a bibliography file (e.g., references.bib)
- Reference citations in your document:
According to @smith2022, the results show...
- 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:
- Fork the repository
- Create a branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/your-feature
) - Open a Pull Request
License
This template is provided under the MIT License.
Made with β€οΈ for Hochschule Emden/Leer students