Skip to content

Commit 8b70e4c

Browse files
gallus-hsg:1.0.0 (#3094)
1 parent aab498c commit 8b70e4c

22 files changed

+646
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
MIT License
2+
3+
Original Copyright (c) 2023 TUM Applied Software Engineering
4+
5+
Copyright (c) 2024 Joshua Beny Hürzeler
6+
7+
Permission is hereby granted, free of charge, to any person obtaining a copy
8+
of this software and associated documentation files (the "Software"), to deal
9+
in the Software without restriction, including without limitation the rights
10+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
copies of the Software, and to permit persons to whom the Software is
12+
furnished to do so, subject to the following conditions:
13+
14+
The above copyright notice and this permission notice shall be included in all
15+
copies or substantial portions of the Software.
16+
17+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23+
SOFTWARE.
24+
25+
---
26+
27+
### Modifications made by Joshua Beny Hürzeler (2024)
28+
29+
This version of the template has been modified for use with the University of St. Gallen (HSG) thesis guidelines. The following changes were made:
30+
- Removed not needed proposal and registration_certificate templates
31+
- Adjusted the title page, meta data files, etc to fit the HSG guidelines
32+
- Adjusted the readme file to reflect the changes made
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# thesis-template-typst
2+
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).
3+
4+
**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!
5+
6+
---
7+
## Guidelines
8+
9+
Please thorougly read the guidelines and hints on [:wq
10+
website](https://www.unisg.ch/fileadmin/user_upload/HSG_ROOT/_Kernauftritt_HSG/Universitaet/Schools/SOM/Faculty/Chair_of_Organization_Studies/Guideline_HSG.pdf)
11+
12+
---
13+
## Usage
14+
You can use this template in the Typst web app by clicking "Start from template" on the dashboard and searching for `gallus-hsg`.
15+
16+
Locally, you can use the following command to start with this templates:
17+
18+
```
19+
typst init @preview/gallus-hsg:1.0.0
20+
```
21+
22+
### Set thesis metadata
23+
Fill in your thesis details in the `metadata.typ` file:
24+
* The language of the document (en or de)
25+
* Title
26+
* Subtitle
27+
* Type of thesis (Bachelor's, Master's, etc.)
28+
* Professor
29+
* Your name (without e-mail address or matriculation number)
30+
* Matriculation number
31+
* The submission date
32+
33+
### Write your thesis
34+
For the actual content of your thesis, there is a dedicated folder named `/content` which includes all the chapters and sections of your thesis.
35+
You can add or remove chapters as needed (adapt the `thesis.typ` with the `#include(...)` accordingly).
36+
37+
---
38+
## Further Resources
39+
40+
- [Typst Documentation](https://typst.app/docs/)
41+
- [Typst Guide for LaTeX Users](https://typst.app/docs/guides/guide-for-latex-users/)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#let abstract(body, lang: "en") = {
2+
let title = (en: "Abstract", de: "Zusammenfassung")
3+
4+
set page(
5+
margin: (left: 2.5cm, right: 2.5cm, top: 2.5cm, bottom: 2.5cm),
6+
numbering: none,
7+
number-align: center,
8+
)
9+
10+
let body-font = "Libertinus Serif"
11+
12+
set text(
13+
font: body-font,
14+
size: 12pt,
15+
lang: lang
16+
)
17+
18+
set par(
19+
leading: 1em,
20+
justify: true
21+
)
22+
23+
// --- Abstract ---
24+
align(top + center, text(font: body-font, 1em, weight: "semibold", title.at(lang)))
25+
26+
body
27+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#let disclaimer(
2+
title: "",
3+
author: "",
4+
language: "en",
5+
submission-date: datetime,
6+
) = {
7+
set page(
8+
margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm),
9+
numbering: none,
10+
number-align: center,
11+
)
12+
13+
let body-font = "New Computer Modern"
14+
let sans-font = "New Computer Modern Sans"
15+
16+
set text(
17+
font: body-font,
18+
size: 10pt,
19+
lang: "en"
20+
)
21+
22+
set par(leading: 1em)
23+
24+
25+
// --- Disclaimer ---
26+
v(10%)
27+
let title = (en: "Declaration of Authorship", de: "Eigenständigkeitserklärung")
28+
heading(title.at(language), numbering: none)
29+
let disclaimer = (
30+
en: [
31+
«I hereby declare,
32+
- that I have written this thesis independently,
33+
- that I have written the thesis using only the aids specified in the index;
34+
- that all parts of the thesis produced with the help of aids have been declared;
35+
- 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;
36+
- that I have mentioned all sources used and cited them correctly according to established academic citation rules;
37+
- 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;
38+
- 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;
39+
- 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;
40+
- 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;
41+
- 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.»
42+
43+
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.
44+
],
45+
de: [
46+
«Ich erkläre hiermit,
47+
- dass ich die vorliegende Arbeit eigenständig verfasst habe,
48+
- dass ich die Arbeit nur unter Verwendung der im Verzeichnis angegebenen Hilfsmittel verfasst habe;
49+
- dass alle mit Hilfsmitteln erbrachten Teile der Arbeit deklariert wurden;
50+
- 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;
51+
- dass ich sämtliche verwendeten Quellen erwähnt und gemäss gängigen wissenschaftlichen Zitierregeln korrekt zitiert habe;
52+
- 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;
53+
- 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;
54+
- dass ich mir über die rechtlichen Bestimmungen zur Publikation und Weitergabe von Teilen oder der ganzen Arbeit bewusst bin und ich diese entsprechend einhalte;
55+
- 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;
56+
- 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.»
57+
58+
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.
59+
])
60+
text(disclaimer.at(language))
61+
62+
v(15mm)
63+
grid(
64+
columns: 2,
65+
gutter: 1fr,
66+
"St. Gallen, " + submission-date.display("[day]/[month]/[year]"), author
67+
)
68+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#let titlepage(
2+
title: "",
3+
subtitle: "",
4+
type: "",
5+
professor: "",
6+
author: "",
7+
matriculation-number: "",
8+
submission-date: datetime,
9+
abstract: "",
10+
language: "en",
11+
) = {
12+
set page(
13+
margin: (left: 2.5cm, right: 2.5cm, top: 2.5cm, bottom: 2.5cm),
14+
numbering: none,
15+
number-align: center,
16+
)
17+
18+
let body-font = "Libertinus Serif"
19+
20+
set text(
21+
font: body-font,
22+
size: 12pt,
23+
lang: language,
24+
)
25+
26+
set par(leading: 0.5em)
27+
28+
29+
// --- Title Page ---
30+
align(center, image("/template/figures/unisg_logo.png", width: 15%))
31+
let universityName = (en: "University of St. Gallen", de: "Universität St. Gallen")
32+
align(center, text(font: body-font, 18pt, weight: 500, upper(universityName.at(language))))
33+
let universityHeader = (
34+
en: "School of Management, Economics,\n Law, Social Sciences, International Affairs and Computer Science",
35+
de: "Hochschule für Wirtschafts-, Rechts- und Sozialwissenschaften,\n Internationale Beziehungen und Informatik",
36+
)
37+
align(center, text(font: body-font, 11pt, weight: 500, universityHeader.at(language)))
38+
39+
v(1fr)
40+
line(length: 100%, stroke: 0.5pt + gray)
41+
align(center, text(font: body-font, 16pt, weight: 400, type))
42+
align(center, text(font: body-font, 20pt, weight: 700, title))
43+
align(center, text(font: body-font, 16pt, weight: 400, subtitle))
44+
line(length: 100%, stroke: 0.5pt + gray)
45+
v(1fr)
46+
47+
48+
let submittedBy = (en: "Submitted by", de: "Eingereicht von")
49+
let approvedBy = (en: "Approved on Application by:", de: "Genehmigt auf Antrag von:")
50+
let submission-dateText = (en: "Date of Submission:", de: "Einreichungsdatum:")
51+
align(
52+
center,
53+
text(font: body-font, 12pt, weight: 400, submittedBy.at(language) + ": \n" + author + "\n" + matriculation-number),
54+
)
55+
align(center, text(font: body-font, 12pt, weight: 400, approvedBy.at(language) + "\n" + professor))
56+
v(5mm)
57+
align(
58+
center,
59+
text(
60+
font: body-font,
61+
12pt,
62+
weight: 400,
63+
submission-dateText.at(language)
64+
+ "\n"
65+
+ submission-date.display("[day padding:zero].[month padding:zero].[year repr:full]"),
66+
),
67+
)
68+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#let writing-aids-directory(language: "en", body) = {
2+
set page(
3+
margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm),
4+
numbering: none,
5+
number-align: center,
6+
)
7+
8+
let body-font = "New Computer Modern"
9+
let sans-font = "New Computer Modern Sans"
10+
11+
set text(
12+
font: body-font,
13+
size: 12pt,
14+
lang: "en"
15+
)
16+
17+
set par(leading: 1em)
18+
19+
// --- AI Usage ---
20+
let title = (en: "Directory of writing aids", de: "Verzeichnis der Schreibhilfsmittel")
21+
heading(title.at(language), numbering: none)
22+
v(12pt)
23+
24+
body
25+
}
49.7 KB
Loading
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
@book{bruegge2004object,
2+
title = {Object Oriented Software Engineering Using UML, Patterns, and Java},
3+
author = {Bruegge, Bernd and Dutoit, Allen H},
4+
year = {2009},
5+
publisher = {Prentice Hall}
6+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#import "@preview/gallus-hsg:1.0.0": *
2+
3+
= Heading 1 <chapter1>
4+
== Heading 2
5+
=== Heading 3
6+
==== Heading 4
7+
This is a biblography cite: #cite(<bruegge2004object>)
8+
9+
This is an image.
10+
#figure(
11+
image("../figures/unisg_logo.png"),
12+
caption: "The HSG Logo",
13+
) <Figure1>
14+
15+
Can be referenced: @Figure1
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#import "@preview/gallus-hsg:1.0.0": *
2+
3+
= Heading 1
4+
== Heading 2
5+
=== Heading 3
6+
==== Heading 4
7+
8+
There are also some utils. Like Todo:
9+
10+
#TODO("This is a todo")
11+
12+
Or formfield:
13+
#formfield("Label", "Test", length: 3cm)

0 commit comments

Comments
 (0)