Compare commits

..

No commits in common. "47bda566637b95569f3f4bee99828c59f70b2a8b" and "2df43f537b308433fc2285829631c9d52b8bed1c" have entirely different histories.

19 changed files with 275 additions and 163 deletions

View file

@ -1,5 +1,3 @@
![HKA Logo](./template/logo/hka_horizontal.svg)
# Typst Template HKA
This is a thesis template written in [Typst](https://typst.app/),
@ -13,7 +11,7 @@ on the dashboard and searching for `unofficial-hka-thesis`.
Locally, you can use the following command to start with this templates:
```bash
typst init @preview/unofficial-hka-thesis:1.0.2
typst init @preview/unofficial-hka-thesis:1.0.0
```
### Features

BIN
assets/HKALogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

BIN
assets/company.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

114
assets/company.svg Normal file
View file

@ -0,0 +1,114 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="360.000000pt" height="360.000000pt" viewBox="0 0 360.000000 360.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,360.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1670 2816 c-25 -13 -58 -42 -75 -65 -24 -35 -30 -54 -33 -111 -4
-60 -1 -75 22 -116 25 -44 26 -54 26 -185 0 -126 2 -139 18 -139 15 0 17 11
17 97 0 68 4 98 13 100 9 4 12 -20 12 -96 l0 -101 130 0 130 0 0 136 c0 116 3
140 18 162 78 112 41 261 -79 323 -55 28 -142 26 -199 -5z m199 -55 c35 -25
59 -74 67 -135 6 -38 4 -46 -10 -46 -12 0 -16 10 -16 40 0 70 -46 132 -107
145 -18 3 -33 11 -33 17 0 16 66 2 99 -21z"/>
<path d="M1316 2164 c-9 -8 -16 -24 -16 -35 0 -18 15 -19 470 -21 l470 -3 0
27 c0 17 -8 31 -19 38 -13 6 -174 10 -455 10 -382 0 -436 -2 -450 -16z"/>
<path d="M1670 1995 l0 -85 105 0 105 0 0 85 0 85 -105 0 -105 0 0 -85z"/>
<path d="M1900 1985 c0 -19 13 -40 40 -67 162 -162 4 -442 -220 -388 -70 17
-122 58 -154 121 -45 90 -32 187 36 264 34 39 51 85 30 85 -19 0 -80 -63 -106
-109 -102 -188 35 -414 250 -413 158 1 274 119 274 276 0 105 -37 173 -132
245 -16 12 -18 11 -18 -14z"/>
<path d="M1617 1902 c-25 -27 -57 -104 -57 -137 0 -80 58 -173 127 -202 76
-31 186 -9 240 49 69 73 71 209 4 286 -23 26 -31 28 -31 7 0 -13 -19 -15 -127
-13 -96 2 -127 6 -125 16 3 17 -12 15 -31 -6z"/>
<path d="M1850 1224 c0 -3 9 -22 20 -44 11 -22 20 -51 20 -65 0 -18 5 -25 20
-25 13 0 20 7 20 20 0 12 9 38 20 60 24 48 25 50 2 50 -11 0 -23 -11 -29 -27
l-10 -28 -11 26 c-8 21 -52 49 -52 33z"/>
<path d="M917 1202 c-22 -24 -22 -75 1 -95 20 -18 59 -22 81 -8 20 13 3 32
-23 25 -28 -7 -50 17 -41 46 5 17 13 20 38 18 23 -2 32 1 32 12 0 24 -67 25
-88 2z"/>
<path d="M1067 1202 c-38 -41 -10 -112 44 -112 30 0 43 9 58 37 33 64 -54 128
-102 75z m68 -23 c12 -19 -4 -59 -24 -59 -22 0 -34 25 -26 51 7 20 40 26 50 8z"/>
<path d="M1220 1155 c0 -51 3 -65 15 -65 10 0 15 10 15 33 l0 32 20 -25 c20
-26 21 -26 38 5 10 18 11 17 12 -12 0 -26 4 -33 20 -33 18 0 20 7 20 65 0 62
-1 65 -24 65 -18 0 -27 -8 -35 -32 l-12 -33 -16 33 c-9 19 -23 32 -34 32 -17
0 -19 -8 -19 -65z"/>
<path d="M1410 1155 c0 -51 3 -65 15 -65 8 0 15 9 15 19 0 14 8 21 27 23 19 2
30 11 37 30 13 37 -6 58 -55 58 l-39 0 0 -65z m60 20 c0 -8 -7 -15 -15 -15 -8
0 -15 7 -15 15 0 8 7 15 15 15 8 0 15 -7 15 -15z"/>
<path d="M1556 1168 c-10 -29 -21 -59 -23 -65 -3 -8 3 -13 15 -13 11 0 22 5
24 12 6 17 36 18 42 2 3 -8 14 -14 25 -14 18 0 18 3 -7 65 -32 81 -50 85 -76
13z m40 -25 c-11 -11 -19 6 -11 24 8 17 8 17 12 0 3 -10 2 -21 -1 -24z"/>
<path d="M1690 1155 c0 -58 2 -65 20 -65 16 0 20 7 20 33 l0 32 26 -32 c40
-52 54 -44 54 32 0 51 -3 65 -15 65 -10 0 -15 -10 -15 -30 0 -16 -4 -30 -8
-30 -4 0 -16 14 -25 30 -10 17 -27 30 -38 30 -17 0 -19 -7 -19 -65z"/>
<path d="M2050 1155 c0 -51 3 -65 15 -65 10 0 15 10 15 30 0 38 10 38 35 0 11
-16 28 -30 38 -30 14 0 17 10 17 65 0 58 -2 65 -20 65 -16 0 -20 -7 -20 -32
l0 -33 -26 33 c-40 51 -54 43 -54 -33z"/>
<path d="M2231 1161 c-26 -71 -26 -71 -1 -71 11 0 20 7 20 15 0 8 9 15 20 15
11 0 20 -7 20 -15 0 -8 9 -15 20 -15 25 0 25 0 -1 71 -15 41 -27 59 -39 59
-12 0 -24 -18 -39 -59z m45 -18 c-11 -11 -19 6 -11 24 8 17 8 17 12 0 3 -10 2
-21 -1 -24z"/>
<path d="M2370 1155 c0 -59 2 -65 21 -65 18 0 21 5 17 30 -5 33 7 41 15 10 3
-11 10 -20 17 -20 7 0 14 9 17 20 8 32 26 23 21 -10 -4 -24 -1 -30 14 -30 16
0 18 9 18 65 0 59 -2 65 -20 65 -12 0 -25 -10 -32 -25 -6 -14 -15 -25 -19 -25
-5 0 -11 11 -15 25 -4 18 -13 25 -30 25 -23 0 -24 -3 -24 -65z"/>
<path d="M2560 1155 l0 -65 50 0 c38 0 50 4 50 15 0 10 -10 15 -30 15 -16 0
-30 5 -30 10 0 6 11 10 25 10 16 0 25 6 25 15 0 9 -9 15 -24 15 -14 0 -28 5
-31 10 -4 6 6 10 23 10 17 0 32 6 36 15 4 12 -4 15 -44 15 l-50 0 0 -65z"/>
<path d="M1040 1014 c1 -5 6 -19 13 -31 l13 -23 11 30 c6 17 7 30 2 30 -5 0
-9 -5 -9 -11 0 -8 -5 -8 -15 1 -8 7 -15 9 -15 4z"/>
<path d="M1103 1004 c-3 -8 2 -23 11 -32 15 -15 17 -15 32 0 21 21 11 48 -16
48 -11 0 -23 -7 -27 -16z m37 -9 c0 -8 -4 -15 -10 -15 -5 0 -10 7 -10 15 0 8
5 15 10 15 6 0 10 -7 10 -15z"/>
<path d="M1183 995 c2 -23 7 -30 22 -30 14 0 21 8 23 28 2 15 -1 27 -7 27 -6
0 -11 -9 -11 -20 0 -27 -17 -25 -23 3 -4 15 -5 12 -4 -8z"/>
<path d="M1250 991 c0 -31 14 -42 23 -18 4 10 6 10 6 0 2 -26 17 -12 16 15 0
20 -6 28 -22 30 -20 3 -23 -1 -23 -27z"/>
<path d="M1338 1013 c6 -2 12 -16 12 -29 0 -34 17 -30 22 6 4 27 2 30 -21 29
-14 0 -20 -3 -13 -6z"/>
<path d="M1402 995 c-15 -33 -16 -32 17 -32 27 0 28 2 19 29 -12 35 -21 35
-36 3z"/>
<path d="M1464 1005 c-4 -8 -4 -22 0 -30 7 -20 46 -19 46 1 0 11 -6 14 -20 9
-28 -9 -26 13 3 25 l22 9 -23 0 c-12 1 -25 -6 -28 -14z"/>
<path d="M1530 990 c0 -23 4 -30 20 -30 11 0 20 5 20 10 0 6 -4 10 -10 10 -5
0 -10 9 -10 20 0 11 -4 20 -10 20 -5 0 -10 -13 -10 -30z"/>
<path d="M1590 990 c0 -16 5 -30 10 -30 6 0 10 14 10 30 0 17 -4 30 -10 30 -5
0 -10 -13 -10 -30z"/>
<path d="M1631 988 c1 -19 3 -25 6 -15 5 18 6 18 24 1 18 -17 19 -16 19 17 0
27 -3 31 -11 19 -8 -11 -12 -12 -16 -2 -9 24 -23 12 -22 -20z"/>
<path d="M1700 990 c0 -26 4 -30 26 -30 14 0 23 4 19 10 -4 6 -11 8 -16 5 -5
-4 -9 -1 -9 4 0 6 6 11 13 11 8 0 8 3 -2 9 -11 7 -10 10 5 14 13 3 11 5 -8 6
-25 1 -28 -3 -28 -29z"/>
<path d="M1785 994 c-24 -37 -11 -41 15 -5 12 17 17 31 12 31 -5 0 -17 -12
-27 -26z"/>
<path d="M1840 1009 c0 -7 8 -18 18 -26 16 -14 16 -14 0 -9 -10 3 -18 1 -18
-4 0 -12 37 -13 44 -1 3 5 -1 14 -10 21 -12 11 -12 15 -2 21 9 6 6 9 -9 9 -13
0 -23 -5 -23 -11z"/>
<path d="M1900 990 c0 -26 4 -30 28 -30 24 1 25 2 10 14 -10 7 -18 21 -18 30
0 9 -4 16 -10 16 -5 0 -10 -13 -10 -30z"/>
<path d="M1964 1005 c-8 -21 2 -45 19 -45 21 0 38 25 31 44 -8 20 -43 21 -50
1z m36 -10 c0 -8 -4 -15 -10 -15 -5 0 -10 7 -10 15 0 8 5 15 10 15 6 0 10 -7
10 -15z"/>
<path d="M2036 1004 c-4 -9 -1 -23 5 -30 16 -19 49 -18 49 2 0 11 -6 14 -20 9
-15 -5 -20 -2 -20 10 0 11 5 15 15 11 8 -3 15 -1 15 4 0 17 -37 11 -44 -6z"/>
<path d="M2124 1004 c3 -8 2 -13 -3 -10 -5 3 -11 -2 -13 -12 -4 -15 1 -19 22
-19 26 0 27 2 18 29 -6 15 -14 28 -20 28 -6 0 -7 -7 -4 -16z"/>
<path d="M2172 990 c0 -16 4 -30 9 -30 5 0 9 8 9 18 1 16 1 16 11 0 15 -27 29
-21 29 12 0 17 -4 30 -10 30 -5 0 -10 -5 -10 -12 0 -9 -3 -9 -12 0 -19 19 -25
14 -26 -18z"/>
<path d="M2271 990 c0 -30 1 -32 11 -16 11 19 11 19 24 1 13 -17 14 -16 13 16
0 19 -3 28 -6 22 -2 -7 -11 -13 -18 -13 -7 0 -16 6 -18 13 -3 6 -6 -4 -6 -23z"/>
<path d="M2340 990 c0 -26 4 -30 26 -30 14 0 23 4 19 10 -4 6 -11 8 -16 5 -5
-4 -9 -1 -9 4 0 6 6 11 13 11 8 0 8 3 -2 9 -11 7 -10 10 5 14 13 3 11 5 -8 6
-25 1 -28 -3 -28 -29z"/>
<path d="M2400 990 c0 -16 5 -30 10 -30 6 0 10 5 10 11 0 8 5 8 15 -1 13 -11
15 -8 15 19 0 26 -4 31 -25 31 -21 0 -25 -5 -25 -30z m40 16 c0 -3 -4 -8 -10
-11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z"/>
<path d="M2470 990 c0 -26 4 -30 26 -30 14 0 23 4 19 10 -4 6 -11 8 -16 5 -5
-4 -9 -1 -9 4 0 6 6 11 13 11 8 0 8 3 -2 9 -11 7 -10 10 5 14 13 3 11 5 -8 6
-25 1 -28 -3 -28 -29z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

130
lib.typ
View file

@ -1,6 +1,5 @@
#import "modules/titlepage.typ": *
#import "@preview/glossarium:0.5.9": print-glossary
#import "@preview/hydra:0.6.3": hydra
#import "@preview/glossarium:0.5.1": print-glossary, register-glossary
#let in-outline = state("in-outline", false)
#let flex-caption(long, short) = context {
@ -8,27 +7,25 @@
}
#let preface(
settings: (),
preface
settings: ()
) = {
// Page Setup
set page(
margin: (
left: settings.page-margins.left,
right: settings.page-margins.right,
top: settings.page-margins.top,
bottom: settings.page-margins.bottom
left: settings.pageMargins.left,
right: settings.pageMargins.right,
top: settings.pageMargins.top,
bottom: settings.pageMargins.bottom
),
header-ascent: 2%,
numbering: "i",
number-align: right
numbering: "I",
number-align: center
)
counter(page).update(2)
// Body Font Family
set text(
font: settings.font-body,
size: settings.font-body-size,
font: settings.fontBody,
size: settings.fontBodySize,
lang: "en"
)
@ -36,29 +33,27 @@
// Headings
show heading: set block(
below: settings.headings-spacing.below,
above: settings.headings-spacing.above
below: settings.headingsSpacing.below,
above: settings.headingsSpacing.above
)
show heading: set text(font: settings.font-heading)
show heading.where(level: 1): set text(font: settings.font-heading, size: settings.font-heading-size)
show heading: set text(font: settings.fontBody, size: settings.fontHeadingSize)
set heading(numbering: none)
// Paragraphs
set par(leading: settings.distance-between-lines, justify: true)
set par(leading: settings.distanceBetweenLines, justify: true)
// Figures
show figure: set text(size: settings.font-figures-subtitle-size)
show figure: set text(size: settings.fontFiguresSubtitleSize)
//Indentation of Lists
set list(indent: settings.list-indentation)
set enum(indent: settings.list-indentation)
preface
set list(indent: settings.listIndentation)
set enum(indent: settings.listIndentation)
}
#let listings(
abbreviations: ()
) = {
register-glossary(abbreviations)
// Enable short captions to omit citations
show outline: it => {
in-outline.update(true)
@ -73,7 +68,7 @@
},
target: heading.where(supplement: [Chapter], outlined: true),
indent: auto,
indent: true,
depth: 3
)
@ -120,12 +115,12 @@
)
}
#let main-body(
#let mainBody(
settings: (),
body
) = {
// Main Body
set heading(numbering: settings.headings-numbering-style, supplement: [Chapter])
set heading(numbering: settings.headingsNumberingStyle, supplement: [Chapter])
show heading.where(level: 1): it => {
if it.numbering == none {
[
@ -144,39 +139,74 @@
}
set figure(numbering: it => {
let numbering-of-heading = counter(heading).display();
let top-level-number = numbering-of-heading.slice(0, numbering-of-heading.position("."))
[#top-level-number.#it]
let numberingOfHeading = counter(heading).display();
let topLevelNumber = numberingOfHeading.slice(0, numberingOfHeading.position("."))
[#topLevelNumber.#it]
})
set page(
// Header with current heading
header: context {
grid(columns: (1fr, 1fr),
align(left, emph(hydra(1))),
align(right, emph(hydra(2)))
let elements = query(
selector(heading.where(depth: 1)).after(here())
)
if hydra(1) != none {
line(length: 100%, stroke: 0.5pt, start: (0%, -1.8em))
// Don't show header if a new chapter is starting at the current page
if elements != () and elements.first().location().page() == here().page() and elements.first().depth == 1 {
return;
}
let displayHeading
let displayNumbering
let element
elements = query(selector(heading).after(here()))
if elements != () and elements.first().location().page() == here().page() {
element = elements.first()
if element.has("numbering") and element.numbering != none {
displayNumbering = numbering(element.numbering, ..counter(heading).at(element.location()))
} else {
displayNumbering = numbering(settings.headingsNumberingStyle, ..counter(heading).at(element.location()))
}
displayHeading = element.body
} else {
// Otherwise take the next heading backwards
elements = query(
heading.where().before(here())
)
if elements != () {
element = elements.last()
if element.has("numbering") and element.numbering != none {
displayNumbering = numbering(element.numbering, ..counter(heading).at(element.location()))
} else {
displayNumbering = numbering(settings.headingsNumberingStyle, ..counter(heading).at(element.location()))
}
displayHeading = element.body
}
}
align(center, displayNumbering + " " + displayHeading)
line(length: 100%, stroke: (paint: gray))
},
// Footer with Page Numbering
footer: context {
let current-page = counter(page).display()
let final-page = counter(page).final().first()
let currentPage = counter(page).display()
let finalPage = counter(page).final().first()
align(right, current-page)
line(length: 100%, stroke: (paint: gray))
align(center)[#currentPage / #finalPage]
}
)
set page(
numbering: "1",
numbering: "1/1",
number-align: center,
)
counter(page).update(1)
// Set after header and after all initial pages to just apply it to the acutal content
set par(spacing: settings.space-before-paragraph, justify: true)
set par(spacing: settings.spaceBeforeParagraph)
// Actual Content
body
@ -190,39 +220,39 @@
heading("Appendix", outlined: true, numbering: none)
},
target: heading.where(supplement: [Appendix], outlined: true),
indent: auto,
indent: true,
depth: 3
)
counter(heading).update(0)
set heading(numbering: "A.1", supplement: [Appendix])
set heading(numbering: "A.1.", supplement: [Appendix])
show heading: it => {
let prefixed-numbering;
let prefixedNumbering;
if it.level == 1 and it.numbering != none {
prefixed-numbering = [#it.supplement #counter(heading).display()]
prefixedNumbering = [#it.supplement #counter(heading).display()]
} else if it.numbering != none {
prefixed-numbering = [#counter(heading).display()]
prefixedNumbering = [#counter(heading).display()]
}
block(
below: 0.85em,
above: 1.75em
)[
#prefixed-numbering #it.body
#prefixedNumbering #it.body
]
}
set figure(numbering: it => {
let alphabet = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
let numbering-of-heading = counter(heading).display();
let top-level-number = numbering-of-heading.slice(0, numbering-of-heading.position("."))
let index = alphabet.position((el) => { el == top-level-number})
let numberingOfHeading = counter(heading).display();
let topLevelNumber = numberingOfHeading.slice(0, numberingOfHeading.position("."))
let index = alphabet.position((el) => { el == topLevelNumber})
if index == none {
let numberingToAlphabet = numbering("A", int(top-level-number))
let numberingToAlphabet = numbering("A", int(topLevelNumber))
[#numberingToAlphabet.#it]
} else {
[#top-level-number.#it]
[#topLevelNumber.#it]
}
})

View file

@ -1,4 +1,4 @@
#let open-title-page(settings: ()) = {
#let openTitlePage(settings: ()) = {
set page(
paper: "a4",
margin: (left: 30mm, right: 30mm, top: 40mm, bottom: 40mm),
@ -8,58 +8,58 @@
)
set text(
font: settings.font-body,
size: settings.font-body-size,
font: settings.fontBody,
size: settings.fontBodySize,
lang: "en"
)
set par(leading: 1em)
}
#let finish-title-page(
#let finishTitlePage(
settings: (),
degree: "",
program: "",
title: "",
subtitle: "",
title-german: "",
subtitle-german: "",
titleGerman: "",
subtitleGerman: "",
author: "",
matriculation-number: "",
place-of-work: "",
matriculationNumber: "",
placeOfWork: "",
supervisor: "",
advisor: "",
start-date: none,
submission-date: none,
startDate: none,
submissionDate: none,
) = {
v(5mm)
align(center, text(font: settings.font-heading, 1.9em, weight: 700, "University of Applied Sciences Karlsruhe"))
align(center, text(font: settings.fontHeading, 1.9em, weight: 700, "University of Applied Sciences Karlsruhe"))
v(15mm)
align(center, text(font: settings.font-heading, 1.5em, weight: 100, degree + "s Thesis in " + program))
align(center, text(font: settings.fontHeading, 1.5em, weight: 100, degree + "s Thesis in " + program))
v(8mm)
if title-german.len() > 0 {
if subtitle.len() > 0 or subtitle-german.len() > 0 {
align(center, text(font: settings.font-heading, 1.2em, weight: 700, title))
align(center, text(font: settings.font-heading, 1.2em, weight: 500, subtitle))
if titleGerman.len() > 0 {
if subtitle.len() > 0 or subtitleGerman.len() > 0 {
align(center, text(font: settings.fontHeading, 1.2em, weight: 700, title))
align(center, text(font: settings.fontHeading, 1.2em, weight: 500, subtitle))
v(10mm)
align(center, text(font: settings.font-heading, 1.2em, weight: 700, title-german))
align(center, text(font: settings.font-heading, 1.2em, weight: 500, subtitle-german))
align(center, text(font: settings.fontHeading, 1.2em, weight: 700, titleGerman))
align(center, text(font: settings.fontHeading, 1.2em, weight: 500, subtitleGerman))
} else {
align(center, text(font: settings.font-heading, 1.4em, weight: 700, title))
align(center, text(font: settings.fontHeading, 1.4em, weight: 700, title))
v(10mm)
align(center, text(font: settings.font-heading, 1.4em, weight: 700, title-german))
align(center, text(font: settings.fontHeading, 1.4em, weight: 700, titleGerman))
}
} else {
if subtitle.len() > 0 {
align(center, text(font: settings.font-heading, 1.8em, weight: 700, title))
align(center, text(font: settings.fontHeading, 1.8em, weight: 700, title))
v(5mm)
align(center, text(font: settings.font-heading, 1.4em, weight: 500, subtitle))
align(center, text(font: settings.fontHeading, 1.4em, weight: 500, subtitle))
} else {
align(center, text(font: settings.font-heading, 2.0em, weight: 700, title))
align(center, text(font: settings.fontHeading, 2.0em, weight: 700, title))
}
}
@ -73,12 +73,12 @@
columns: (3fr, 3fr),
gutter: 1em,
strong("Author: "), author,
strong("Matriculation Number: "), matriculation-number,
strong("Place of Work: "), place-of-work,
strong("Matriculation Number: "), matriculationNumber,
strong("Place of Work: "), placeOfWork,
strong("Supervisor: "), supervisor,
strong("Advisor: "), advisor,
strong("Start Date: "), start-date,
strong("Submission Date: "), submission-date,
strong("Start Date: "), startDate,
strong("Submission Date: "), submissionDate,
)
)
} else {
@ -90,11 +90,11 @@
columns: (3fr, 3fr),
gutter: 1em,
strong("Author: "), author,
strong("Matriculation Number: "), matriculation-number,
strong("Place of Work: "), place-of-work,
strong("Matriculation Number: "), matriculationNumber,
strong("Place of Work: "), placeOfWork,
strong("Supervisor: "), supervisor,
strong("Start Date: "), start-date,
strong("Submission Date: "), submission-date,
strong("Start Date: "), startDate,
strong("Submission Date: "), submissionDate,
)
)
}

View file

@ -1,6 +1,6 @@
#import "@preview/unofficial-hka-thesis:1.0.2": todo, flex-caption
#import "@preview/glossarium:0.5.9": gls, glspl
#import "@preview/unofficial-hka-thesis:1.0.0": todo, flex-caption
#import "@preview/glossarium:0.5.1": gls, glspl
= Introduction

View file

@ -1,5 +1,5 @@
#import "@preview/unofficial-hka-thesis:1.0.2": todo, flex-caption
#import "@preview/acrostiche:0.6.0": acr, acrpl
#import "@preview/unofficial-hka-thesis:1.0.0": todo, flex-caption
#import "@preview/acrostiche:0.2.0": acr, acrpl
= Foundations

BIN
template/logo/HKALogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="227" height="59" viewBox="0 0 227 59" xmlns="http://www.w3.org/2000/svg">
<title>Hochschule Karlsruhe</title>
<desc>Hochschule Karlsruhe - University of Applied Sciences</desc>
<g transform="translate(0,0)">
<path fill="rgb(215, 35, 5)" fill-rule="evenodd" d="M74.79 0c.431 0 .791.37.791.814v57.67c0 .443-.36.814-.791.814h-8.205c-.398 0-.735-.316-.785-.714l-.006-.1V.813c0-.444.36-.814.791-.814h8.205zM34.942 0c.439 0 .804.37.804.815v24.297h24.928c.438 0 .804.37.767.852v7.481l-.006.101c-.05.398-.393.714-.798.714H35.71v24.223c0 .444-.366.815-.804.815h-8.334c-.438 0-.804-.37-.804-.815V34.186H.841c-.475.037-.841-.37-.841-.815v-7.445c0-.444.402-.814.84-.814h24.965V.815c0-.445.365-.815.804-.815z"/>
</g>
<g transform="translate(70,-74.109)">
<path fill="rgb(215, 35, 5)" fill-rule="evenodd" d="M74.602 74.109c.398-.258.833-.11.833.444v9.57c0 .518-.29.96-.688 1.257l-31.02 18.069 32.25 19.067c.471.258.725.739.688 1.22v9.496c0 .147-.036.258-.108.37-.181.258-.543.295-.797.11l-40.358-24.425v23.427l-.007.101c-.05.397-.389.712-.79.712h-8.252c-.435 0-.797-.37-.797-.813v-57.57c0-.443.362-.813.797-.813h8.252l.1.007c.388.056.697.434.697.843v22.356z"/>
</g>
<g transform="translate(140,-145.796)">
<path fill="rgb(215, 35, 5)" fill-rule="evenodd" d="M57.072 145.796c.474 0 .912.296 1.094.74l28.782 57.666c.037.11.073.221.037.37-.037.332-.328.554-.657.517H76.041c-.474-.037-.912-.296-1.167-.74l-8.537-17.273h-29L28.69 204.35c-.256.443-.694.702-1.204.74h-9.923c-.11 0-.255 0-.365-.075-.328-.148-.437-.555-.255-.85l29.549-57.63c.255-.443.693-.74 1.203-.74zm-5.364 11.088l-10.039 20.73H61.71l-10.002-20.73z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="o-icon c-header__headercontainer--hkaIcon" width="87" height="206" viewBox="0 0 87 206" xmlns="http://www.w3.org/2000/svg">
<title>Hochschule Karlsruhe</title>
<desc>Hochschule Karlsruhe</desc>
<path fill="rgb(215, 35, 5)" fill-rule="evenodd" d="M57.072 145.796c.474 0 .912.296 1.094.74l28.782 57.666c.037.11.073.221.037.37-.037.332-.328.554-.657.517H76.041c-.474-.037-.912-.296-1.167-.74l-8.537-17.273h-29L28.69 204.35c-.256.443-.694.702-1.204.74h-9.923c-.11 0-.255 0-.365-.075-.328-.148-.437-.555-.255-.85l29.549-57.63c.255-.443.693-.74 1.203-.74zm-5.364 11.088l-10.039 20.73H61.71l-10.002-20.73zm22.894-82.775c.398-.258.833-.11.833.444v9.57c0 .518-.29.96-.688 1.257l-31.02 18.069 32.25 19.067c.471.258.725.739.688 1.22v9.496c0 .147-.036.258-.108.37-.181.258-.543.295-.797.11l-40.358-24.425v23.427l-.007.101c-.05.397-.389.712-.79.712h-8.252c-.435 0-.797-.37-.797-.813v-57.57c0-.443.362-.813.797-.813h8.252l.1.007c.388.056.697.434.697.843v22.356zM74.79 0c.431 0 .791.37.791.814v57.67c0 .443-.36.814-.791.814h-8.205c-.398 0-.735-.316-.785-.714l-.006-.1V.813c0-.444.36-.814.791-.814h8.205zM34.942 0c.439 0 .804.37.804.815v24.297h24.928c.438 0 .804.37.767.852v7.481l-.006.101c-.05.398-.393.714-.798.714H35.71v24.223c0 .444-.366.815-.804.815h-8.334c-.438 0-.804-.37-.804-.815V34.186H.841c-.475.037-.841-.37-.841-.815v-7.445c0-.444.402-.814.84-.814h24.965V.815c0-.445.365-.815.804-.815z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,14 +1,15 @@
#let degree = "Master" //Bachelor or Master
#let program = "Computer Science"
#let title-english = "Title English"
#let subtitle-english = "Subtitle English"
#let title-german = "Title German"
#let subtitle-german = "Subtitle German"
#let titleEnglish = "Title English"
#let subtitleEnglish = "Subtitle English"
#let titleGerman = "Title German"
#let subtitleGerman = "Subtitle German"
#let author = "Max Mustermann"
#let matriculation-number = "12345"
#let place-of-work = "ABC"
#let matriculationNumber = "12345"
#let placeOfWork = "ABC"
#let supervisor = "Prof Dr. Max Mustermann"
#let advisor = "Prof Dr. John Doe"
#let start-date = "01.03.2024"
#let submission-date = "31.08.2024"
#let startDate = "01.03.2024"
#let submissionDate = "31.08.2024"
#let submissionDateExposé = "29.02.2024"
#let place = "Karlsruhe"

View file

@ -1,20 +1,20 @@
#let settings = (
font-body: "New Computer Modern",
font-body-size: 12pt,
font-figures-subtitle-size: 0.85em,
fontBody: "New Computer Modern",
fontBodySize: 12pt,
fontFiguresSubtitleSize: 0.85em,
// At the moment only used on the title page
font-heading: "New Computer Modern Sans",
font-heading-size: 16pt,
headings-numbering-style: "1.1.",
headings-spacing: (
fontHeading: "New Computer Modern Sans",
fontHeadingSize: 16pt,
headingsNumberingStyle: "1.1.",
headingsSpacing: (
below: 0.85em,
above: 1.75em
),
citation-style: "ieee",
space-before-paragraph: 24pt,
distance-between-lines: 1em,
list-indentation: 2.5em,
page-margins: (
citationStyle: "ieee",
spaceBeforeParagraph: 24pt,
distanceBetweenLines: 1em,
listIndentation: 2.5em,
pageMargins: (
top: 4cm,
bottom: 2.5cm,
left: 2.5cm,

View file

@ -1,4 +1,4 @@
#import "@preview/unofficial-hka-thesis:1.0.2": todo, flex-caption
#import "@preview/unofficial-hka-thesis:1.0.0": todo, flex-caption
#heading(outlined: false, numbering: none, "Abstract")

View file

@ -1,4 +1,4 @@
#import "@preview/unofficial-hka-thesis:1.0.2": todo, flex-caption
#import "@preview/unofficial-hka-thesis:1.0.0": todo, flex-caption
#heading(outlined: false, numbering: none, "Zusammenfassung")

Binary file not shown.

View file

@ -1,48 +1,43 @@
#import "@preview/unofficial-hka-thesis:1.0.2": *
#import "@preview/unofficial-hka-thesis:1.0.0": *
#import "abbreviations.typ": abbreviations
#import "settings/metadata.typ": *
#import "settings/settings.typ": *
#import "@preview/glossarium:0.5.9": make-glossary, register-glossary
#import "@preview/glossarium:0.5.1": make-glossary
#show: make-glossary
#register-glossary(abbreviations)
#set document(title: title-english, author: author)
#open-title-page(settings: settings)
#set document(title: titleEnglish, author: author)
#openTitlePage(settings: settings)
// Customize your company logo or just use the one from the university
#grid(
columns: (1fr, auto, 15pt, auto),
columns: (1fr, 1fr),
align(left)[
#image("/logo/company.svg", height: 1.5cm)
],
align(right)[
#image("/logo/hka_text.svg", height: 1.0cm)
],
box(width: auto),
align(right)[
#image("/logo/hka_horizontal.svg", height: 1.0cm)
#image("/logo/HKALogo.png", height: 2cm)
]
)
#finish-title-page(
#finishTitlePage(
settings: settings,
degree: degree,
program: program,
title: title-english,
subtitle: subtitle-english,
title: titleEnglish,
subtitle: subtitleEnglish,
author: author,
matriculation-number: matriculation-number,
place-of-work: place-of-work,
matriculationNumber: matriculationNumber,
placeOfWork: placeOfWork,
supervisor: supervisor,
advisor: advisor,
start-date: start-date,
submission-date: submission-date,
startDate: startDate,
submissionDate: submissionDate,
)
#show: preface.with(settings: settings)
#preface(settings: settings)
// Citations - applied here so that you are able to use a local CSL file to define the citation style
#set cite(style: settings.citation-style)
#set cite(style: settings.citationStyle)
// Statutory Declaration
#include "supplementary/statutoryDeclaration.typ"
@ -58,7 +53,7 @@
#listings(abbreviations: abbreviations)
#show: main-body.with(
#show: mainBody.with(
settings: settings
)

View file

@ -1,6 +1,6 @@
[package]
name = "unofficial-hka-thesis"
version = "1.0.2"
version = "1.0.0"
entrypoint = "lib.typ"
authors = ["Ansgar Lichter <https://www.linkedin.com/in/ansgar-lichter-8532661b1>"]
license = "MIT"