Skip to content

Commit 4d5e3ed

Browse files
authored
exzellenz-tum-thesis:0.2.0 (#3711)
1 parent 0622266 commit 4d5e3ed

File tree

18 files changed

+749
-0
lines changed

18 files changed

+749
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
MIT No Attribution
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of this
4+
software and associated documentation files (the "Software"), to deal in the Software
5+
without restriction, including without limitation the rights to use, copy, modify,
6+
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
7+
permit persons to whom the Software is furnished to do so.
8+
9+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
10+
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
11+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
12+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
13+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
14+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# exzellenz-tum-thesis
2+
This is a Typst template for a thesis at TU Munich. I made it for my thesis in the School CIT, but I think it can be adapted to other schools as well.
3+
4+
## Usage
5+
You can use this template in the Typst web app by clicking "Start from template"
6+
on the dashboard and searching for `exzellenz-tum-thesis`.
7+
8+
Alternatively, you can use the CLI to kick this project off using the command
9+
```
10+
typst init @preview/exzellenz-tum-thesis
11+
```
12+
13+
Typst will create a new directory with all the files needed to get you started.
14+
15+
## Configuration
16+
This template exports the `exzellenz-tum-thesis` function with the following named arguments:
17+
18+
- `degree`: String - e.g. Bachelor, Master
19+
- `program`: String - e.g. Informatics, Electrical Engineering
20+
- `school`: String - e.g. School of Computation, Information and Technology
21+
- `examiner`: String - Your TUM professor
22+
- `supervisors`: Array of Strings - The official advisors and supervisors
23+
- `author`: String
24+
- `title-en`: String
25+
- `title-de`: String
26+
- `abstract-text`: Content block
27+
- `acknowledgements`: Content block - optional, if you have thanks to give
28+
- `submission-date`: String
29+
- `show-title-in-header`: Boolean - Should author and title appear in the header of each content page?
30+
- `draft`: Boolean - Set to false when finalizing the thesis
31+
32+
The template will initialize your package with a sample call to the `exzellenz-tum-thesis` function.
Lines changed: 58 additions & 0 deletions
Loading
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#let abstract(body) = {
2+
3+
set text(
4+
size: 12pt,
5+
lang: "en"
6+
)
7+
8+
set par(leading: 1em)
9+
10+
11+
v(1fr)
12+
13+
align(center, text(1.2em, weight: 600, "Abstract"))
14+
15+
align(
16+
center,
17+
text[
18+
#body
19+
]
20+
)
21+
22+
v(1fr)
23+
24+
pagebreak()
25+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#let acknowledgement(body) = {
2+
set text(
3+
size: 12pt,
4+
lang: "en",
5+
)
6+
7+
set par(leading: 1em)
8+
9+
10+
v(25mm)
11+
// --- Acknowledgements ---
12+
align(center, text(1.5em, weight: 700, "Acknowledgements"))
13+
body
14+
pagebreak()
15+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#let covertitel(
2+
degree: "",
3+
program: "",
4+
school: "",
5+
) = {
6+
// --- Cover ---
7+
v(1cm)
8+
align(center, image("TUM_logo.svg", width: 26%))
9+
10+
upper(align(center, text(font: "New Computer Modern", 1.75em, weight: 700, school)))
11+
upper(align(center, text(font: "New Computer Modern", 1.45em, weight: 500, program)))
12+
upper(align(center, text(font: "New Computer Modern", 1.45em, weight: 500, "Technische Universität München")))
13+
14+
v(15mm)
15+
16+
align(center, text(1.3em, weight: 100, degree + "’s Thesis in " + program))
17+
18+
v(15mm)
19+
}
20+
21+
22+
#let cover(
23+
title: "",
24+
degree: "",
25+
program: "",
26+
author: "",
27+
school: "",
28+
) = {
29+
30+
covertitel(degree: degree, program: program, school: school)
31+
32+
align(center, text(2em, weight: 700, title))
33+
34+
v(10mm)
35+
align(center, text(2em, weight: 500, author))
36+
37+
pagebreak()
38+
}
39+
40+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#let disclaimer(
2+
title: "",
3+
degree: "",
4+
author: "",
5+
submission-date: "",
6+
) = {
7+
8+
// --- Disclaimer ---
9+
v(1fr)
10+
text("Disclaimer", weight: 600, size: 1.4em)
11+
12+
v(1.5em)
13+
14+
text("I confirm that this " + lower(degree) + "’s thesis is my own work and I have documented all sources and material used.", size: 1.1em)
15+
16+
v(25mm)
17+
grid(
18+
columns: 2,
19+
gutter: 1fr,
20+
overline[#sym.wj #sym.space #sym.space #sym.space #sym.space Munich, #submission-date #sym.space #sym.space #sym.space #sym.space #sym.wj],
21+
overline[#sym.wj #sym.space #sym.space #sym.space #sym.space #sym.space #author #sym.space #sym.space #sym.space #sym.space #sym.space #sym.wj]
22+
)
23+
24+
v(15%)
25+
26+
pagebreak()
27+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#import "cover.typ": *
2+
#import "titlepage.typ": *
3+
#import "disclaimer.typ": *
4+
#import "acknowledgement.typ": *
5+
#import "abstract.typ": *
6+
7+
8+
#let exzellenz-tum-thesis(
9+
degree: "The Degree",
10+
program: "The Program",
11+
school: "The School",
12+
examiner: "Your Supervisor",
13+
supervisors: ("The first supervisor", "The second supervisor"),
14+
author: "The Author",
15+
title-en: "English Title",
16+
title-de: "German Title",
17+
abstract-text: none,
18+
acknowledgements: none,
19+
submission-date: "(Handover Date)",
20+
show-title-in-header: true,
21+
draft: true,
22+
body,
23+
) = {
24+
25+
let draft_string = ""
26+
if draft{
27+
draft_string = "DRAFT - "
28+
}
29+
30+
set document(author: author, title: draft_string + title-en)
31+
set page(
32+
numbering: "1",
33+
number-align: center,
34+
margin: (left: 25mm, right: 25mm, top: 30mm, bottom: 30mm),
35+
header: {
36+
set text(8pt)
37+
h(1fr)
38+
if draft [
39+
DRAFT
40+
]
41+
},
42+
)
43+
44+
set page(numbering: none)
45+
46+
cover(
47+
title: draft_string + title-en,
48+
degree: degree,
49+
program: program,
50+
author: author,
51+
school: school
52+
)
53+
54+
titlepage(
55+
title: draft_string + title-en,
56+
title-de: title-de,
57+
degree: degree,
58+
program: program,
59+
school: school,
60+
examiner: examiner,
61+
supervisors: supervisors,
62+
author: author,
63+
submission-date: draft_string + submission-date
64+
)
65+
66+
disclaimer(
67+
title: title-en,
68+
degree: degree,
69+
author: author,
70+
submission-date: submission-date
71+
)
72+
if acknowledgements != none {
73+
acknowledgement(acknowledgements)
74+
}
75+
76+
abstract(abstract-text)
77+
78+
set page(
79+
header: {
80+
set text(8pt)
81+
if show-title-in-header [
82+
#author - #title-en
83+
]
84+
h(1fr)
85+
if draft [
86+
DRAFT
87+
]
88+
},
89+
)
90+
91+
body
92+
93+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#import "utils.typ": todo
2+
3+
#heading(numbering: none)[Appendix A: Supplementary Material]
4+
5+
-- Supplementary Material --
6+
7+
#todo[Your appendix content goes here]

0 commit comments

Comments
 (0)