Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8e3dbb3
[Typship] Add typst.toml
joshuabeny1999 May 8, 2026
a5cccb6
[Typship] Add LICENSE
joshuabeny1999 May 8, 2026
83c62e2
[Typship] Add layout/abstract.typ
joshuabeny1999 May 8, 2026
b0c4228
[Typship] Add layout/disclaimer.typ
joshuabeny1999 May 8, 2026
92c1bd2
[Typship] Add layout/writing-aids-directory.typ
joshuabeny1999 May 8, 2026
4c62b48
[Typship] Add layout/figures/unisg_logo.png
joshuabeny1999 May 8, 2026
b514936
[Typship] Add layout/titlepage.typ
joshuabeny1999 May 8, 2026
a18abd1
[Typship] Add template/metadata.typ
joshuabeny1999 May 8, 2026
73934d3
[Typship] Add template/content/abstract.typ
joshuabeny1999 May 8, 2026
bb759ca
[Typship] Add template/content/acknowledgement.typ
joshuabeny1999 May 8, 2026
78a584a
[Typship] Add template/content/writing-aids-directory.typ
joshuabeny1999 May 8, 2026
e9b6dd5
[Typship] Add template/content/appendix.typ
joshuabeny1999 May 8, 2026
d98ca6f
[Typship] Add template/content/02-content.typ
joshuabeny1999 May 8, 2026
908d0f6
[Typship] Add template/content/01-content.typ
joshuabeny1999 May 8, 2026
37e35e0
[Typship] Add template/thesis.typ
joshuabeny1999 May 8, 2026
fe0b564
[Typship] Add template/figures/sample_image.jpg
joshuabeny1999 May 8, 2026
92ceeff
[Typship] Add template/bibliography.bib
joshuabeny1999 May 8, 2026
c11a12c
[Typship] Add utils/todo.typ
joshuabeny1999 May 8, 2026
2d74df0
[Typship] Add utils/formfield.typ
joshuabeny1999 May 8, 2026
04bf6b2
[Typship] Add utils/print-pagebreak.typ
joshuabeny1999 May 8, 2026
0f3cf0c
[Typship] Add thesis-template.typ
joshuabeny1999 May 8, 2026
5e5b163
[Typship] Add README.md
joshuabeny1999 May 8, 2026
d36401f
[Typship] Add template-hsg.webp
joshuabeny1999 May 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
MIT License

Original Copyright (c) 2023 TUM Applied Software Engineering

Copyright (c) 2024 Joshua Beny Hürzeler

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

---

### Modifications made by Joshua Beny Hürzeler (2024)

This version of the template has been modified for use with the University of St. Gallen (HSG) thesis guidelines. The following changes were made:
- Removed not needed proposal and registration_certificate templates
- Adjusted the title page, meta data files, etc to fit the HSG guidelines
- Adjusted the readme file to reflect the changes made

---

### Third-Party Assets & Licensing Definitions

While the template code is licensed under the MIT License above, this repository contains assets subject to different license terms:

**1. Sample Photography**
The sample image(s) included in this template (e.g., in the `template/figures` directory) were sourced from **Pexels** and are provided under the **Pexels License** (CC0/Public Domain equivalent).
- They are free to use for personal and commercial projects.
- Attribution is not required but appreciated.
- You are free to replace these images with your own.

**2. University of St. Gallen (HSG) Logo**
The University of St. Gallen logo included in this template is a **Registered Trademark** of the University of St. Gallen.
- **Exclusion from MIT License:** This logo is **NOT** covered by the MIT License. You are not granted rights to modify, sell, or redistribute the logo as a standalone asset.
- **Usage Rights:** It is included in this package solely for the convenience of students writing theses or papers for the University of St. Gallen.
- **Trademark Compliance:** Users must ensure their use of the logo complies with the University of St. Gallen's Corporate Design guidelines.
40 changes: 40 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# thesis-template-typst
This repository provides a unofficial Typst template for writing your Bachelor's or Master's thesis at the HSG (University of St. Gallen). It includes a thesis template. For more information about writing a thesis at the HSG, please visit the [HSG Student Web (Login required)](https://universitaetstgallen.sharepoint.com/sites/PruefungenDE/SitePages/en/Master-Arbeiten.aspx?web=1).

**Note:** This is only a template. You have to adapt the template to your thesis and discuss the structure of your thesis with your supervisor!

---
## Guidelines

Please thorougly read the guidelines and hints on [website](https://www.unisg.ch/fileadmin/user_upload/HSG_ROOT/_Kernauftritt_HSG/Universitaet/Schools/SOM/Faculty/Chair_of_Organization_Studies/Guideline_HSG.pdf)

---
## Usage
You can use this template in the Typst web app by clicking "Start from template" on the dashboard and searching for `gallus-hsg`.

Locally, you can use the following command to start with this templates:

```
typst init @preview/gallus-hsg:1.1.0
```

### Set thesis metadata
Fill in your thesis details in the `metadata.typ` file:
* The language of the document (en or de)
* Title
* Subtitle
* Type of thesis (Bachelor's, Master's, etc.)
* Professor
* Your name (without e-mail address or matriculation number)
* Matriculation number
* The submission date

### Write your thesis
For the actual content of your thesis, there is a dedicated folder named `/content` which includes all the chapters and sections of your thesis.
You can add or remove chapters as needed (adapt the `thesis.typ` with the `#include(...)` accordingly).

---
## Further Resources

- [Typst Documentation](https://typst.app/docs/)
- [Typst Guide for LaTeX Users](https://typst.app/docs/guides/guide-for-latex-users/)
27 changes: 27 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/layout/abstract.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#let abstract(body, lang: "en") = {
let title = (en: "Abstract", de: "Zusammenfassung")

set page(
margin: (left: 2.5cm, right: 2.5cm, top: 2.5cm, bottom: 2.5cm),
numbering: none,
number-align: center,
)

let body-font = "Libertinus Serif"

set text(
font: body-font,
size: 12pt,
lang: lang
)

set par(
leading: 1em,
justify: true
)

// --- Abstract ---
align(top + center, text(font: body-font, 1em, weight: "semibold", title.at(lang)))

body
}
68 changes: 68 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/layout/disclaimer.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#let disclaimer(
title: "",
author: "",
language: "en",
submission-date: datetime,
) = {
set page(
margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm),
numbering: none,
number-align: center,
)

let body-font = "New Computer Modern"
let sans-font = "New Computer Modern Sans"

set text(
font: body-font,
size: 10pt,
lang: "en"
)

set par(leading: 1em)


// --- Disclaimer ---
v(10%)
let title = (en: "Declaration of Authorship", de: "Eigenständigkeitserklärung")
heading(title.at(language), numbering: none)
let disclaimer = (
en: [
«I hereby declare,
- that I have written this thesis independently,
- that I have written the thesis using only the aids specified in the index;
- that all parts of the thesis produced with the help of aids have been declared;
- that I have handled both input and output responsibly when using AI. I confirm that I have therefore only read in public data or data released with consent and that I have checked, declared and comprehensibly referenced all results and/or other forms of AI assistance in the required form and that I am aware that I am responsible if incorrect content, violations of data protection law, copyright law or scientific misconduct (e.g. plagiarism) have also occurred unintentionally;
- that I have mentioned all sources used and cited them correctly according to established academic citation rules;
- that I have acquired all immaterial rights to any materials I may have used, such as images or graphics, or that these materials were created by me;
- that the topic, the thesis or parts of it have not already been the object of any work or examination of another course, unless this has been expressly agreed with the faculty member in advance and is stated as such in the thesis;
- that I am aware of the legal provisions regarding the publication and dissemination of parts or the entire thesis and that I comply with them accordingly;
- that I am aware that my thesis can be electronically checked for plagiarism and for third-party authorship of human or technical origin and that I hereby grant the University of St. Gallen the copyright according to the Examination Regulations as far as it is necessary for the administrative actions;
- that I am aware that the University will prosecute a violation of this Declaration of Authorship and that disciplinary as well as criminal consequences may result, which may lead to expulsion from the University or to the withdrawal of my title.»

By submitting this thesis, I confirm through my conclusive action that I am submitting the Declaration of Authorship, that I have read and understood it, and that it is true.
],
de: [
«Ich erkläre hiermit,
- dass ich die vorliegende Arbeit eigenständig verfasst habe,
- dass ich die Arbeit nur unter Verwendung der im Verzeichnis angegebenen Hilfsmittel verfasst habe;
- dass alle mit Hilfsmitteln erbrachten Teile der Arbeit deklariert wurden;
- dass ich bei der Nutzung von KI verantwortungsvoll mit dem Input wie auch mit dem Output umgegangen bin. Ich bestätige, dass ich somit nur öffentliche oder per Einwilligung freigegebene Daten eingelesen und sämtliche Resultate und/oder andere Formen von KI-Hilfeleistungen in verlangter Form überprüft, deklariert und nachvollziehbar referenziert habe und ich mir bewusst bin, dass ich die Verantwortung trage, falls es auch unbeabsichtigt zu fehlerhaften Inhalten, zu Verstössen gegen das Datenschutzrecht, Urheberrecht oder zu wissenschaftlichem Fehlverhalten (z.B. Plagiate) gekommen ist;
- dass ich sämtliche verwendeten Quellen erwähnt und gemäss gängigen wissenschaftlichen Zitierregeln korrekt zitiert habe;
- dass ich sämtliche immateriellen Rechte an von mir allfällig verwendeten Materialien wie Bilder oder Grafiken erworben habe oder dass diese Materialien von mir selbst erstellt wurden;
- dass das Thema, die Arbeit oder Teile davon nicht bereits Gegenstand eines Leistungsnachweises einer anderen Veranstaltung oder Kurses waren, sofern dies nicht ausdrücklich mit der Referentin oder dem Referenten im Voraus vereinbart wurde und in der Arbeit ausgewiesen wird;
- dass ich mir über die rechtlichen Bestimmungen zur Publikation und Weitergabe von Teilen oder der ganzen Arbeit bewusst bin und ich diese entsprechend einhalte;
- dass ich mir bewusst bin, dass meine Arbeit elektronisch auf Plagiate und auf Drittautorschaft menschlichen oder technischen Ursprungs überprüft werden kann und ich hiermit der Universität St.Gallen laut Prüfungsordnung das Urheberrecht soweit einräume, wie es für die Verwaltungshandlungen notwendig ist;
- Dass ich mir bewusst bin, dass die Universität einen Verstoss gegen diese Eigenständigkeitserklärung verfolgt und dass daraus disziplinarische wie auch strafrechtliche Folgen resultieren können, welche zum Ausschluss von der Universität resp. zur Titelaberkennung führen können.»

Mit Einreichung der schriftlichen Arbeit stimme ich mit konkludentem Handeln zu, die Eigenständigkeitserklärung abzugeben, diese gelesen sowie verstanden zu haben und, dass sie der Wahrheit entspricht.
])
text(disclaimer.at(language))

v(15mm)
grid(
columns: 2,
gutter: 1fr,
"St. Gallen, " + submission-date.display("[day]/[month]/[year]"), author
)
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
68 changes: 68 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/layout/titlepage.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#let titlepage(
title: "",
subtitle: "",
type: "",
professor: "",
author: "",
matriculation-number: "",
submission-date: datetime,
abstract: "",
language: "en",
) = {
set page(
margin: (left: 2.5cm, right: 2.5cm, top: 2.5cm, bottom: 2.5cm),
numbering: none,
number-align: center,
)

let body-font = "Libertinus Serif"

set text(
font: body-font,
size: 12pt,
lang: language,
)

set par(leading: 0.5em)


// --- Title Page ---
align(center, image("figures/unisg_logo.png", width: 15%))
let universityName = (en: "University of St. Gallen", de: "Universität St. Gallen")
align(center, text(font: body-font, 18pt, weight: 500, upper(universityName.at(language))))
let universityHeader = (
en: "School of Management, Economics,\n Law, Social Sciences, International Affairs and Computer Science",
de: "Hochschule für Wirtschafts-, Rechts- und Sozialwissenschaften,\n Internationale Beziehungen und Informatik",
)
align(center, text(font: body-font, 11pt, weight: 500, universityHeader.at(language)))

v(1fr)
line(length: 100%, stroke: 0.5pt + gray)
align(center, text(font: body-font, 16pt, weight: 400, type))
align(center, text(font: body-font, 20pt, weight: 700, title))
align(center, text(font: body-font, 16pt, weight: 400, subtitle))
line(length: 100%, stroke: 0.5pt + gray)
v(1fr)


let submittedBy = (en: "Submitted by", de: "Eingereicht von")
let approvedBy = (en: "Approved on Application by:", de: "Genehmigt auf Antrag von:")
let submission-dateText = (en: "Date of Submission:", de: "Einreichungsdatum:")
align(
center,
text(font: body-font, 12pt, weight: 400, submittedBy.at(language) + ": \n" + author + "\n" + matriculation-number),
)
align(center, text(font: body-font, 12pt, weight: 400, approvedBy.at(language) + "\n" + professor))
v(5mm)
align(
center,
text(
font: body-font,
12pt,
weight: 400,
submission-dateText.at(language)
+ "\n"
+ submission-date.display("[day padding:zero].[month padding:zero].[year repr:full]"),
),
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#let writing-aids-directory(language: "en", body) = {
set page(
margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm),
numbering: none,
number-align: center,
)

let body-font = "New Computer Modern"
let sans-font = "New Computer Modern Sans"

set text(
font: body-font,
size: 12pt,
lang: "en"
)

set par(leading: 1em)

// --- AI Usage ---
let title = (en: "Directory of writing aids", de: "Verzeichnis der Schreibhilfsmittel")
heading(title.at(language), numbering: none)
v(12pt)

body
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/template/bibliography.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@book{bruegge2004object,
title = {Object Oriented Software Engineering Using UML, Patterns, and Java},
author = {Bruegge, Bernd and Dutoit, Allen H},
year = {2009},
publisher = {Prentice Hall}
}
15 changes: 15 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/template/content/01-content.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#import "@preview/gallus-hsg:1.1.0": *

= Heading 1 <chapter1>
== Heading 2
=== Heading 3
==== Heading 4
This is a biblography cite: #cite(<bruegge2004object>)

This is an image.
#figure(
image("../figures/sample_image.jpg"),
caption: "An matcha latte",
) <Figure1>

Can be referenced: @Figure1
13 changes: 13 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/template/content/02-content.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#import "@preview/gallus-hsg:1.1.0": *

= Heading 1
== Heading 2
=== Heading 3
==== Heading 4

There are also some utils. Like Todo:

#TODO("This is a todo")

Or formfield:
#formfield("Label", "Test", length: 3cm)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#import "@preview/gallus-hsg:1.1.0": *

#TODO[
1. *paragraph:* What is the motivation of your thesis? Why is it interesting from a scientific point of view? Which main problem do you like to solve?
2. *paragraph:* What is the purpose of the document? What is the main content, the main contribution?
3. *paragraph:* What is your methodology? How do you proceed?
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#import "@preview/gallus-hsg:1.1.0": *

First, I'd like to thank coffee for fueling my brain cells and making this thesis possible.

A big shoutout to my advisor for your patience and for not laughing (too hard) at my wild ideas.

To my family, your snack supplies and constant reminders to "just finish it already" were invaluable.

Finally, to my pet, your keyboard sit-ins ensured I took breaks, whether I wanted to or not.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#import "@preview/gallus-hsg:1.1.0": *
// USE == as Main Heading level 1
== First Supplemenentary Material
=== Subtitle
-- Supplementary Material --

== Second Supplement

== Third supplement
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#import "@preview/gallus-hsg:1.1.0": *

#TODO[
Update this paragraph to reflect the tools you used in your thesis. Please see Guide in #link("https://universitaetstgallen.sharepoint.com/sites/PruefungenDE/SitePages/ChatGPT.aspx")[StudentWeb] for more information. (HSG Account required)
]

In preparing this thesis, I utilized Grammarly for grammar and style correction across the Abstract, Introduction, and Conclusion sections, ensuring clarity and coherence in my writing. I used DeepL to enhance language quality and translate parts of the Literature Review. I used ChatGPT to generate initial drafts and expand on ideas in the Introduction and Discussion sections, providing valuable suggestions and examples. Additionally, I used GitHub Copilot to generate code snippets for the developed functionality and code snippets in the Methodology section.

#figure(
caption: "Directory of writing aids",
table(
columns: (1fr, 1fr, 1fr),
"Aid", "Usage / Application", "Affected Areas",
"ChatGPT 4.0",
[
- Brainstorming Structure
- Mindmaps
- Rewriting Text
],
[All chapters \ See Promt Dictionary \ \ @chapter1 #ref(<chapter1>, form: "page")],

"Grammarly",
[
- Grammar and Style Correction
- Clarity and Coherence
],
[Abstract, Introduction, Conclusion \ \ @chapter1 #ref(<chapter1>, form: "page") ],
),
)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions packages/preview/gallus-hsg/1.1.0/template/metadata.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Enter your thesis data here:
#let language = "en" // "en" or "de"
#let title = "Title of paper"
#let subtitle = "Subtitle of paper"
#let type = "Type of paper"
#let professor = "Name and full title of professor"
#let author = "First name Last name"
#let matriculation-number = "Matriculation number"
#let submission-date = datetime(day: 1, month: 1, year: 2024)
Loading
Loading