dhbw-abb-typst-template/src/pages/titlepage.typ

170 lines
4.4 KiB
Plaintext
Raw Normal View History

// .--------------------------------------------------------------------------.
// | Titlepage |
// '--------------------------------------------------------------------------'
// Author: Sven Vogel
// Edited: 28.06.2024
// License: MIT
2024-06-27 13:57:04 +00:00
2024-08-12 16:09:14 +00:00
#let new_title_page(config) = (
context [
#let thesis = config.thesis
2024-11-19 10:53:59 +00:00
// logo of ABB and DHBW
#v(-config.style.header.content-padding)
#grid(
// set width of columns
// we need two, so make both half the page width
columns: (50%, 50%),
// left align logo of ABB
if config.style.header.logo-image == none {
// error
} else if config.style.header.logo-image.len() > 0 {
align(left, image(config.style.header.logo-image, height: config.style.header.logo-height))
} else {
align(left, image("../res/DHBW.svg", height: config.style.header.logo-height))
},
// right align logo of DHBW
if config.style.header.logo-image.len() > 0 {
align(right, image("../res/DHBW.svg", height: config.style.header.logo-height))
})
2024-08-12 16:09:14 +00:00
#set align(center)
// title
#v(2cm)
2024-09-27 15:43:58 +00:00
#par(justify: false, leading: 1.5em)[
#text(size: 2em, weight: "bold", hyphenate: false, thesis.title)
#linebreak()
// subtitle
#text(size: 2em, weight: "light", thesis.subtitle)
]
2024-08-12 16:09:14 +00:00
2024-09-27 15:43:58 +00:00
#set align(center + horizon)
2024-08-12 16:09:14 +00:00
// type of paper
2024-09-27 15:43:58 +00:00
#text(size: 1.5em, weight: "medium", thesis.kind)
2024-08-12 16:09:14 +00:00
// faculty
2024-09-27 15:43:58 +00:00
#pad()[
2024-08-12 16:09:14 +00:00
#if text.lang == "de" [
2024-11-19 10:14:04 +00:00
aus dem Studiengang #config.university.program | #config.university.faculty
2024-08-12 16:09:14 +00:00
] else if text.lang == "en" [
2024-11-19 10:14:04 +00:00
from the course of studies #config.university.program | #config.university.faculty
2024-08-12 16:09:14 +00:00
] else [
#context panic("no translation for language: ", text.lang)
]
]
2024-06-27 13:57:04 +00:00
2024-08-12 16:09:14 +00:00
// university
2024-09-27 15:43:58 +00:00
#pad()[
2024-08-12 16:09:14 +00:00
#if text.lang == "de" [
an der
] else if text.lang == "en" [
at
] else [
#context panic("no translation for language: ", text.lang)
]
2024-11-19 10:14:04 +00:00
#config.university.name
2024-06-27 13:57:04 +00:00
#linebreak()
2024-11-19 10:14:04 +00:00
#config.university.campus
]
#pad(top: 1em)[
#let names = ()
#for author in config.authors {
names.push(author.name)
}
#if text.lang == "de" [
von
] else if text.lang == "en" [
by
] else [
#context panic("no translation for language: ", text.lang)
]
#set text(size: 16pt)
#grid(columns: 1, row-gutter: 1em, ..names)
]
#pad(top: 1em)[
#thesis.timeframe
2024-06-27 13:57:04 +00:00
]
2024-09-27 15:43:58 +00:00
#set align(bottom + left)
2024-08-12 16:09:14 +00:00
2024-06-28 09:54:30 +00:00
#if text.lang == "de" [
2024-11-19 10:14:04 +00:00
#grid(
2024-08-12 16:09:14 +00:00
columns: 2,
column-gutter: 1cm,
2024-11-19 10:14:04 +00:00
row-gutter: 0.5cm,
align: top + left,
2024-08-12 16:09:14 +00:00
stroke: none,
2024-11-19 10:14:04 +00:00
[Matrikelnummer, Kurs:],
2024-11-19 10:55:23 +00:00
par(
leading: 0.5em,
for author in config.authors {
str(author.matriculation-number) + ", " + author.course
linebreak()
},
),
2024-11-19 10:14:04 +00:00
[Betrieb, Betreuer:],
2024-11-19 10:55:23 +00:00
par(
leading: 0.5em,
for author in config.authors {
author.company + ", " + author.supervisor
linebreak()
},
),
2024-08-12 16:09:14 +00:00
)
2024-06-28 09:54:30 +00:00
] else if text.lang == "en" [
2024-11-19 10:14:04 +00:00
#grid(
2024-08-12 16:09:14 +00:00
columns: 2,
column-gutter: 1cm,
2024-11-19 10:14:04 +00:00
row-gutter: 0.5cm,
align: top + left,
2024-08-12 16:09:14 +00:00
stroke: none,
2024-11-19 10:14:04 +00:00
[Student ID, Course:],
2024-11-19 10:55:23 +00:00
par(
leading: 0.5em,
for author in config.authors {
str(author.matriculation-number) + ", " + author.course
linebreak()
},
),
2024-11-19 10:14:04 +00:00
[Company, Supervisor:],
2024-11-19 10:55:23 +00:00
par(
leading: 0.5em,
for author in config.authors {
author.company + ", " + author.supervisor
linebreak()
},
),
2024-08-12 16:09:14 +00:00
)
2024-06-27 13:57:04 +00:00
] else [
2024-06-28 09:54:30 +00:00
#context panic("no translation for language: ", text.lang)
2024-06-27 13:57:04 +00:00
]
2024-08-12 16:09:14 +00:00
#align(
bottom,
grid(
2024-06-27 13:57:04 +00:00
// set width of columns
// we need two, so make both half the page width
columns: (60%, 40%),
2024-06-28 09:54:30 +00:00
align(left, if text.lang == "de" [
2024-06-27 13:57:04 +00:00
Unterschrift des betrieblichen Betreuers
2024-06-28 09:54:30 +00:00
] else if text.lang == "en" [
2024-06-27 13:57:04 +00:00
Signature of the company supervisor
] else [
2024-06-28 09:54:30 +00:00
#context panic("no translation for language: ", text.lang)
2024-06-27 13:57:04 +00:00
]
),
2024-08-12 16:09:14 +00:00
align(right, {line(length: 6cm)})),
)
2024-06-27 13:57:04 +00:00
2024-08-12 16:09:14 +00:00
#counter(page).update(0)
]
)