Compare commits

..

No commits in common. "4195eea663dd40437530364377799174a7ee7548" and "cee9db6189446999bc7986473e732a07f42a17ad" have entirely different histories.

6 changed files with 105 additions and 78 deletions

View File

@ -3,16 +3,16 @@
// https://brand.abb/portal/en/branding-principles/basic-brand-elements/color // https://brand.abb/portal/en/branding-principles/basic-brand-elements/color
// ABB branding colors // ABB branding colors
#let ABB-RED = rgb(255, 0, 13) #let ABB-RED = cmyk(0%, 100%, 95%, 0%)
#let ABB-BLACK = rgb(0, 0, 0) #let ABB-BLACK = cmyk(0%, 0%, 0%, 100%)
#let ABB-GRAY-01 = rgb(25, 25, 25) #let ABB-GRAY-01 = cmyk(0%, 0%, 0%, 90%)
#let ABB-GRAY-02 = rgb(64, 64, 64) #let ABB-GRAY-02 = cmyk(0%, 0%, 0%, 75%)
#let ABB-GRAY-03 = rgb(115, 115, 115) #let ABB-GRAY-03 = cmyk(0%, 0%, 0%, 55%)
#let ABB-GRAY-04 = rgb(166, 166, 166) #let ABB-GRAY-04 = cmyk(0%, 0%, 0%, 35%)
#let ABB-GRAY-05 = rgb(217, 217, 217) #let ABB-GRAY-05 = cmyk(0%, 0%, 0%, 15%)
#let ABB-GRAY-06 = rgb(242, 242, 242) #let ABB-GRAY-06 = cmyk(0%, 0%, 0%, 5%)
#let ABB-WHITE = rgb(255, 255, 255) #let ABB-WHITE = cmyk(0%, 0%, 0%, 0%)
// ABB branding functinal colors // ABB branding functinal colors
#let ABB-BLUE = rgb(0, 101, 210) #let ABB-BLUE = cmyk(100%, 53%, 2%, 16%)
#let ABB-GREEN = rgb(17, 184, 0) #let ABB-GREEN = cmyk(91%, 4%, 100%, 25%)
#let ABB-YELLOW = rgb(255, 232, 0) #let ABB-YELLOW = cmyk(0%, 9%, 100%, 0%)

View File

@ -25,7 +25,22 @@
campus: "Eppelheim" campus: "Eppelheim"
), ),
supervisor-signature: false, supervisor-signature: false,
authors: ((),()), authors: (
(
name: "Sven Vogel",
course: "TINF19IT1",
company: "ABB AG",
supervisor: "Benny Goodman",
matriculation-number: 123456789
),
(
name: "Kurt Jammer",
course: "TINF24AI2",
company: "Siemens",
supervisor: "Henry Badman",
matriculation-number: 478568763
),
),
// information about thesis // information about thesis
thesis: ( thesis: (
title: "Unofficial ABB/DHBW Typst template", title: "Unofficial ABB/DHBW Typst template",
@ -87,7 +102,6 @@
if type(val) == array { if type(val) == array {
// ignore checking arraay // ignore checking arraay
base.insert(key, update_val)
} else if type(val) == dictionary and type(update_val) == dictionary { } else if type(val) == dictionary and type(update_val) == dictionary {
base.insert(key, deep-insert-checked(val, update_val)) base.insert(key, deep-insert-checked(val, update_val))
} else if val == none or type(val) == type(update_val) { } else if val == none or type(val) == type(update_val) {

View File

@ -47,7 +47,7 @@
if text.lang == "de" [ if text.lang == "de" [
handelt es sich _nicht_ um die fertige Fassung. Das Dokument kann Inhaltliche-, Grammatikalische- sowie Format-Fehler enthalten. Das Dokument ist im Rahmen der Aufgabenstellung von Seiten der #university.name nicht zur Bewertung freigegeben und ein anderer Verwendungszweck als eine Vorschau ist nicht gestattet. handelt es sich _nicht_ um die fertige Fassung. Das Dokument kann Inhaltliche-, Grammatikalische- sowie Format-Fehler enthalten. Das Dokument ist im Rahmen der Aufgabenstellung von Seiten der #university.name nicht zur Bewertung freigegeben und ein anderer Verwendungszweck als eine Vorschau ist nicht gestattet.
] else if text.lang == "en" [ ] else if text.lang == "en" [
is not the final version. The document may contain errors in content, grammar and formatting. The document may not be released for evaluation to #config.university.name as part of the assignment, and any use other than a preview is not permitted. is not the final version. The document may contain errors in content, grammar and formatting. The document may not be released for evaluation to #university.name as part of the assignment, and any use other than a preview is not permitted.
] ]
} }
) )

View File

@ -49,17 +49,9 @@
// faculty // faculty
#pad()[ #pad()[
#if text.lang == "de" [ #if text.lang == "de" [
aus dem Studiengang #config.university.program aus dem Studiengang #config.university.program | #config.university.faculty
] else if text.lang == "en" [ ] else if text.lang == "en" [
from the course of studies #config.university.program from the course of studies #config.university.program | #config.university.faculty
] else [
#context panic("no translation for language: ", text.lang)
]
#if text.lang == "de" [
an der Fakultät #config.university.faculty
] else if text.lang == "en" [
at the faculty of #config.university.faculty
] else [ ] else [
#context panic("no translation for language: ", text.lang) #context panic("no translation for language: ", text.lang)
] ]
@ -76,19 +68,14 @@
] ]
#config.university.name #config.university.name
#linebreak() #linebreak()
#if text.lang == "de" [
in
] else if text.lang == "en" [
in
] else [
#context panic("no translation for language: ", text.lang)
]
#config.university.campus #config.university.campus
] ]
#pad(top: 1.5em)[ #pad(top: 1em)[
#let names = () #let names = ()
#for author in config.authors {
names.push(author.name)
}
#if text.lang == "de" [ #if text.lang == "de" [
von von
] else if text.lang == "en" [ ] else if text.lang == "en" [
@ -96,37 +83,70 @@
] else [ ] else [
#context panic("no translation for language: ", text.lang) #context panic("no translation for language: ", text.lang)
] ]
#set text(size: 16pt)
#v(1.5em) #grid(columns: 1, row-gutter: 1em, ..names)
#let rows = int(config.authors.len() / 3 + 0.5)
#for i in range(0, rows) {
let cols = calc.min(config.authors.len() - i * 3, 3)
grid(columns: cols, column-gutter: 1.5em, ..config
.authors
.slice(i * 3, i * 3 + cols)
.map(author => grid(
columns: 1,
row-gutter: 1em,
text(size: 1.25em, author.name),
text(size: 1em, author.company),
text(size: 1em, author.contact),
[
#str(author.matriculation-number),
#author.course
],
)))
}
] ]
#set align(bottom) #pad(top: 1em)[
#pad(top: 1.5em)[
#thesis.timeframe #thesis.timeframe
] ]
#set align(bottom + left)
#if text.lang == "de" [
#grid(
columns: 2,
column-gutter: 1cm,
row-gutter: 0.5cm,
align: top + left,
stroke: none,
[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" [
#grid(
columns: 2,
column-gutter: 1cm,
row-gutter: 0.5cm,
align: top + left,
stroke: none,
[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)
]
#if config.supervisor-signature { #if config.supervisor-signature {
align( align(
bottom, bottom,

View File

@ -6,23 +6,16 @@
lang: "de", lang: "de",
region: "de", region: "de",
draft: false, draft: false,
authors: ( author: (
( name: "Sven Vogel",
name: "Sven Vogel", semester: 4,
course: "TINF19IT1", program: "Informationtechnology",
company: none, course: "TINF19IT1",
supervisor: "Benny Goodman", faculty: "Technik",
matriculation-number: 123456789, university: "DHBW Mannheim",
contact: "sven.vogel123@web.de" company: "ABB AG",
), supervisor: "Benny Goodman",
( matriculation-number: 123456789,
name: "Sven Vogel",
course: "TINF19IT1",
company: "ABB AG",
supervisor: "Benny Goodman",
matriculation-number: 123456789,
contact: "sven.vogel123@web.de"
)
), ),
thesis: ( thesis: (
title: "Unofficial ABB/DHBW Typst template", title: "Unofficial ABB/DHBW Typst template",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "dhbw-abb-typst-template" name = "dhbw-abb-typst-template"
version = "0.6.0" version = "0.5.4"
entrypoint = "src/template.typ" entrypoint = "src/template.typ"
authors = ["Sven Vogel <sven.vogel1@de.abb.com>"] authors = ["Sven Vogel <sven.vogel1@de.abb.com>"]
license = "MIT" license = "MIT"