From 8991ab3fe9f81c9d98d3ff095e59be6e7c94b1fe Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 21:38:50 +0200 Subject: [PATCH 01/10] add expose flag and translation --- lib/pages/cover.typ | 15 +++++++++------ lib/template.typ | 14 ++++++++++++++ lib/translations.typ | 8 ++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/lib/pages/cover.typ b/lib/pages/cover.typ index f42633e..05e64c2 100644 --- a/lib/pages/cover.typ +++ b/lib/pages/cover.typ @@ -5,6 +5,7 @@ is-master-thesis: false, is-bachelor-thesis: true, is-report: false, + is-expose: false, title: "", author: "", faculty: "", @@ -35,12 +36,15 @@ right: 18mm, stack( // Type - if is-thesis { - let thesis-title = translations.bachelor-thesis + if is-thesis or is-expose { + let document-kind = translations.bachelor-thesis if is-master-thesis { - thesis-title = translations.master-thesis + document-kind = translations.master-thesis } - upper(text(thesis-title, size: 9pt, weight: "bold")) + if is-expose { + document-kind = translations.expose + } + upper(text(document-kind, size: 9pt, weight: "bold")) v(2mm) }, // Author @@ -77,7 +81,7 @@ ), ) - if (is-report) { + if (is-report or is-expose) { set text(size: 11pt) place( left + top, @@ -115,7 +119,6 @@ ) } - if is-thesis { // Second cover page pagebreak() diff --git a/lib/template.typ b/lib/template.typ index 9e71c86..e771d39 100644 --- a/lib/template.typ +++ b/lib/template.typ @@ -3,6 +3,7 @@ is-master-thesis: false, is-bachelor-thesis: true, is-report: false, + is-expose: false, // Language language: "en", // German @@ -152,6 +153,7 @@ is-master-thesis: is-master-thesis, is-bachelor-thesis: is-bachelor-thesis, is-report: is-report, + is-expose: is-expose, title: title, author: author, @@ -212,6 +214,18 @@ set par(justify: true) + // Keywords are expose only, as it has no abstract page + if is-expose and keywords != none { + import "translations.typ": translations + let keywords-text = if type(keywords) == array { + keywords.join(", ") + } else { + keywords + } + text(translations.keywords + ": " + keywords-text, weight: "bold") + v(5mm) + } + body // Include after-content pages diff --git a/lib/translations.typ b/lib/translations.typ index f576566..6a28108 100644 --- a/lib/translations.typ +++ b/lib/translations.typ @@ -25,6 +25,14 @@ en: "Master thesis", de: "Masterarbeit", ), + expose: value( + en: "Proposal", + de: "Exposé", + ), + keywords: value( + en: "Keywords", + de: "Stichworte", + ), faculty-of: value( en: "Faculty of", de: "Fakultät", From 6147de11ae0f73138fc1f1a82044f1f86054008a Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 21:39:08 +0200 Subject: [PATCH 02/10] add type --- lib/lib.typ | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/lib/lib.typ b/lib/lib.typ index 8f11524..af575c9 100644 --- a/lib/lib.typ +++ b/lib/lib.typ @@ -41,6 +41,46 @@ ) } +#let expose( + language: "en", + title: "", + keywords: none, + author: "", + faculty: "", + supervisors: (), + submission-date: none, + before-content: none, + after-content: none, + body, +) = { + import "template.typ": template + template( + is-thesis: false, + is-master-thesis: false, + is-bachelor-thesis: false, + is-report: false, + is-expose: true, + language: language, + + title-de: title, + keywords-de: keywords, + abstract-de: none, + + title-en: title, + keywords-en: keywords, + abstract-en: none, + + author: author, + faculty: faculty, + study-course: none, + supervisors: supervisors, + submission-date: submission-date, + before-content: before-content, + after-content: after-content, + body, + ) +} + #let bachelor-thesis( language: "en", title-de: "", From 9e180cca172df2a208e52fbd9c42ac1d5f34a5b7 Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 21:40:15 +0200 Subject: [PATCH 03/10] is-expose false on other types --- lib/lib.typ | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/lib.typ b/lib/lib.typ index af575c9..d5bd5a4 100644 --- a/lib/lib.typ +++ b/lib/lib.typ @@ -19,6 +19,7 @@ is-master-thesis: false, is-bachelor-thesis: false, is-report: true, + is-expose: false, language: language, @@ -60,6 +61,7 @@ is-bachelor-thesis: false, is-report: false, is-expose: true, + language: language, title-de: title, @@ -104,6 +106,7 @@ is-master-thesis: false, is-bachelor-thesis: true, is-report: false, + is-expose: false, language: language, @@ -149,6 +152,7 @@ is-master-thesis: true, is-bachelor-thesis: false, is-report: false, + is-expose: false, language: language, From e7265c3fb614320aa6635fac6e003c70a7b05a7b Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 21:48:26 +0200 Subject: [PATCH 04/10] add keywords --- lib/template.typ | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/template.typ b/lib/template.typ index e771d39..9a3b1a2 100644 --- a/lib/template.typ +++ b/lib/template.typ @@ -32,8 +32,18 @@ title = title-en } + let keywords = keywords-de + if language == "en" { + keywords = keywords-en + } + // Set the document's basic properties. - set document(author: author, title: title, date: submission-date) + set document( + author: author, + title: title, + date: submission-date, + keywords: if keywords == none { () } else { keywords }, + ) set page( margin: (left: 31.5mm, right: 31.5mm, top: PAGE_MARGIN_TOP, bottom: 56mm), numbering: "i", From 63fdd3a772a73cc27e214aed00bbc0709f95fa98 Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 22:08:09 +0200 Subject: [PATCH 05/10] add template --- templates/expose/README.md | 37 ++ templates/expose/lib.typ | 1 + templates/expose/src/bibliography.bib | 8 + .../expose/src/chapters/01_introduction.typ | 7 + .../expose/src/chapters/02_objectives.typ | 13 + templates/expose/src/chapters/03_schedule.typ | 17 + templates/expose/src/ieeetran.csl | 526 ++++++++++++++++++ templates/expose/src/main.typ | 24 + templates/expose/typst.toml | 10 + 9 files changed, 643 insertions(+) create mode 100644 templates/expose/README.md create mode 100644 templates/expose/lib.typ create mode 100644 templates/expose/src/bibliography.bib create mode 100644 templates/expose/src/chapters/01_introduction.typ create mode 100644 templates/expose/src/chapters/02_objectives.typ create mode 100644 templates/expose/src/chapters/03_schedule.typ create mode 100644 templates/expose/src/ieeetran.csl create mode 100644 templates/expose/src/main.typ create mode 100644 templates/expose/typst.toml diff --git a/templates/expose/README.md b/templates/expose/README.md new file mode 100644 index 0000000..11fef25 --- /dev/null +++ b/templates/expose/README.md @@ -0,0 +1,37 @@ +# HAW Hamburg Typst Template + +This is an **`unofficial`** template for writing an exposé (thesis proposal) in the `HAW Hamburg` Faculty of `Computer Science and Digital Society` style using [Typst](https://github.com/typst/typst). + +## Usage + +To use this package just add the following code to your [Typst](https://github.com/typst/typst) document: + +```typst +#import "@preview/haw-hamburg:0.9.0": expose + +#show: expose.with( + language: "en", + title: "Example title", + keywords: ("Keyword", "Important", "Super"), + author: "Example author", + faculty: "Computer Science and Digital Society", + supervisors: ("Prof. Dr. Example", "Prof. Dr. Example"), + submission-date: datetime(year: 1948, month: 12, day: 10), +) +``` + +## How to Compile + +This project contains an example setup that splits individual chapters into different files.\ +This can cause problems when using references etc.\ +These problems can be avoided by following these steps: + +- Make sure to always compile your `main.typ` file which includes all of your chapters for references to work correctly. +- **CLI**: + - Install [Typst](https://github.com/typst/typst) on your system. + - Open the terminal and run: `typst compile main.typ`. +- **VSCode**: + - Install the [Tinymist Typst](https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist) extension. + - Make sure to start the `PDF` or `Live Preview` only from within your `main.typ` file. + - References and the language server in general only work correctly when the `Live Preview` of the `main.typ` file is running in the background. + - If problems occur it usually helps to close the preview and restart it from your `main.typ` file. diff --git a/templates/expose/lib.typ b/templates/expose/lib.typ new file mode 100644 index 0000000..53e4a8b --- /dev/null +++ b/templates/expose/lib.typ @@ -0,0 +1 @@ +// This file is redundant, but required by the Typst packaging system diff --git a/templates/expose/src/bibliography.bib b/templates/expose/src/bibliography.bib new file mode 100644 index 0000000..a7d3d99 --- /dev/null +++ b/templates/expose/src/bibliography.bib @@ -0,0 +1,8 @@ +@book{UN, + author = {{United Nations}}, + title = {Universal Declaration of Human Rights}, + year = {1948}, + month = dec, + venue = {Paris}, + month_numeric = {12} +} diff --git a/templates/expose/src/chapters/01_introduction.typ b/templates/expose/src/chapters/01_introduction.typ new file mode 100644 index 0000000..d2489d5 --- /dev/null +++ b/templates/expose/src/chapters/01_introduction.typ @@ -0,0 +1,7 @@ += Introduction and Motivation + +This is how to cite a source: @UN. + +#lorem(120) + +#lorem(80) diff --git a/templates/expose/src/chapters/02_objectives.typ b/templates/expose/src/chapters/02_objectives.typ new file mode 100644 index 0000000..9984ba7 --- /dev/null +++ b/templates/expose/src/chapters/02_objectives.typ @@ -0,0 +1,13 @@ += Objectives and Planned Approach + +#lorem(60) + +The objectives of the thesis are: + ++ #lorem(10) ++ #lorem(12) ++ #lorem(8) + +== Methodology + +#lorem(100) diff --git a/templates/expose/src/chapters/03_schedule.typ b/templates/expose/src/chapters/03_schedule.typ new file mode 100644 index 0000000..86be15e --- /dev/null +++ b/templates/expose/src/chapters/03_schedule.typ @@ -0,0 +1,17 @@ += Schedule + +#lorem(30) + +#figure( + table( + columns: (auto, 1fr), + align: left, + table.header([*Phase*], [*Task*]), + [Months 1--2], [Literature review and analysis of related work], + [Months 3--4], [Concept and design], + [Months 5--6], [Implementation], + [Month 7], [Evaluation and experiments], + [Month 8], [Writing of the thesis], + ), + caption: [Planned schedule of the thesis], +) diff --git a/templates/expose/src/ieeetran.csl b/templates/expose/src/ieeetran.csl new file mode 100644 index 0000000..4d5f5b6 --- /dev/null +++ b/templates/expose/src/ieeetran.csl @@ -0,0 +1,526 @@ + + diff --git a/templates/expose/src/main.typ b/templates/expose/src/main.typ new file mode 100644 index 0000000..3a21f13 --- /dev/null +++ b/templates/expose/src/main.typ @@ -0,0 +1,24 @@ +#import "@preview/haw-hamburg:0.9.0": expose + +// Initialize template +#show: expose.with( + language: "en", + title: "Answer to the Ultimate Question of Life, the Universe, and Everything", + keywords: ("Life", "Universe", "Everything"), + author: "The Computer", + faculty: "Computer Science and Digital Society", + supervisors: ("Prof. Dr. Example", "Prof. Dr. Example"), + submission-date: datetime(year: 1948, month: 12, day: 10), + // Everything inside "after-content" will be automatically injected + // into the document after the actual content ends. + after-content: { + // Print bibliography + pagebreak(weak: true) + bibliography("bibliography.bib", style: "./ieeetran.csl") + }, +) + +// Include chapters of expose +#include "chapters/01_introduction.typ" +#include "chapters/02_objectives.typ" +#include "chapters/03_schedule.typ" diff --git a/templates/expose/typst.toml b/templates/expose/typst.toml new file mode 100644 index 0000000..422e9f3 --- /dev/null +++ b/templates/expose/typst.toml @@ -0,0 +1,10 @@ +[package] +name = "haw-hamburg-expose" +entrypoint = "lib.typ" +description = "Unofficial template for writing an exposé (thesis proposal) in the HAW Hamburg Faculty of Computer Science and Digital Society style." +categories = ["report"] + +[template] +path = "src" +entrypoint = "main.typ" +thumbnail = "thumbnail.png" From 8117dec6c712fdd06b38f2df188c0c2fb52ac17d Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 23:38:47 +0200 Subject: [PATCH 06/10] add example --- examples/expose/bibliography.bib | 8 +++++++ examples/expose/chapters/01_introduction.typ | 12 ++++++++++ examples/expose/chapters/02_objectives.typ | 14 +++++++++++ examples/expose/chapters/03_approach.typ | 14 +++++++++++ examples/expose/chapters/04_schedule.typ | 18 ++++++++++++++ examples/expose/main.typ | 25 ++++++++++++++++++++ 6 files changed, 91 insertions(+) create mode 100644 examples/expose/bibliography.bib create mode 100644 examples/expose/chapters/01_introduction.typ create mode 100644 examples/expose/chapters/02_objectives.typ create mode 100644 examples/expose/chapters/03_approach.typ create mode 100644 examples/expose/chapters/04_schedule.typ create mode 100644 examples/expose/main.typ diff --git a/examples/expose/bibliography.bib b/examples/expose/bibliography.bib new file mode 100644 index 0000000..a7d3d99 --- /dev/null +++ b/examples/expose/bibliography.bib @@ -0,0 +1,8 @@ +@book{UN, + author = {{United Nations}}, + title = {Universal Declaration of Human Rights}, + year = {1948}, + month = dec, + venue = {Paris}, + month_numeric = {12} +} diff --git a/examples/expose/chapters/01_introduction.typ b/examples/expose/chapters/01_introduction.typ new file mode 100644 index 0000000..eab9949 --- /dev/null +++ b/examples/expose/chapters/01_introduction.typ @@ -0,0 +1,12 @@ += Introduction and Motivation + +Ever since the proclamation of a common standard of achievement for all peoples +and all nations @UN, the question of what it all means has remained open. Many +generations of philosophers, mathematicians and computer scientists have tried +to answer the Ultimate Question of Life, the Universe, and Everything — so far +without a satisfying result. + +This thesis will approach the question computationally. A dedicated planetary +computer will be designed and run until an answer is produced. The exposé at +hand motivates the topic, defines the goals of the thesis and describes the +planned approach and schedule. diff --git a/examples/expose/chapters/02_objectives.typ b/examples/expose/chapters/02_objectives.typ new file mode 100644 index 0000000..ef4f37b --- /dev/null +++ b/examples/expose/chapters/02_objectives.typ @@ -0,0 +1,14 @@ += Problem Statement and Objectives + +The problem is twofold: it is unclear what the answer to the Ultimate Question +is, and it is equally unclear what the Ultimate Question actually says. Within +the scope of this thesis only the first part will be addressed. + +The objectives of the thesis are: + ++ Design of an architecture that is capable of computing the answer. ++ Implementation of a prototype of the proposed architecture. ++ Evaluation of the produced answer with respect to correctness and usefulness. + +Out of scope is the reconstruction of the Ultimate Question itself, which is +left for future work. diff --git a/examples/expose/chapters/03_approach.typ b/examples/expose/chapters/03_approach.typ new file mode 100644 index 0000000..8da23e9 --- /dev/null +++ b/examples/expose/chapters/03_approach.typ @@ -0,0 +1,14 @@ += Planned Approach + +The thesis will follow an iterative approach. First, related work on very large +questions is reviewed. Based on the findings, a suitable architecture is +designed and a prototype is implemented. The prototype is then evaluated +against a set of smaller, well understood questions before it is applied to the +Ultimate Question. + +== Methodology + +The evaluation will compare the computed answer against the expectations of a +panel of hyper-intelligent beings. The comparison is carried out in a +controlled experiment, and the results are analyzed both quantitatively and +qualitatively. diff --git a/examples/expose/chapters/04_schedule.typ b/examples/expose/chapters/04_schedule.typ new file mode 100644 index 0000000..79c06b7 --- /dev/null +++ b/examples/expose/chapters/04_schedule.typ @@ -0,0 +1,18 @@ += Schedule + +The thesis is planned to be completed within seven and a half million years. +The table below shows the planned schedule. + +#figure( + table( + columns: (auto, 1fr), + align: left, + table.header([*Phase*], [*Task*]), + [Months 1--2], [Literature review and analysis of related work], + [Months 3--4], [Architecture design], + [Months 5--6], [Prototype implementation], + [Month 7], [Evaluation and experiments], + [Month 8 -- Year 7.5M], [Computation of the answer, writing of the thesis], + ), + caption: [Planned schedule of the thesis], +) diff --git a/examples/expose/main.typ b/examples/expose/main.typ new file mode 100644 index 0000000..ad69646 --- /dev/null +++ b/examples/expose/main.typ @@ -0,0 +1,25 @@ +// Take a look at the file `template.typ` in the file panel +// to customize this template and discover how it works. +#import "../../lib/lib.typ": expose +#show: expose.with( + language: "en", + title: "Answer to the Ultimate Question of Life, the Universe, and Everything", + keywords: ("Life", "Universe", "Everything"), + author: "The Computer", + faculty: "Computer Science and Digital Society", + supervisors: ("Prof. Dr. Example", "Prof. Dr. Example"), + submission-date: datetime(year: 1948, month: 12, day: 10), + // Everything inside "after-content" will be automatically injected + // into the document after the actual content ends. + after-content: { + // Print bibliography + pagebreak(weak: true) + bibliography("bibliography.bib", style: "../../lib/assets/ieeetran.csl") + }, +) + +// Include chapters of expose +#include "chapters/01_introduction.typ" +#include "chapters/02_objectives.typ" +#include "chapters/03_approach.typ" +#include "chapters/04_schedule.typ" From 7a7a683c7a4e5c32e6d07854fa2616b9800fd5b4 Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 23:46:01 +0200 Subject: [PATCH 07/10] add german representation of month if language is set to german --- lib/translations.typ | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/translations.typ b/lib/translations.typ index 6a28108..456f54b 100644 --- a/lib/translations.typ +++ b/lib/translations.typ @@ -12,10 +12,25 @@ } } +#let month-names-de = ( + "Januar", + "Februar", + "März", + "April", + "Mai", + "Juni", + "Juli", + "August", + "September", + "Oktober", + "November", + "Dezember", +) + #let translations = ( submission-date-format: date => value( en: date.display("[month repr:long] [day], [year]"), - de: date.display("[day]. [month repr:long] [year]"), + de: date.display("[day]. ") + month-names-de.at(date.month() - 1) + date.display(" [year]"), ), bachelor-thesis: value( en: "Bachelor thesis", From a0303a18f3b983cf2e5a62916027cce1fcd59f18 Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 23:48:34 +0200 Subject: [PATCH 08/10] add how to use in readme --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 095b84a..22eef0f 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,22 @@ To use this package just add the following code to your [Typst](https://github.c ) ``` +### Exposé + +```typst +#import "@preview/haw-hamburg:0.9.0": expose + +#show: expose.with( + language: "en", + title: "Example title", + keywords: ("Keyword", "Important", "Super"), + author: "Example author", + faculty: "Computer Science and Digital Society", + supervisors: ("Prof. Dr. Example", "Prof. Dr. Example"), + submission-date: datetime(year: 1948, month: 12, day: 10), +) +``` + ## How to Compile This project contains an example setup that splits individual chapters into different files.\ @@ -90,3 +106,4 @@ Examples can be found inside of the [examples](https://github.com/LasseRosenow/H - For Bachelor theses see: [Bachelor thesis example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/bachelor-thesis) - For Master theses see: [Master thesis example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/master-thesis) - For reports see: [Report example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/report) +- For exposés see: [Expose example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/expose) \ No newline at end of file From 4a90c6a6cd087281f4979720d900f4e737fcfcc1 Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Fri, 3 Jul 2026 23:56:34 +0200 Subject: [PATCH 09/10] bump version --- README.md | 8 ++++---- lib/README.md | 23 ++++++++++++++++++++--- templates/bachelor-thesis/README.md | 2 +- templates/bachelor-thesis/src/main.typ | 2 +- templates/expose/README.md | 2 +- templates/expose/src/main.typ | 2 +- templates/master-thesis/README.md | 2 +- templates/master-thesis/src/main.typ | 2 +- templates/report/README.md | 2 +- typst.toml | 2 +- 10 files changed, 32 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 22eef0f..c321660 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Report ```typst -#import "@preview/haw-hamburg:0.9.0": report +#import "@preview/haw-hamburg:0.10.0": report #show: report.with( language: "en", @@ -22,7 +22,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Bachelor Thesis ```typst -#import "@preview/haw-hamburg:0.9.0": bachelor-thesis +#import "@preview/haw-hamburg:0.10.0": bachelor-thesis #show: bachelor-thesis.with( language: "en", @@ -46,7 +46,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Master Thesis ```typst -#import "@preview/haw-hamburg:0.9.0": master-thesis +#import "@preview/haw-hamburg:0.10.0": master-thesis #show: master-thesis.with( language: "en", @@ -70,7 +70,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Exposé ```typst -#import "@preview/haw-hamburg:0.9.0": expose +#import "@preview/haw-hamburg:0.10.0": expose #show: expose.with( language: "en", diff --git a/lib/README.md b/lib/README.md index f4693ac..679fdc1 100644 --- a/lib/README.md +++ b/lib/README.md @@ -9,7 +9,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Report ```typst -#import "@preview/haw-hamburg:0.9.0": report +#import "@preview/haw-hamburg:0.10.0": report #show: report.with( language: "en", @@ -22,7 +22,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Bachelor Thesis ```typst -#import "@preview/haw-hamburg:0.9.0": bachelor-thesis +#import "@preview/haw-hamburg:0.10.0": bachelor-thesis #show: bachelor-thesis.with( language: "en", @@ -46,7 +46,7 @@ To use this package just add the following code to your [Typst](https://github.c ### Master Thesis ```typst -#import "@preview/haw-hamburg:0.9.0": master-thesis +#import "@preview/haw-hamburg:0.10.0": master-thesis #show: master-thesis.with( language: "en", @@ -67,6 +67,22 @@ To use this package just add the following code to your [Typst](https://github.c ) ``` +### Exposé + +```typst +#import "@preview/haw-hamburg:0.10.0": expose + +#show: expose.with( + language: "en", + title: "Example title", + keywords: ("Keyword", "Important", "Super"), + author: "Example author", + faculty: "Computer Science and Digital Society", + supervisors: ("Prof. Dr. Example", "Prof. Dr. Example"), + submission-date: datetime(year: 1948, month: 12, day: 10), +) +``` + ## Examples Examples can be found inside of the [examples](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples) directory @@ -74,3 +90,4 @@ Examples can be found inside of the [examples](https://github.com/LasseRosenow/H - For Bachelor theses see: [Bachelor thesis example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/bachelor-thesis) - For Master theses see: [Master thesis example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/master-thesis) - For reports see: [Report example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/report) +- For exposés see: [Expose example](https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template/tree/main/examples/expose) diff --git a/templates/bachelor-thesis/README.md b/templates/bachelor-thesis/README.md index 77ea88f..4357843 100644 --- a/templates/bachelor-thesis/README.md +++ b/templates/bachelor-thesis/README.md @@ -7,7 +7,7 @@ This is an **`unofficial`** template for writing a bachelor thesis in the `HAW H To use this package just add the following code to your [Typst](https://github.com/typst/typst) document: ```typst -#import "@preview/haw-hamburg:0.9.0": bachelor-thesis +#import "@preview/haw-hamburg:0.10.0": bachelor-thesis #show: bachelor-thesis.with( language: "en", diff --git a/templates/bachelor-thesis/src/main.typ b/templates/bachelor-thesis/src/main.typ index f3923b3..96f36cd 100644 --- a/templates/bachelor-thesis/src/main.typ +++ b/templates/bachelor-thesis/src/main.typ @@ -1,4 +1,4 @@ -#import "@preview/haw-hamburg:0.9.0": bachelor-thesis, declaration-of-independent-processing +#import "@preview/haw-hamburg:0.10.0": bachelor-thesis, declaration-of-independent-processing // Register abbreviations and glossary #import "dependencies.typ": make-glossary, print-glossary, register-glossary diff --git a/templates/expose/README.md b/templates/expose/README.md index 11fef25..a8f118d 100644 --- a/templates/expose/README.md +++ b/templates/expose/README.md @@ -7,7 +7,7 @@ This is an **`unofficial`** template for writing an exposé (thesis proposal) in To use this package just add the following code to your [Typst](https://github.com/typst/typst) document: ```typst -#import "@preview/haw-hamburg:0.9.0": expose +#import "@preview/haw-hamburg:0.10.0": expose #show: expose.with( language: "en", diff --git a/templates/expose/src/main.typ b/templates/expose/src/main.typ index 3a21f13..f5f66f9 100644 --- a/templates/expose/src/main.typ +++ b/templates/expose/src/main.typ @@ -1,4 +1,4 @@ -#import "@preview/haw-hamburg:0.9.0": expose +#import "@preview/haw-hamburg:0.10.0": expose // Initialize template #show: expose.with( diff --git a/templates/master-thesis/README.md b/templates/master-thesis/README.md index 8412375..af6783e 100644 --- a/templates/master-thesis/README.md +++ b/templates/master-thesis/README.md @@ -7,7 +7,7 @@ This is an **`unofficial`** template for writing a master thesis in the `HAW Ham To use this package just add the following code to your [Typst](https://github.com/typst/typst) document: ```typst -#import "@preview/haw-hamburg:0.9.0": master-thesis +#import "@preview/haw-hamburg:0.10.0": master-thesis #show: master-thesis.with( language: "en", diff --git a/templates/master-thesis/src/main.typ b/templates/master-thesis/src/main.typ index 9a78760..afe7ec1 100644 --- a/templates/master-thesis/src/main.typ +++ b/templates/master-thesis/src/main.typ @@ -1,4 +1,4 @@ -#import "@preview/haw-hamburg:0.9.0": declaration-of-independent-processing, master-thesis +#import "@preview/haw-hamburg:0.10.0": declaration-of-independent-processing, master-thesis // Register abbreviations and glossary #import "dependencies.typ": make-glossary, print-glossary, register-glossary diff --git a/templates/report/README.md b/templates/report/README.md index c385692..87dc202 100644 --- a/templates/report/README.md +++ b/templates/report/README.md @@ -7,7 +7,7 @@ This is an **`unofficial`** template for writing a report in the `HAW Hamburg` F To use this package just add the following code to your [Typst](https://github.com/typst/typst) document: ```typst -#import "@preview/haw-hamburg:0.9.0": report +#import "@preview/haw-hamburg:0.10.0": report #show: report.with( language: "en", diff --git a/typst.toml b/typst.toml index f7a9c18..39e3286 100644 --- a/typst.toml +++ b/typst.toml @@ -1,5 +1,5 @@ [package] -version = "0.9.0" +version = "0.10.0" compiler = "0.15.0" authors = ["Lasse Rosenow"] license = "MIT" From a880100346ad61cdfa01abaa6be226b985bde8fe Mon Sep 17 00:00:00 2001 From: BennetKrz <77968577+BennetKrz@users.noreply.github.com> Date: Sat, 4 Jul 2026 00:20:30 +0200 Subject: [PATCH 10/10] add change log entier --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a311f9a..09375fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.10.0 + +- Add `expose` template for writing an exposé (thesis proposal), mirroring the exposé support of the official HAW LaTeX termpaper template: + - Cover page shows the document kind ("EXPOSÉ" / "PROPOSAL") above the author + - No abstract and no declaration of independent processing + - Optional `keywords` are printed at the beginning of the content +- Fix German dates showing English month names +- Add keywords as document property + ## 0.9.0 - Optimize template internals