feat: add support for multiple authors

This commit is contained in:
Sven Vogel 2024-11-19 11:14:04 +01:00
parent 415fafc7f4
commit 9b90660353
5 changed files with 74 additions and 40 deletions

View File

@ -18,16 +18,28 @@
// Adds preleminarry note page and watermark
draft: true,
// information about author(s)
author: (
name: "Sven Vogel",
semester: 4,
university: (
program: "Informationtechnology",
course: "TINF19IT1",
faculty: "Technik",
university: "DHBW Mannheim",
name: "dualen Hochschule Baden-Württemberg",
campus: "Eppelheim"
),
authors: (
(
name: "Sven Vogel",
course: "TINF19IT1",
company: "ABB AG",
supervisor: "Benny Goodman",
matriculation-number: 123456789),
matriculation-number: 123456789
),
(
name: "Kurt Jammer",
course: "TINF24AI2",
company: "Siemens",
supervisor: "Henry Badman",
matriculation-number: 478568763
),
),
// information about thesis
thesis: (
title: "Unofficial ABB/DHBW Typst template",
@ -87,7 +99,9 @@
if key in update {
let update_val = update.at(key)
if type(val) == dictionary and type(update_val) == dictionary {
if type(val) == array {
// ignore checking arraay
} else if type(val) == dictionary and type(update_val) == dictionary {
base.insert(key, deep-insert-checked(val, update_val))
} else if val == none or type(val) == type(update_val) {
base.insert(key, update_val)

View File

@ -71,7 +71,7 @@
// set document properties
#set document(
author: config.author.name,
// author: config.author.name,
keywords: config.thesis.keywords,
title: config.thesis.title,
)

View File

@ -12,7 +12,6 @@
pagebreak(weak: true)
let thesis = config.thesis
let author = config.author
if text.lang == "de" [
#heading(level: 1, "Sperrvermerk")

View File

@ -12,7 +12,6 @@
pagebreak(weak: true)
let thesis = config.thesis
let author = config.author
if text.lang == "de" [
#heading("Selbständigkeitserklärung")

View File

@ -10,7 +10,6 @@
context [
#let thesis = config.thesis
#let author = config.author
#set align(center)
@ -31,13 +30,9 @@
// faculty
#pad()[
#if text.lang == "de" [
Praxisphase des #author.semester Semesters an der Fakultät für #author.faculty
#linebreak()
im Studiengang #author.program
aus dem Studiengang #config.university.program | #config.university.faculty
] else if text.lang == "en" [
Practical phase of the #author.semester semester at the Faculty of #author.faculty
#linebreak()
in the degree program #author.program
from the course of studies #config.university.program | #config.university.faculty
] else [
#context panic("no translation for language: ", text.lang)
]
@ -52,41 +47,68 @@
] else [
#context panic("no translation for language: ", text.lang)
]
#config.university.name
#linebreak()
#author.university
#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
]
#set align(bottom + left)
#if text.lang == "de" [
#table(
#grid(
columns: 2,
column-gutter: 1cm,
align: left,
row-gutter: 0.5cm,
align: top + left,
stroke: none,
[*Verfasser:*], author.name,
[*Bearbeitungszeitraum:*], thesis.timeframe,
[*Matrikelnummer, Kurs:*],
str(author.matriculation-number) + ", " + author.course,
[*Ausbildungsbetrieb:*], author.company,
[*Betrieblicher Betreuer:*], author.supervisor,
[*Abgabedatum:*], thesis.submission-date,
[Matrikelnummer, Kurs:],
par(leading: 0.5em, for author in config.authors {
str(author.matriculation-number) + ", " + author.course
linebreak()
}),
[Betrieb, Betreuer:],
par(leading: 0.5em, for author in config.authors {
author.company + ", " + author.supervisor
linebreak()
}),
)
] else if text.lang == "en" [
#table(
#grid(
columns: 2,
column-gutter: 1cm,
align: left,
row-gutter: 0.5cm,
align: top + left,
stroke: none,
[*Author:*], author.name,
[*Editing period:*], thesis.timeframe,
[*Matriculation number, course:*],
str(author.matriculation-number) + ", " + author.course,
[*Training company:*], author.company,
[*Company supervisor:*], author.supervisor,
[*Submission date:*], thesis.submission-date,
[Student ID, Course:],
par(leading: 0.5em, for author in config.authors {
str(author.matriculation-number) + ", " + author.course
linebreak()
}),
[Company, Supervisor:],
par(leading: 0.5em, for author in config.authors {
author.company + ", " + author.supervisor
linebreak()
}),
)
] else [
#context panic("no translation for language: ", text.lang)