Universe

Create project in app

Thesis template for Hochschule Bonn-Rhein-Sieg, based on Regeln für wissenschaftliche Arbeiten v9.2.1.

Minimal Example

#import "@preview/h-brs-thesis-unofficial:0.1.0": template

#show: template.with(
  title: "Titel der Arbeit",
  authors: "Max Mustermann",
  type-of-work: "Bachelorarbeit",
  date: "01. Januar 2026",
)

= Einleitung

Text...

Authors

A single author is passed as a string:

authors: "Max Mustermann",

Multiple authors are passed as an array:

authors: ("Max Mustermann", "Erika Musterfrau"),

Info

info accepts an array of (label, value) pairs and is rendered on the title page below the author list.

info: (
  ("Betreuer:in", "Prof. Dr. Erika Musterfrau"),
  ("Zweitgutachter:in", "Prof. Dr. Max Mustermann"),
),

Other Departments

The template is primarily aimed at the computer science department (Fachbereich Informatik), but works for any department by overriding the department and department-en parameters.

#show: template.with(
  // ...
  department: "Fachbereich Wirtschaftswissenschaften",
  department-en: "Department of Business Administration and Economics",
)

Language

The template defaults to German (lang: "de"). Set lang: "en" for an English thesis — all front matter labels (table of contents, list of figures, list of abbreviations, bibliography, statutory declaration) switch to English automatically, and hyphenation is adjusted accordingly.

#show: template.with(
  title: "My Thesis",
  authors: "Jane Doe",
  type-of-work: "Bachelor Thesis",
  date: "March 1, 2026",
  lang: "en",
)

Declaration

Set show-declaration: true to include a statutory declaration (Eidesstattliche Erklärung) in the front matter:

#show: template.with(
  // ...
  show-declaration: true,
)

List of Figures

The Abbildungsverzeichnis is automatically included in the front matter when at least 3 image figures appear in the document — override with force-list-of-figures: true. Use figure with kind: image (the default when wrapping an image()) and a caption:

#figure(
  image("diagram.png"),
  caption: [System architecture overview],
) <fig-architecture>

Header Title

By default, the page header displays the document title. Use header-title to override this behavior.

Short title — useful when the full title is too long for the header:

#show: template.with(
  title: "A Very Long and Descriptive Title That Does Not Fit in the Header",
  header-title: "Short Title",
  // ...
)

Hide the header — pass none or an empty string:

header-title: none,

Abbreviations

Abbreviations are managed by the abbr package.

Create an abbr.csv file

Each row defines one abbreviation:

API,Application Programming Interface
CSV,Comma-Separated Values
HTTP,Hypertext Transfer Protocol
REST,Representational State Transfer

Format per row:

  • short,long — singular only; plural defaults to appending “s”
  • short,long,long-plural — explicit plural form

Pass the file contents to the template

#show: template.with(
  abbr-csv-content: read("abbr.csv"),
  // ...
)

The template loads all abbreviations and expands them on first use in the body. The Abkürzungsverzeichnis is only rendered in the front matter when more than 3 abbreviations are actually used in the document — override with force-abbreviations: true.

3. Use abbreviations in the document

The @API is the primary interface.   // → "Application Programming Interface (API)" on first use
                                      // → "API" on subsequent uses

@API:s    // short form: "API"
@API:l    // long form: "Application Programming Interface (API)"

See the abbr package documentation for the full reference.

Credits

Derived from HochschuleB-R-S.svg by Hochschule Bonn-Rhein-Sieg, available on Wikimedia Commons.

DIN 1505-2 Citation Style

din-1505-2.csl is sourced from the Zotero Style Repository.