From 7ce671279d340353a3fed2e0cde472b0cdf89560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:12 +0200 Subject: [PATCH 01/24] [Typship] Add typst.toml --- packages/preview/gallus-hsg/1.0.0/typst.toml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/typst.toml diff --git a/packages/preview/gallus-hsg/1.0.0/typst.toml b/packages/preview/gallus-hsg/1.0.0/typst.toml new file mode 100644 index 0000000000..2578bd0306 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/typst.toml @@ -0,0 +1,15 @@ +[package] +name = "gallus-hsg" +version = "1.0.0" +entrypoint = "thesis_template.typ" +categories = [ "thesis" ] +disciplines = [ ] +description = "Thesis at the University of St. Gallen (HSG)" +license = "MIT" +repository = "https://github.com/joshuabeny1999/unisg-thesis-template-typst" +authors = ["Joshua Hürzeler "] + +[template] +path = "template" +entrypoint = "thesis.typ" +thumbnail = "template-hsg.webp" From 9621ed07f2ab9a96f23c9d3d4e39913c1cb31936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:13 +0200 Subject: [PATCH 02/24] [Typship] Add LICENSE --- packages/preview/gallus-hsg/1.0.0/LICENSE | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/LICENSE diff --git a/packages/preview/gallus-hsg/1.0.0/LICENSE b/packages/preview/gallus-hsg/1.0.0/LICENSE new file mode 100644 index 0000000000..7c64d63176 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/LICENSE @@ -0,0 +1,32 @@ +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 From ed2d5e374584d3cff6ca44e8681783c77aad724c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:13 +0200 Subject: [PATCH 03/24] [Typship] Add layout/abstract.typ --- .../gallus-hsg/1.0.0/layout/abstract.typ | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/layout/abstract.typ diff --git a/packages/preview/gallus-hsg/1.0.0/layout/abstract.typ b/packages/preview/gallus-hsg/1.0.0/layout/abstract.typ new file mode 100644 index 0000000000..4f8a0c33dc --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/layout/abstract.typ @@ -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 +} From fb9fe7614e3960c20996d021498e6034083595c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:14 +0200 Subject: [PATCH 04/24] [Typship] Add layout/disclaimer.typ --- .../gallus-hsg/1.0.0/layout/disclaimer.typ | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ diff --git a/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ b/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ new file mode 100644 index 0000000000..1fa21cee89 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ @@ -0,0 +1,68 @@ +#let disclaimer( + title: "", + author: "", + language: "en", + submissionDate: 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, " + submissionDate.display("[day]/[month]/[year]"), author + ) +} From f6f5fed138b1694c5d3c5b1d8c6c94ee6e62433c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:15 +0200 Subject: [PATCH 05/24] [Typship] Add layout/directory_writing_aids.typ --- .../1.0.0/layout/directory_writing_aids.typ | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ diff --git a/packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ b/packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ new file mode 100644 index 0000000000..b133474430 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ @@ -0,0 +1,25 @@ +#let directory_writing_aids(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 +} \ No newline at end of file From 56a93ee8e12503a869d5931320c8f18d3bdbe7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:16 +0200 Subject: [PATCH 06/24] [Typship] Add layout/titlepage.typ --- .../gallus-hsg/1.0.0/layout/titlepage.typ | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ diff --git a/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ b/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ new file mode 100644 index 0000000000..8bfaf117e4 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ @@ -0,0 +1,68 @@ +#let titlepage( + title: "", + subtitle: "", + type: "", + professor: "", + author: "", + matriculationNumber: "", + submissionDate: 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("/template/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 submissionDateText = (en: "Date of Submission:", de: "Einreichungsdatum:") + align( + center, + text(font: body-font, 12pt, weight: 400, submittedBy.at(language) + ": \n" + author + "\n" + matriculationNumber), + ) + 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, + submissionDateText.at(language) + + "\n" + + submissionDate.display("[day padding:zero].[month padding:zero].[year repr:full]"), + ), + ) +} From 44669a958b4b236b678d309453349804b500e902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:16 +0200 Subject: [PATCH 07/24] [Typship] Add template/metadata.typ --- packages/preview/gallus-hsg/1.0.0/template/metadata.typ | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/metadata.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/metadata.typ b/packages/preview/gallus-hsg/1.0.0/template/metadata.typ new file mode 100644 index 0000000000..4096f14375 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/metadata.typ @@ -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 matriculationNumber = "Matriculation number" +#let submissionDate = datetime(day: 1, month: 1, year: 2024) \ No newline at end of file From 40df9583db87a4d60d182c30a40c157d85505ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:17 +0200 Subject: [PATCH 08/24] [Typship] Add template/content/abstract.typ --- .../preview/gallus-hsg/1.0.0/template/content/abstract.typ | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ b/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ new file mode 100644 index 0000000000..b212be3686 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ @@ -0,0 +1,7 @@ +#import "@preview/gallus-hsg:1.0.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? +] From 672b399548132205f0d89c920b5cf5112d60bd8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:18 +0200 Subject: [PATCH 09/24] [Typship] Add template/content/directory_writing_aids.typ --- .../content/directory_writing_aids.typ | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ b/packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ new file mode 100644 index 0000000000..9bc0f39ae2 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ @@ -0,0 +1,29 @@ +#import "@preview/gallus-hsg:1.0.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(, form: "page")], + + "Grammarly", + [ + - Grammar and Style Correction + - Clarity and Coherence + ], + [Abstract, Introduction, Conclusion \ \ @chapter1 #ref(, form: "page") ], + ), +) From 39d2e6cfd18c088cd84509dc68babce9160444ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:19 +0200 Subject: [PATCH 10/24] [Typship] Add template/content/01_content.typ --- .../1.0.0/template/content/01_content.typ | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ b/packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ new file mode 100644 index 0000000000..486d72f212 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ @@ -0,0 +1,15 @@ +#import "@preview/gallus-hsg:1.0.0": * + += Heading 1 +== Heading 2 +=== Heading 3 +==== Heading 4 +This is a biblography cite: #cite() + +This is an image. +#figure( + image("../figures/unisg_logo.png"), + caption: "The HSG Logo", +) + +Can be referenced: @Figure1 From 02da8fa9d182aaceda3f34c5d956794240b1a084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:20 +0200 Subject: [PATCH 11/24] [Typship] Add template/content/02_content.typ --- .../1.0.0/template/content/02_content.typ | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ b/packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ new file mode 100644 index 0000000000..4adc6782b9 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ @@ -0,0 +1,13 @@ +#import "@preview/gallus-hsg:1.0.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) From a7c1719ae5fd8dea477a2a2fac6d034d8bd0b746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:21 +0200 Subject: [PATCH 12/24] [Typship] Add template/content/acknowledgement.typ --- .../1.0.0/template/content/acknowledgement.typ | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ b/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ new file mode 100644 index 0000000000..df3b01ab36 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ @@ -0,0 +1,9 @@ +#import "@preview/gallus-hsg:1.0.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. From 6b8f1b92e30452fb6237f73fbd895d565806e00a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:22 +0200 Subject: [PATCH 13/24] [Typship] Add template/content/appendix.typ --- .../preview/gallus-hsg/1.0.0/template/content/appendix.typ | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ b/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ new file mode 100644 index 0000000000..a6acd564ac --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ @@ -0,0 +1,3 @@ +#import "@preview/gallus-hsg:1.0.0": * + +-- Supplementary Material -- From c012c89ea45fe07b6828ebf30590a36a96a6a3c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:22 +0200 Subject: [PATCH 14/24] [Typship] Add template/thesis.typ --- .../gallus-hsg/1.0.0/template/thesis.typ | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/thesis.typ diff --git a/packages/preview/gallus-hsg/1.0.0/template/thesis.typ b/packages/preview/gallus-hsg/1.0.0/template/thesis.typ new file mode 100644 index 0000000000..dcef34cbf7 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/thesis.typ @@ -0,0 +1,23 @@ +#import "@preview/gallus-hsg:1.0.0": * +#import "./metadata.typ": * + +#set document(title: title, author: author) + +#show: thesis.with( + language: language, + title: title, + subtitle: subtitle, + type: type, + professor: professor, + author: author, + matriculationNumber: matriculationNumber, + submissionDate: submissionDate, + abstract: include "./content/abstract.typ", + acknowledgement: include "./content/acknowledgement.typ", + directory_writing_aids: include "./content/directory_writing_aids.typ", + appendix: include "./content/appendix.typ", + bibliography_raw: read("./bibliography.bib", encoding: none), +) + +#include "./content/01_content.typ" +#include "./content/02_content.typ" From c3c1f20cdfb19e860f606e3874c48247f437b952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:23 +0200 Subject: [PATCH 15/24] [Typship] Add template/figures/unisg_logo.png --- .../1.0.0/template/figures/unisg_logo.png | Bin 0 -> 11288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/figures/unisg_logo.png diff --git a/packages/preview/gallus-hsg/1.0.0/template/figures/unisg_logo.png b/packages/preview/gallus-hsg/1.0.0/template/figures/unisg_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f92a263f32002acd7a828eee083695957a7242f9 GIT binary patch literal 11288 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 literal 0 HcmV?d00001 From 30c604f9bf29e904ede050705b15635014f8dfe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:24 +0200 Subject: [PATCH 16/24] [Typship] Add template/bibliography.bib --- packages/preview/gallus-hsg/1.0.0/template/bibliography.bib | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/template/bibliography.bib diff --git a/packages/preview/gallus-hsg/1.0.0/template/bibliography.bib b/packages/preview/gallus-hsg/1.0.0/template/bibliography.bib new file mode 100644 index 0000000000..0c66c2f161 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/template/bibliography.bib @@ -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} +} \ No newline at end of file From 5134f579dff92b01742984ed6b3af893d2dfbff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:25 +0200 Subject: [PATCH 17/24] [Typship] Add utils/print_page_break.typ --- .../preview/gallus-hsg/1.0.0/utils/print_page_break.typ | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ diff --git a/packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ b/packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ new file mode 100644 index 0000000000..b700a777aa --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ @@ -0,0 +1,7 @@ +#let print_page_break(print: bool, to: "even") = { + if print { + pagebreak(to: to) + } else { + pagebreak() + } +} \ No newline at end of file From f0b1a89866da198624befea86ac53e7d89332f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:26 +0200 Subject: [PATCH 18/24] [Typship] Add utils/todo.typ --- packages/preview/gallus-hsg/1.0.0/utils/todo.typ | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/utils/todo.typ diff --git a/packages/preview/gallus-hsg/1.0.0/utils/todo.typ b/packages/preview/gallus-hsg/1.0.0/utils/todo.typ new file mode 100644 index 0000000000..3edbdf08ce --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/utils/todo.typ @@ -0,0 +1,10 @@ +#let TODO(body, color: yellow) = { + rect( + width: 100%, + radius: 3pt, + stroke: 0.5pt, + fill: color, + )[ + #body + ] +} From 02caac622ec515e932a34482a15d1d3e0953810b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:27 +0200 Subject: [PATCH 19/24] [Typship] Add utils/formfield.typ --- packages/preview/gallus-hsg/1.0.0/utils/formfield.typ | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/utils/formfield.typ diff --git a/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ b/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ new file mode 100644 index 0000000000..a21f787073 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ @@ -0,0 +1,9 @@ +#let formField(label, content, length: 5cm) = { + stack( + text(1em, weight: "bold")[#content], + v(2mm), + line(length: length), + v(1mm), + text(0.9em, style: "italic")[#label] + ) +} \ No newline at end of file From 90ba5ef2fe9121df33d337b46f0fc54ea0a67978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:28 +0200 Subject: [PATCH 20/24] [Typship] Add README.md --- packages/preview/gallus-hsg/1.0.0/README.md | 41 +++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/README.md diff --git a/packages/preview/gallus-hsg/1.0.0/README.md b/packages/preview/gallus-hsg/1.0.0/README.md new file mode 100644 index 0000000000..272b889234 --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/README.md @@ -0,0 +1,41 @@ +# 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.0.0 +``` + +### Set thesis metadata +Fill in your thesis details in the [`metadata.typ`](/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`](/content) which includes all the chapters and sections of your thesis. +You can add or remove chapters as needed (adapt the [`thesis.typ`](/thesis.typ) with the `#include(...)` accordingly). +If you need to customize the layout of the template, you can do so by modifying the corresponding file in the [`layout`](/layout) directory. + +--- +## Further Resources + +- [Typst Documentation](https://typst.app/docs/) +- [Typst Guide for LaTeX Users](https://typst.app/docs/guides/guide-for-latex-users/) From 58bd900ec7517d24da20bcfd8d573673ef1ec8d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:28 +0200 Subject: [PATCH 21/24] [Typship] Add thesis_template.typ --- .../gallus-hsg/1.0.0/thesis_template.typ | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 packages/preview/gallus-hsg/1.0.0/thesis_template.typ diff --git a/packages/preview/gallus-hsg/1.0.0/thesis_template.typ b/packages/preview/gallus-hsg/1.0.0/thesis_template.typ new file mode 100644 index 0000000000..86d1781b0c --- /dev/null +++ b/packages/preview/gallus-hsg/1.0.0/thesis_template.typ @@ -0,0 +1,230 @@ +#import "/layout/titlepage.typ": * +#import "/layout/disclaimer.typ": * +#import "/layout/directory_writing_aids.typ": directory_writing_aids as directory_writing_aids_layout +#import "/layout/abstract.typ": abstract as abstract_layout +#import "/utils/print_page_break.typ": * +#import "/utils/todo.typ": * +#import "/utils/formfield.typ": * + + +#let thesis( + title: "", + subtitle: "", + type: "", + professor: "", + author: "", + matriculationNumber: "", + submissionDate: datetime, + abstract: "", + language: "en", + acknowledgement: "", + directory_writing_aids: "", + appendix: "", + is_print: false, + bibliography_raw: bytes(""), + body, +) = { + assert(language in ("de", "en"), message: "The language supported are only 'de' and 'en'.") + + titlepage( + title: title, + subtitle: subtitle, + type: type, + professor: professor, + author: author, + matriculationNumber: matriculationNumber, + submissionDate: submissionDate, + language: language, + ) + + print_page_break(print: is_print, to: "even") + + + if abstract != "" { + abstract_layout(lang: language)[#abstract] + } + + set page( + margin: (left: 2.5cm, right: 2.5cm, top: 2.5cm, bottom: 2.5cm), + numbering: none, + ) + + set page( + header: context { + // Find first level-1 heading on this page (if any). + let h = query(heading.where(level: 1).after(here())) + .filter(h => h.location().page() == here().page()) + .at( + 0, + default: { + // Fall back to last previous heading. + query(heading.where(level: 1).before(here())).at(-1, default: none) + }, + ) + + if h != none { + // Create number from counter value and numbering. + + [ + #align(end, text(size: 11pt, weight: 400, h.body)) + #v(2mm) + ] + } + }, + ) + + let body-font = "Libertinus Serif" + + set text( + font: body-font, + size: 12pt, + lang: language, + ) + + show math.equation: set text(weight: 400) + + set table( + stroke: (x, y) => ( + y: if y == 1 { + 2pt + gray + } else { + 1pt + gray + }, + x: 1pt + gray, + ), + + fill: (x, y) => if y == 0 { + rgb(55, 126, 57) + }, + ) + show table.cell: it => { + if it.y == 0 { + set text(white) + strong(it) + } else { + it + } + } + + // --- Headings --- + show heading: set block(below: 0.85em, above: 1.75em) + show heading: set text(font: body-font) + set heading(numbering: "1.1") + // Reference first-level headings as "chapters" + let chapter = (en: "Chapter", de: "Kapitel") + show ref.where(form: "normal"): it => { + let el = it.element + if el != none and el.func() == heading and el.level == 1 { + chapter.at(language) + " " + numbering( + el.numbering, + ..counter(heading).at(el.location()), + ) + } else { + it + } + } + + // --- Paragraphs --- + set par(leading: 1em) + + // --- Citations --- + set cite(style: "alphanumeric") + + // --- Figures --- + show figure: set text(size: 0.85em) + + // --- Table of Contents --- + let tocTitle = (en: "Table of Contents", de: "Inhaltsverzeichnis") + + show outline.entry.where(level: 1): it => { + strong(text(size: 12pt, it)) + } + show outline.entry.where(level: 2): it => { + text(size: 11pt, it) + } + show outline.entry.where(level: 3): it => { + text(size: 10.5pt, it) + } + show outline.entry.where(level: 4): it => { + text(size: 10pt, it) + } + + outline( + title: tocTitle.at(language), + indent: 2em, + ) + + + v(2.4fr) + pagebreak() + + set page( + margin: (left: 2.5cm, right: 2.5cm, top: 2.5cm, bottom: 2.5cm), + numbering: "1", + number-align: right, + ) + + counter(page).update(1) + + // List of figures. + let figureListTitle = (en: "List of Figures", de: "Abbildungsverzeichnis") + heading(numbering: none)[#figureListTitle.at(language)] + outline( + title: "", + target: figure.where(kind: image), + ) + + // List of tables. + print_page_break(print: is_print) + let tableListTitle = (en: "List of Tables", de: "Tabellenverzeichnis") + heading(numbering: none)[#tableListTitle.at(language)] + outline( + title: "", + target: figure.where(kind: table), + ) + pagebreak() + + + // Main body. + set par(justify: true) + + body + + + if acknowledgement != "" { + pagebreak() + let acknowledgementTitle = (en: "Acknowledgement", de: "Danksagung") + heading(numbering: none)[#acknowledgementTitle.at(language)] + acknowledgement + } + + // Appendix. + if appendix != "" { + pagebreak() + let appendixTitle = (en: "Appendix", de: "Anhang") + heading(numbering: none)[#appendixTitle.at(language)] + appendix + } + + if bibliography_raw != bytes("") { + pagebreak() + let bibliographyTitle = (en: "References", de: "Literaturverzeichnis") + bibliography(bibliography_raw, style: "apa", title: bibliographyTitle.at(language)) + } + + + print_page_break(print: is_print) + + disclaimer( + title: title, + author: author, + language: language, + submissionDate: submissionDate, + ) + + + print_page_break(print: is_print) + + directory_writing_aids_layout(language: language, directory_writing_aids) +} From 8e1d7ce652e0a97da32cff8f09c823b4050a7225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Beny=20H=C3=BCrzeler?= <55023662+joshuabeny1999@users.noreply.github.com> Date: Tue, 16 Sep 2025 17:45:29 +0200 Subject: [PATCH 22/24] [Typship] Add template-hsg.webp --- .../preview/gallus-hsg/1.0.0/template-hsg.webp | Bin 0 -> 50842 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/preview/gallus-hsg/1.0.0/template-hsg.webp diff --git a/packages/preview/gallus-hsg/1.0.0/template-hsg.webp b/packages/preview/gallus-hsg/1.0.0/template-hsg.webp new file mode 100644 index 0000000000000000000000000000000000000000..0692e23650e023dfb25a3fb6855b61708a9a1227 GIT binary patch literal 50842 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

8$y(yPM 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 Date: Thu, 18 Sep 2025 13:13:25 +0200 Subject: [PATCH 23/24] Update to kebab-case and small fixes Readme.md --- packages/preview/gallus-hsg/1.0.0/README.md | 10 +++--- .../gallus-hsg/1.0.0/layout/disclaimer.typ | 4 +-- .../gallus-hsg/1.0.0/layout/titlepage.typ | 12 +++---- ...ng_aids.typ => writing-aids-directory.typ} | 2 +- .../{01_content.typ => 01-content.typ} | 8 ++--- .../{02_content.typ => 02-content.typ} | 6 ++-- .../1.0.0/template/content/abstract.typ | 4 +-- .../template/content/acknowledgement.typ | 4 +-- .../1.0.0/template/content/appendix.typ | 4 +-- ...ng_aids.typ => writing-aids-directory.typ} | 2 +- .../gallus-hsg/1.0.0/template/metadata.typ | 4 +-- .../gallus-hsg/1.0.0/template/thesis.typ | 14 ++++---- ...hesis_template.typ => thesis-template.typ} | 34 +++++++++---------- packages/preview/gallus-hsg/1.0.0/typst.toml | 2 +- .../gallus-hsg/1.0.0/utils/formfield.typ | 2 +- ...int_page_break.typ => print-pagebreak.typ} | 2 +- 16 files changed, 57 insertions(+), 57 deletions(-) rename packages/preview/gallus-hsg/1.0.0/layout/{directory_writing_aids.typ => writing-aids-directory.typ} (90%) rename packages/preview/gallus-hsg/1.0.0/template/content/{01_content.typ => 01-content.typ} (61%) rename packages/preview/gallus-hsg/1.0.0/template/content/{02_content.typ => 02-content.typ} (56%) rename packages/preview/gallus-hsg/1.0.0/template/content/{directory_writing_aids.typ => writing-aids-directory.typ} (97%) rename packages/preview/gallus-hsg/1.0.0/{thesis_template.typ => thesis-template.typ} (84%) rename packages/preview/gallus-hsg/1.0.0/utils/{print_page_break.typ => print-pagebreak.typ} (56%) diff --git a/packages/preview/gallus-hsg/1.0.0/README.md b/packages/preview/gallus-hsg/1.0.0/README.md index 272b889234..8db11a06f3 100644 --- a/packages/preview/gallus-hsg/1.0.0/README.md +++ b/packages/preview/gallus-hsg/1.0.0/README.md @@ -6,7 +6,8 @@ This repository provides a unofficial Typst template for writing your Bachelor's --- ## 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) +Please thorougly read the guidelines and hints on [:wq +website](https://www.unisg.ch/fileadmin/user_upload/HSG_ROOT/_Kernauftritt_HSG/Universitaet/Schools/SOM/Faculty/Chair_of_Organization_Studies/Guideline_HSG.pdf) --- ## Usage @@ -19,7 +20,7 @@ typst init @preview/gallus-hsg:1.0.0 ``` ### Set thesis metadata -Fill in your thesis details in the [`metadata.typ`](/metadata.typ) file: +Fill in your thesis details in the `metadata.typ` file: * The language of the document (en or de) * Title * Subtitle @@ -30,9 +31,8 @@ Fill in your thesis details in the [`metadata.typ`](/metadata.typ) file: * The submission date ### Write your thesis -For the actual content of your thesis, there is a dedicated folder named [`/content`](/content) which includes all the chapters and sections of your thesis. -You can add or remove chapters as needed (adapt the [`thesis.typ`](/thesis.typ) with the `#include(...)` accordingly). -If you need to customize the layout of the template, you can do so by modifying the corresponding file in the [`layout`](/layout) directory. +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 diff --git a/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ b/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ index 1fa21cee89..522e810b4f 100644 --- a/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ +++ b/packages/preview/gallus-hsg/1.0.0/layout/disclaimer.typ @@ -2,7 +2,7 @@ title: "", author: "", language: "en", - submissionDate: datetime, + submission-date: datetime, ) = { set page( margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm), @@ -63,6 +63,6 @@ Mit Einreichung der schriftlichen Arbeit stimme ich mit konkludentem Handeln zu, grid( columns: 2, gutter: 1fr, - "St. Gallen, " + submissionDate.display("[day]/[month]/[year]"), author + "St. Gallen, " + submission-date.display("[day]/[month]/[year]"), author ) } diff --git a/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ b/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ index 8bfaf117e4..cba7639ee6 100644 --- a/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ +++ b/packages/preview/gallus-hsg/1.0.0/layout/titlepage.typ @@ -4,8 +4,8 @@ type: "", professor: "", author: "", - matriculationNumber: "", - submissionDate: datetime, + matriculation-number: "", + submission-date: datetime, abstract: "", language: "en", ) = { @@ -47,10 +47,10 @@ let submittedBy = (en: "Submitted by", de: "Eingereicht von") let approvedBy = (en: "Approved on Application by:", de: "Genehmigt auf Antrag von:") - let submissionDateText = (en: "Date of Submission:", de: "Einreichungsdatum:") + let submission-dateText = (en: "Date of Submission:", de: "Einreichungsdatum:") align( center, - text(font: body-font, 12pt, weight: 400, submittedBy.at(language) + ": \n" + author + "\n" + matriculationNumber), + 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) @@ -60,9 +60,9 @@ font: body-font, 12pt, weight: 400, - submissionDateText.at(language) + submission-dateText.at(language) + "\n" - + submissionDate.display("[day padding:zero].[month padding:zero].[year repr:full]"), + + submission-date.display("[day padding:zero].[month padding:zero].[year repr:full]"), ), ) } diff --git a/packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ b/packages/preview/gallus-hsg/1.0.0/layout/writing-aids-directory.typ similarity index 90% rename from packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ rename to packages/preview/gallus-hsg/1.0.0/layout/writing-aids-directory.typ index b133474430..07d75744c8 100644 --- a/packages/preview/gallus-hsg/1.0.0/layout/directory_writing_aids.typ +++ b/packages/preview/gallus-hsg/1.0.0/layout/writing-aids-directory.typ @@ -1,4 +1,4 @@ -#let directory_writing_aids(language: "en", body) = { +#let writing-aids-directory(language: "en", body) = { set page( margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm), numbering: none, diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ b/packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ similarity index 61% rename from packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ rename to packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ index 486d72f212..09d8391c5e 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/01_content.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ @@ -1,4 +1,4 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.0": * = Heading 1 == Heading 2 @@ -6,10 +6,10 @@ ==== Heading 4 This is a biblography cite: #cite() -This is an image. +This is an image. #figure( image("../figures/unisg_logo.png"), - caption: "The HSG Logo", + caption: "The HSG Logo" ) -Can be referenced: @Figure1 +Can be referenced: @Figure1 \ No newline at end of file diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ b/packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ similarity index 56% rename from packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ rename to packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ index 4adc6782b9..7c98539bb8 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/02_content.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ @@ -1,4 +1,4 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.0": * = Heading 1 == Heading 2 @@ -9,5 +9,5 @@ There are also some utils. Like Todo: #TODO("This is a todo") -Or Formfield: -#formField("Label", "Test", length: 3cm) +Or formfield: +#formfield("Label", "Test", length: 3cm) \ No newline at end of file diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ b/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ index b212be3686..8e1810b23a 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ @@ -1,7 +1,7 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.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? -] + ] \ No newline at end of file diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ b/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ index df3b01ab36..5dd1b5522b 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ @@ -1,4 +1,4 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.0": * First, I'd like to thank coffee for fueling my brain cells and making this thesis possible. @@ -6,4 +6,4 @@ A big shoutout to my advisor for your patience and for not laughing (too hard) a 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. +Finally, to my pet, your keyboard sit-ins ensured I took breaks, whether I wanted to or not. \ No newline at end of file diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ b/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ index a6acd564ac..490cca43fd 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ @@ -1,3 +1,3 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.0": * --- Supplementary Material -- +-- Supplementary Material -- \ No newline at end of file diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ b/packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ similarity index 97% rename from packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ rename to packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ index 9bc0f39ae2..52f2fef02d 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/directory_writing_aids.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ @@ -1,4 +1,4 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.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) diff --git a/packages/preview/gallus-hsg/1.0.0/template/metadata.typ b/packages/preview/gallus-hsg/1.0.0/template/metadata.typ index 4096f14375..ca23d9cc98 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/metadata.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/metadata.typ @@ -5,5 +5,5 @@ #let type = "Type of paper" #let professor = "Name and full title of professor" #let author = "First name Last name" -#let matriculationNumber = "Matriculation number" -#let submissionDate = datetime(day: 1, month: 1, year: 2024) \ No newline at end of file +#let matriculation-number = "Matriculation number" +#let submission-date = datetime(day: 1, month: 1, year: 2024) \ No newline at end of file diff --git a/packages/preview/gallus-hsg/1.0.0/template/thesis.typ b/packages/preview/gallus-hsg/1.0.0/template/thesis.typ index dcef34cbf7..9f219c7287 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/thesis.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/thesis.typ @@ -1,4 +1,4 @@ -#import "@preview/gallus-hsg:1.0.0": * +#import "@local/gallus-hsg:1.0.0": * #import "./metadata.typ": * #set document(title: title, author: author) @@ -10,14 +10,14 @@ type: type, professor: professor, author: author, - matriculationNumber: matriculationNumber, - submissionDate: submissionDate, + matriculation-number: matriculation-number, + submission-date: submission-date, abstract: include "./content/abstract.typ", acknowledgement: include "./content/acknowledgement.typ", - directory_writing_aids: include "./content/directory_writing_aids.typ", + writing-aids-directory: include "./content/writing-aids-directory.typ", appendix: include "./content/appendix.typ", - bibliography_raw: read("./bibliography.bib", encoding: none), + bibliography-as-bytes: read("./bibliography.bib", encoding: none) ) -#include "./content/01_content.typ" -#include "./content/02_content.typ" +#include "./content/01-content.typ" +#include "./content/02-content.typ" diff --git a/packages/preview/gallus-hsg/1.0.0/thesis_template.typ b/packages/preview/gallus-hsg/1.0.0/thesis-template.typ similarity index 84% rename from packages/preview/gallus-hsg/1.0.0/thesis_template.typ rename to packages/preview/gallus-hsg/1.0.0/thesis-template.typ index 86d1781b0c..7d62751f74 100644 --- a/packages/preview/gallus-hsg/1.0.0/thesis_template.typ +++ b/packages/preview/gallus-hsg/1.0.0/thesis-template.typ @@ -1,8 +1,8 @@ #import "/layout/titlepage.typ": * #import "/layout/disclaimer.typ": * -#import "/layout/directory_writing_aids.typ": directory_writing_aids as directory_writing_aids_layout +#import "/layout/writing-aids-directory.typ": writing-aids-directory as writing-aids-directory-layout #import "/layout/abstract.typ": abstract as abstract_layout -#import "/utils/print_page_break.typ": * +#import "/utils/print-pagebreak.typ": * #import "/utils/todo.typ": * #import "/utils/formfield.typ": * @@ -13,15 +13,15 @@ type: "", professor: "", author: "", - matriculationNumber: "", - submissionDate: datetime, + matriculation-number: "", + submission-date: datetime, abstract: "", language: "en", acknowledgement: "", - directory_writing_aids: "", + writing-aids-directory: "", appendix: "", - is_print: false, - bibliography_raw: bytes(""), + is-print: false, + bibliography-as-bytes: bytes(""), body, ) = { assert(language in ("de", "en"), message: "The language supported are only 'de' and 'en'.") @@ -32,12 +32,12 @@ type: type, professor: professor, author: author, - matriculationNumber: matriculationNumber, - submissionDate: submissionDate, + matriculation-number: matriculation-number, + submission-date: submission-date, language: language, ) - print_page_break(print: is_print, to: "even") + print-pagebreak(print: is-print, to: "even") if abstract != "" { @@ -176,7 +176,7 @@ ) // List of tables. - print_page_break(print: is_print) + print-pagebreak(print: is-print) let tableListTitle = (en: "List of Tables", de: "Tabellenverzeichnis") heading(numbering: none)[#tableListTitle.at(language)] outline( @@ -207,24 +207,24 @@ appendix } - if bibliography_raw != bytes("") { + if bibliography-as-bytes != bytes("") { pagebreak() let bibliographyTitle = (en: "References", de: "Literaturverzeichnis") - bibliography(bibliography_raw, style: "apa", title: bibliographyTitle.at(language)) + bibliography(bibliography-as-bytes, style: "apa", title: bibliographyTitle.at(language)) } - print_page_break(print: is_print) + print-pagebreak(print: is-print) disclaimer( title: title, author: author, language: language, - submissionDate: submissionDate, + submission-date: submission-date, ) - print_page_break(print: is_print) + print-pagebreak(print: is-print) - directory_writing_aids_layout(language: language, directory_writing_aids) + writing-aids-directory-layout(language: language, writing-aids-directory) } diff --git a/packages/preview/gallus-hsg/1.0.0/typst.toml b/packages/preview/gallus-hsg/1.0.0/typst.toml index 2578bd0306..487f90bcc4 100644 --- a/packages/preview/gallus-hsg/1.0.0/typst.toml +++ b/packages/preview/gallus-hsg/1.0.0/typst.toml @@ -1,7 +1,7 @@ [package] name = "gallus-hsg" version = "1.0.0" -entrypoint = "thesis_template.typ" +entrypoint = "thesis-template.typ" categories = [ "thesis" ] disciplines = [ ] description = "Thesis at the University of St. Gallen (HSG)" diff --git a/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ b/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ index a21f787073..9018db6eec 100644 --- a/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ +++ b/packages/preview/gallus-hsg/1.0.0/utils/formfield.typ @@ -1,4 +1,4 @@ -#let formField(label, content, length: 5cm) = { +#let formfield(label, content, length: 5cm) = { stack( text(1em, weight: "bold")[#content], v(2mm), diff --git a/packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ b/packages/preview/gallus-hsg/1.0.0/utils/print-pagebreak.typ similarity index 56% rename from packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ rename to packages/preview/gallus-hsg/1.0.0/utils/print-pagebreak.typ index b700a777aa..f76353138e 100644 --- a/packages/preview/gallus-hsg/1.0.0/utils/print_page_break.typ +++ b/packages/preview/gallus-hsg/1.0.0/utils/print-pagebreak.typ @@ -1,4 +1,4 @@ -#let print_page_break(print: bool, to: "even") = { +#let print-pagebreak(print: bool, to: "even") = { if print { pagebreak(to: to) } else { From 66b3dea0f1560814ff793c47b6dc9978816dae53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20H=C3=BCrzeler?= Date: Thu, 18 Sep 2025 13:16:53 +0200 Subject: [PATCH 24/24] Change package reference from local to preview --- .../gallus-hsg/1.0.0/template/content/01-content.typ | 8 ++++---- .../gallus-hsg/1.0.0/template/content/02-content.typ | 6 +++--- .../gallus-hsg/1.0.0/template/content/abstract.typ | 4 ++-- .../gallus-hsg/1.0.0/template/content/acknowledgement.typ | 4 ++-- .../gallus-hsg/1.0.0/template/content/appendix.typ | 4 ++-- .../1.0.0/template/content/writing-aids-directory.typ | 2 +- packages/preview/gallus-hsg/1.0.0/template/thesis.typ | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ b/packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ index 09d8391c5e..486d72f212 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/01-content.typ @@ -1,4 +1,4 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.0": * = Heading 1 == Heading 2 @@ -6,10 +6,10 @@ ==== Heading 4 This is a biblography cite: #cite() -This is an image. +This is an image. #figure( image("../figures/unisg_logo.png"), - caption: "The HSG Logo" + caption: "The HSG Logo", ) -Can be referenced: @Figure1 \ No newline at end of file +Can be referenced: @Figure1 diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ b/packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ index 7c98539bb8..a51e70442b 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/02-content.typ @@ -1,4 +1,4 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.0": * = Heading 1 == Heading 2 @@ -9,5 +9,5 @@ There are also some utils. Like Todo: #TODO("This is a todo") -Or formfield: -#formfield("Label", "Test", length: 3cm) \ No newline at end of file +Or formfield: +#formfield("Label", "Test", length: 3cm) diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ b/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ index 8e1810b23a..b212be3686 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/abstract.typ @@ -1,7 +1,7 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.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? - ] \ No newline at end of file +] diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ b/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ index 5dd1b5522b..df3b01ab36 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/acknowledgement.typ @@ -1,4 +1,4 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.0": * First, I'd like to thank coffee for fueling my brain cells and making this thesis possible. @@ -6,4 +6,4 @@ A big shoutout to my advisor for your patience and for not laughing (too hard) a 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. \ No newline at end of file +Finally, to my pet, your keyboard sit-ins ensured I took breaks, whether I wanted to or not. diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ b/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ index 490cca43fd..a6acd564ac 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/appendix.typ @@ -1,3 +1,3 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.0": * --- Supplementary Material -- \ No newline at end of file +-- Supplementary Material -- diff --git a/packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ b/packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ index 52f2fef02d..9bc0f39ae2 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/content/writing-aids-directory.typ @@ -1,4 +1,4 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.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) diff --git a/packages/preview/gallus-hsg/1.0.0/template/thesis.typ b/packages/preview/gallus-hsg/1.0.0/template/thesis.typ index 9f219c7287..41b5a5d582 100644 --- a/packages/preview/gallus-hsg/1.0.0/template/thesis.typ +++ b/packages/preview/gallus-hsg/1.0.0/template/thesis.typ @@ -1,4 +1,4 @@ -#import "@local/gallus-hsg:1.0.0": * +#import "@preview/gallus-hsg:1.0.0": * #import "./metadata.typ": * #set document(title: title, author: author) @@ -16,7 +16,7 @@ acknowledgement: include "./content/acknowledgement.typ", writing-aids-directory: include "./content/writing-aids-directory.typ", appendix: include "./content/appendix.typ", - bibliography-as-bytes: read("./bibliography.bib", encoding: none) + bibliography-as-bytes: read("./bibliography.bib", encoding: none), ) #include "./content/01-content.typ"