diff --git a/src/main.typ b/src/main.typ index bc61f1a..2d08a0c 100644 --- a/src/main.typ +++ b/src/main.typ @@ -108,10 +108,24 @@ #include "pages/gender-hinweis.typ" #include "pages/übersicht-arbeitspakete.typ" -#outline(title: "Inhaltsverzeichnis", indent: auto) +#let heading_outline_title = if prelude.format.language == "de" [ + Inhaltsverzeichnis +] else if prelude.format.language == "en" [ + Table of contents +] else [ + #panic("no translation for language: ", prelude.format.language) +] +#outline(title: heading_outline_title, indent: auto) #pagebreak() +#let image_outline_title = if prelude.format.language == "de" [ + Abbildungsverzeichnis +] else if prelude.format.language == "en" [ + List of figures +] else [ + #panic("no translation for language: ", prelude.format.language) +] #outline( title: "Abbildungsverzeichnis", target: figure.where(kind: image), @@ -119,15 +133,29 @@ #pagebreak() +#let table_outline_title = if prelude.format.language == "de" [ + Tabellensverzeichnis +] else if prelude.format.language == "en" [ + List of tables +] else [ + #panic("no translation for language: ", prelude.format.language) +] #outline( - title: "Tabellensverzeichnis", + title: table_outline_title, target: figure.where(kind: table), ) #pagebreak() +#let raw_outline_title = if prelude.format.language == "de" [ + Quelltextverzeichnis +] else if prelude.format.language == "en" [ + Table of source code +] else [ + #panic("no translation for language: ", prelude.format.language) +] #outline( - title: "Quelltextverzeichnis", + title: raw_outline_title, target: figure.where(kind: raw), ) @@ -137,7 +165,13 @@ #import "@preview/glossarium:0.2.6": make-glossary, print-glossary, gls, glspl #show: make-glossary -= Glossar +#if prelude.format.language == "de" [ + = Glossar +] else if prelude.format.language == "en" [ + = Glossary +] else [ + #panic("no translation for language: ", prelude.format.language) +] // read all entries from config file #let glossary = yaml("../conf/glossary.yaml") diff --git a/src/pages/confidential-clause.typ b/src/pages/confidential-clause.typ new file mode 100644 index 0000000..6c888dd --- /dev/null +++ b/src/pages/confidential-clause.typ @@ -0,0 +1,31 @@ +#import "../prelude.typ" as prelude + +// title +#if prelude.format.language == "de" [ + = Sperrvermerk +] else if prelude.format.language == "en" [ + = Confidential Clause +] else [ + #panic("no translation for language: ", prelude.format.language) +] + +#v(1cm) + +#prelude.largetext()[ + #if prelude.format.language == "de" [ + Der Inhalt dieser Arbeit darf weder als Ganzes noch in + Auszügen Personen außerhalb des Prüfungsprozesses + und des Evaluationsverfahrens zugänglich gemacht werden, + sofern keine anders lautende Genehmigung der Ausbildungsstätte vorliegt. + ] else if prelude.format.language == "en" [ + The content of this thesis may not be made accessible + to persons outside the examination process and the evaluation procedure, + either in whole or in part, unless otherwise authorized by the institution. + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] +] + +#prelude.signature + +#pagebreak() diff --git a/src/pages/declaration-of-indipendence.typ b/src/pages/declaration-of-indipendence.typ new file mode 100644 index 0000000..3d81ef6 --- /dev/null +++ b/src/pages/declaration-of-indipendence.typ @@ -0,0 +1,46 @@ +#import "../prelude.typ" as prelude + +#set align(center) + +// title +#if prelude.format.language == "de" [ + = Selbständigkeitserklärung +] else if prelude.format.language == "en" [ + = Declaration of independence +] else [ + #panic("no translation for language: ", prelude.format.language) +] + +#v(1cm) +#prelude.largetext()[ + #if prelude.format.language == "de" [ + Ich versichere hiermit, dass ich meine #linebreak() Prüfung mit dem Thema + ] else if prelude.format.language == "en" [ + I hereby certify that I have written my #linebreak() exam with the topic + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] +] + +#v(1cm) +#prelude.title(prelude.info.titel) + +// subtitle +#prelude.subtitle(prelude.info.untertitel) + +#v(1cm) +#prelude.largetext()[ + #if prelude.format.language == "de" [ + selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. + Ich versichere zudem, dass die eingereichte elektronische Fassung mit der gedruckten Fassung übereinstimmt. + ] else if prelude.format.language == "en" [ + independently and have not used any sources or aids other than those specified. + I also confirm that the electronic version submitted is identical to the printed version. + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] +] + +#prelude.signature + +#pagebreak() \ No newline at end of file diff --git a/src/pages/gender-hinweis.typ b/src/pages/gender-hinweis.typ deleted file mode 100644 index 6d0f956..0000000 --- a/src/pages/gender-hinweis.typ +++ /dev/null @@ -1,13 +0,0 @@ - -#import "../prelude.typ" as prelude - -// title -= Gender-Hinweis - -#prelude.largetext()[ - Zur besseren Lesbarkeit wird in dieser Arbeit das generische Maskulinum verwendet. - Die in dieser Arbeit verwendeten - Personenbezeichnungen beziehen sich - sofern nicht anders kenntlich gemacht - auf alle Geschlechter. -] - -#pagebreak() diff --git a/src/pages/gender-note.typ b/src/pages/gender-note.typ new file mode 100644 index 0000000..83a327d --- /dev/null +++ b/src/pages/gender-note.typ @@ -0,0 +1,25 @@ + +#import "../prelude.typ" as prelude + +// title +#if prelude.format.language == "de" [ + = Gender-Hinweis +] else if prelude.format.language == "en" [ + = Gender note +] else [ + #panic("no translation for language: ", prelude.format.language) +] + +#prelude.largetext()[ + #if prelude.format.language == "de" [ + Zur besseren Lesbarkeit wird in dieser Arbeit das generische Maskulinum verwendet. + Die in dieser Arbeit verwendeten Personenbezeichnungen beziehen sich, sofern nicht anders kenntlich gemacht, auf alle Geschlechter. + ] else if prelude.format.language == "en" [ + For better readability, the generic masculine is used in this work. + The personal designations used in this work refer to all genders, unless otherwise indicated. + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] +] + +#pagebreak() diff --git a/src/pages/selbständigkeitserklärung.typ b/src/pages/selbständigkeitserklärung.typ deleted file mode 100644 index fc57f5f..0000000 --- a/src/pages/selbständigkeitserklärung.typ +++ /dev/null @@ -1,29 +0,0 @@ -#import "../prelude.typ" as prelude - -#set align(center) - -// title -= Selbständigkeitserklärung - -#v(1cm) -#prelude.largetext()[ - Ich versichere hiermit, dass ich meine #linebreak() Prüfung mit dem Thema -] - -#v(1cm) -#prelude.title(prelude.info.titel) - -// subtitle -#prelude.subtitle(prelude.info.untertitel) - -#v(1cm) -#prelude.largetext()[ - selbständig verfasst und keine anderen als die angegebenen - Quellen und Hilfsmittel benutzt habe. Ich versichere zudem, dass die - eingereichte elektronische Fassung mit der gedruckten Fassung - übereinstimmt. -] - -#prelude.signature - -#pagebreak() \ No newline at end of file diff --git a/src/pages/sperrvermerk.typ b/src/pages/sperrvermerk.typ deleted file mode 100644 index d77086b..0000000 --- a/src/pages/sperrvermerk.typ +++ /dev/null @@ -1,17 +0,0 @@ -#import "../prelude.typ" as prelude - -// title -= Sperrvermerk - -#v(1cm) - -#prelude.largetext()[ - Der Inhalt dieser Arbeit darf weder als Ganzes noch in - Auszügen Personen außerhalb des Prüfungsprozesses - und des Evaluationsverfahrens zugänglich gemacht werden, - sofern keine anders lautende Genehmigung der Ausbildungsstätte vorliegt. -] - -#prelude.signature - -#pagebreak() diff --git a/src/pages/titel.typ b/src/pages/titel.typ deleted file mode 100644 index cb0f4e2..0000000 --- a/src/pages/titel.typ +++ /dev/null @@ -1,85 +0,0 @@ -#import "../prelude.typ" as prelude - -#let LogoHeight = 1.5cm - -#set align(center) - -// logo of ABB and DHBW -#grid( - // set width of columns - // we need two, so make both half the page width - columns: (50%, 50%), - // left align logo of ABB - align(left, image("../../res/svg/ABB.svg", height: LogoHeight)), - // right align logo of DHBW - align(right, image("../../res/svg/DHBW.svg", height: LogoHeight)) -) - -// title -#v(2cm) -#prelude.title(prelude.info.titel) - -// subtitle -#prelude.subtitle(prelude.info.untertitel) - -// type of paper -#v(1cm) -#prelude.largetext(prelude.info.typ) - -// number of semester -Praxisphase des #prelude.info.semester Studienjahrs - -// fakulty -#pad(top: 0.5cm)[ - an der Fakultät für #prelude.info.fakultät - #linebreak() - im Studiengang #prelude.info.studiengang -] - -// university -#pad(top: 0.5cm)[ - an der - #linebreak() - #prelude.info.universität -] - -#set align(bottom + left) - -#table( - columns: 2, - align: left, - stroke: none, - - "Verfasser:", - prelude.info.autor, - - "Bearbeitungszeitraum:", - prelude.info.bearbeitungszeitraum, - - "Matrikelnummer, Kurs:", - str(prelude.info.matrikelnummer) + ", " + prelude.info.studiengang, - - "Ausbildungsbetrieb:", - prelude.info.betrieb, - - "Betrieblicher Betreuer:", - prelude.info.betreuer, - - "Abgabedatum:", - prelude.info.abgabe -) - -#pad( - top: 1cm, - grid( - // set width of columns - // we need two, so make both half the page width - columns: (50%, 50%), - align(left, "Unterschrift des betrieblichen Betreuers"), - align(right, {line(length: 6cm)}) - ) -) - -#pagebreak() - -#counter(page).update(1) diff --git a/src/pages/title.typ b/src/pages/title.typ new file mode 100644 index 0000000..2629044 --- /dev/null +++ b/src/pages/title.typ @@ -0,0 +1,140 @@ +#import "../prelude.typ" as prelude + +#let LogoHeight = 1.5cm + +#set align(center) + +// logo of ABB and DHBW +#grid( + // set width of columns + // we need two, so make both half the page width + columns: (50%, 50%), + // left align logo of ABB + align(left, image("../../res/svg/ABB.svg", height: LogoHeight)), + // right align logo of DHBW + align(right, image("../../res/svg/DHBW.svg", height: LogoHeight)) +) + +// title +#v(2cm) +#prelude.title(prelude.info.titel) + +// subtitle +#prelude.subtitle(prelude.info.untertitel) + +// type of paper +#v(1cm) +#prelude.largetext(prelude.info.typ) + +// number of semester +#if prelude.format.language == "de" [ + Praxisphase des #prelude.info.semester Studienjahrs +] else if prelude.format.language == "en" [ + Practical phase of the #prelude.info.semester academic year +] else [ + #panic("no translation for language: ", prelude.format.language) +] + +// fakulty +#pad(top: 0.5cm)[ + #if prelude.format.language == "de" [ + an der Fakultät für #prelude.info.fakultät + #linebreak() + im Studiengang #prelude.info.studiengang + ] else if prelude.format.language == "en" [ + at the Faculty of #prelude.info.fakultät + #linebreak() + in the degree program #prelude.info.studiengang + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] +] + +// university +#pad(top: 0.5cm)[ + #if prelude.format.language == "de" [ + an der + ] else if prelude.format.language == "en" [ + at + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] + #linebreak() + #prelude.info.universität +] + +#set align(bottom + left) + +#if prelude.format.language == "de" [ + #table( + columns: 2, + align: left, + stroke: none, + + "Verfasser:", + prelude.info.autor, + + "Bearbeitungszeitraum:", + prelude.info.bearbeitungszeitraum, + + "Matrikelnummer, Kurs:", + str(prelude.info.matrikelnummer) + ", " + prelude.info.studiengang, + + "Ausbildungsbetrieb:", + prelude.info.betrieb, + + "Betrieblicher Betreuer:", + prelude.info.betreuer, + + "Abgabedatum:", + prelude.info.abgabe + ) +] else if prelude.format.language == "en" [ + #table( + columns: 2, + align: left, + stroke: none, + + "Author:", + prelude.info.autor, + + "Editing period:", + prelude.info.bearbeitungszeitraum, + + "Matriculation number, course:", + str(prelude.info.matrikelnummer) + ", " + prelude.info.studiengang, + + "Training company:", + prelude.info.betrieb, + + "Company supervisor:", + prelude.info.betreuer, + + "Submission date:", + prelude.info.abgabe + ) +] else [ + #panic("no translation for language: ", prelude.format.language) +] + +#pad( + top: 1cm, + grid( + // set width of columns + // we need two, so make both half the page width + columns: (60%, 40%), + align(left, if prelude.format.language == "de" [ + Unterschrift des betrieblichen Betreuers + ] else if prelude.format.language == "en" [ + Signature of the company supervisor + ] else [ + #panic("no translation for language: ", prelude.format.language) + ] + ), + align(right, {line(length: 6cm)}) + ) +) + +#pagebreak() + +#counter(page).update(1) diff --git a/src/pages/working-packages.typ b/src/pages/working-packages.typ new file mode 100644 index 0000000..6e51fbd --- /dev/null +++ b/src/pages/working-packages.typ @@ -0,0 +1,51 @@ +#import "../prelude.typ" as prelude + +// title +#if prelude.format.language == "de" [ + = Übersicht Arbeitspakete + Folgende Tabelle zeigt die Aktivtäten welche im Zeitraum vom #prelude.info.bearbeitungszeitraum abgehandelt wurden. +] else if prelude.format.language == "en" [ + = Work package overview + The following table shows the activities that were covered during the #prelude.info.processing period. +] else [ + #panic("no translation for language: ", prelude.format.language) +] + +#let table_align(col, row) = { + if row == 0 { + center + } else { + left + } +} + +#figure( + kind: table, + caption: if prelude.format.language == "de" [ + Übersicht Arbeitspakete + ] else if prelude.format.language == "en" [ + Work package overview + ] else [ + #panic("no translation for language: ", prelude.format.language) + ], + table( + columns: (1fr, auto, auto), + align: table_align, + inset: 0.25cm, + [*Thema*], [*Zeitraum*], [*Dauer (Wochen)*], + ..for packet in prelude.info.arbeits-pakete { + + let start_split = packet.start.split(".") + let start = datetime(day: int(start_split.at(0)), month: int(start_split.at(1)), year: int(start_split.at(2))) + + let end_split = packet.ende.split(".") + let end = datetime(day: int(end_split.at(0)), month: int(end_split.at(1)), year: int(end_split.at(2))) + + let dur = end - start + + (packet.thema, packet.start + " - " + packet.ende, str(calc.round(dur.weeks()))) + } + ) +) + +#pagebreak() \ No newline at end of file diff --git a/src/pages/übersicht-arbeitspakete.typ b/src/pages/übersicht-arbeitspakete.typ deleted file mode 100644 index 37a00b7..0000000 --- a/src/pages/übersicht-arbeitspakete.typ +++ /dev/null @@ -1,31 +0,0 @@ -#import "../prelude.typ" as prelude - -// title -= Übersicht Arbeitspakete - -Folgende Tabelle zeigt die Aktivtäten welche im Zeitraum vom #prelude.info.bearbeitungszeitraum abgehandelt wurden. - -#figure( - kind: table, - caption: "Übersicht Arbeitspakete", - table( - columns: (1fr, auto, auto), - align: center, - inset: 0.25cm, - [*Thema*], [*Zeitraum*], [*Dauer (Wochen)*], - ..for packet in prelude.info.arbeits-pakete { - - let start_split = packet.start.split(".") - let start = datetime(day: int(start_split.at(0)), month: int(start_split.at(1)), year: int(start_split.at(2))) - - let end_split = packet.ende.split(".") - let end = datetime(day: int(end_split.at(0)), month: int(end_split.at(1)), year: int(end_split.at(2))) - - let dur = end - start - - (packet.thema, packet.start + " - " + packet.ende, str(calc.round(dur.weeks()))) - } - ) -) - -#pagebreak() \ No newline at end of file