parent
eb8e457a0c
commit
ccd8e89131
16
src/conf.typ
16
src/conf.typ
|
@ -9,9 +9,13 @@
|
||||||
|
|
||||||
// default configuration
|
// default configuration
|
||||||
#let default-config = (
|
#let default-config = (
|
||||||
lang: "en",
|
// language settings used to make decisions about hyphenation and others
|
||||||
region: "en",
|
lang: "en", // ISO 3166 language code of text: "de", "en"
|
||||||
|
region: "en", // region code
|
||||||
|
// mark this thesis as draft
|
||||||
|
// Adds preleminarry note page and watermark
|
||||||
draft: true,
|
draft: true,
|
||||||
|
// information about author(s)
|
||||||
author: (
|
author: (
|
||||||
name: "Sven Vogel",
|
name: "Sven Vogel",
|
||||||
semester: 4,
|
semester: 4,
|
||||||
|
@ -22,12 +26,14 @@
|
||||||
company: "ABB AG",
|
company: "ABB AG",
|
||||||
supervisor: "Benny Goodman",
|
supervisor: "Benny Goodman",
|
||||||
matriculation-number: 123456789),
|
matriculation-number: 123456789),
|
||||||
|
// information about thesis
|
||||||
thesis: (
|
thesis: (
|
||||||
title: "Unofficial ABB/DHBW Typst template",
|
title: "Unofficial ABB/DHBW Typst template",
|
||||||
subtitle: "for reports and thesises",
|
subtitle: "for reports and thesises", // subtitle may be none
|
||||||
submission-date: "23rd march 2020",
|
submission-date: "23rd march 2020",
|
||||||
timeframe: "1st january 2020 - 20th march 2020",
|
timeframe: "1st january 2020 - 20th march 2020",
|
||||||
kind: "T2000",
|
kind: "T2000",
|
||||||
|
// translated version of abstract, only used in case language is not english
|
||||||
summary: none,
|
summary: none,
|
||||||
abstract: none,
|
abstract: none,
|
||||||
preface: none,
|
preface: none,
|
||||||
|
@ -37,9 +43,11 @@
|
||||||
appendices: none),
|
appendices: none),
|
||||||
style: (
|
style: (
|
||||||
header: (
|
header: (
|
||||||
bottom-padding: 1.5em,
|
content-padding: 1.5em,
|
||||||
underline-top-padding: 0pt,
|
underline-top-padding: 0pt,
|
||||||
logo-height: 3em),
|
logo-height: 3em),
|
||||||
|
footer: (
|
||||||
|
content-padding: 1.5em),
|
||||||
page: (
|
page: (
|
||||||
format: "a4",
|
format: "a4",
|
||||||
margin: (
|
margin: (
|
||||||
|
|
28
src/lib.typ
28
src/lib.typ
|
@ -7,9 +7,6 @@
|
||||||
// Edited: 27.06.2024
|
// Edited: 27.06.2024
|
||||||
// License: MIT
|
// License: MIT
|
||||||
|
|
||||||
// start of template pages and styles
|
|
||||||
#let dhbw-template(config: dictionary, body) = [
|
|
||||||
|
|
||||||
#import "conf.typ": validate-config
|
#import "conf.typ": validate-config
|
||||||
#import "style.typ": global_styled_doc, content_styled, end_styled
|
#import "style.typ": global_styled_doc, content_styled, end_styled
|
||||||
#import "pages/titlepage.typ": new_title_page
|
#import "pages/titlepage.typ": new_title_page
|
||||||
|
@ -21,18 +18,19 @@
|
||||||
#import "pages/preface.typ": new-preface
|
#import "pages/preface.typ": new-preface
|
||||||
#import "pages/appendix.typ": show-appendix
|
#import "pages/appendix.typ": show-appendix
|
||||||
|
|
||||||
|
// start of template pages and styles
|
||||||
|
#let dhbw-template(config, body) = [
|
||||||
#let config = validate-config(config)
|
#let config = validate-config(config)
|
||||||
|
|
||||||
#let doc = body
|
#let doc = body
|
||||||
|
|
||||||
// set document properties
|
|
||||||
#set document(
|
|
||||||
author: config.author.name,
|
|
||||||
keywords: config.thesis.keywords,
|
|
||||||
title: config.thesis.title)
|
|
||||||
|
|
||||||
// apply global style to every element in the argument content
|
// apply global style to every element in the argument content
|
||||||
#global_styled_doc(config: config, body: [
|
#global_styled_doc(config)[
|
||||||
|
|
||||||
|
// set document properties
|
||||||
|
#set document(
|
||||||
|
author: config.author.name,
|
||||||
|
keywords: config.thesis.keywords,
|
||||||
|
title: config.thesis.title)
|
||||||
|
|
||||||
// configure text locale
|
// configure text locale
|
||||||
#set text(
|
#set text(
|
||||||
|
@ -72,11 +70,11 @@
|
||||||
// mark end of prelude
|
// mark end of prelude
|
||||||
#metadata("prelude terminate") <end-of-prelude>
|
#metadata("prelude terminate") <end-of-prelude>
|
||||||
|
|
||||||
#content_styled(config: config, body: doc)
|
#content_styled(config, doc)
|
||||||
|
|
||||||
#metadata("content terminate") <end-of-content>
|
#metadata("content terminate") <end-of-content>
|
||||||
|
|
||||||
#end_styled(config: config, body: [
|
#end_styled(config)[
|
||||||
// add bibliography if set
|
// add bibliography if set
|
||||||
#if "bibliography" in config.thesis and config.thesis.bibliography != none {
|
#if "bibliography" in config.thesis and config.thesis.bibliography != none {
|
||||||
pagebreak(weak: true)
|
pagebreak(weak: true)
|
||||||
|
@ -87,6 +85,6 @@
|
||||||
|
|
||||||
// appendix
|
// appendix
|
||||||
#show-appendix(config: config)
|
#show-appendix(config: config)
|
||||||
])
|
]
|
||||||
])
|
]
|
||||||
]
|
]
|
|
@ -6,23 +6,22 @@
|
||||||
// Edited: 28.06.2024
|
// Edited: 28.06.2024
|
||||||
// License: MIT
|
// License: MIT
|
||||||
|
|
||||||
#let new_abstract(config) = context [
|
#let new_abstract(config) = context {
|
||||||
|
|
||||||
#pagebreak(weak: true)
|
set align(center + horizon)
|
||||||
|
|
||||||
#let thesis = config.thesis
|
|
||||||
|
|
||||||
#pagebreak(weak: true)
|
|
||||||
#align(center + horizon)[
|
|
||||||
#if text.lang == "de" [
|
|
||||||
= Zusammenfassung
|
|
||||||
|
|
||||||
#thesis.summary
|
|
||||||
]
|
|
||||||
|
|
||||||
|
// only include summary when a language other than english is used
|
||||||
|
if text.lang == "de" [
|
||||||
|
// Summary is supposed to be on separate page
|
||||||
#pagebreak(weak: true)
|
#pagebreak(weak: true)
|
||||||
= Abstract
|
|
||||||
|
|
||||||
#thesis.abstract
|
= Zusammenfassung
|
||||||
|
#config.thesis.summary
|
||||||
]
|
]
|
||||||
]
|
|
||||||
|
// abstract is supposed to be on separate page
|
||||||
|
pagebreak(weak: true)
|
||||||
|
|
||||||
|
heading("Abstract")
|
||||||
|
config.thesis.abstract
|
||||||
|
}
|
|
@ -1,3 +1,10 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Appendix |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#let show-appendix(config: dictionary) = context {
|
#let show-appendix(config: dictionary) = context {
|
||||||
counter(heading).update(0)
|
counter(heading).update(0)
|
||||||
|
|
|
@ -1,53 +1,62 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Confidentiality Statement |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
#let new_confidentiality_statement_page(config) = context [
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#pagebreak(weak: true)
|
#let new_confidentiality_statement_page(config) = context {
|
||||||
|
|
||||||
#let thesis = config.thesis
|
pagebreak(weak: true)
|
||||||
#let author = config.author
|
|
||||||
|
|
||||||
#v(2em)
|
let thesis = config.thesis
|
||||||
#if text.lang == "de" [
|
let author = config.author
|
||||||
#text(size: 20pt, weight: "semibold", font: "Montserrat", "Sperrvermerk")
|
|
||||||
|
if text.lang == "de" [
|
||||||
|
#heading(level: 1, "Sperrvermerk", supplement: [special])
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
#text(size: 20pt, weight: "semibold", font: "Montserrat", "Confidentiality statement")
|
#heading(level: 1, "Confidentiality Statement", supplement: [special])
|
||||||
]
|
]
|
||||||
|
|
||||||
#if text.lang == "de" [
|
if text.lang == "de" [
|
||||||
Der Inhalt der dieser Arbeit mit dem Thema
|
Der Inhalt der dieser Arbeit mit dem Thema
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
The content of this work with the topic
|
The content of this work with the topic
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#set align(center)
|
set align(center)
|
||||||
|
|
||||||
*#thesis.title*
|
text(weight: "bold", thesis.title)
|
||||||
|
|
||||||
#thesis.subtitle
|
if thesis.subtitle != none {
|
||||||
|
linebreak()
|
||||||
|
thesis.subtitle
|
||||||
|
}
|
||||||
|
|
||||||
#set align(left)
|
set align(left)
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#set par(justify: true)
|
set par(justify: true)
|
||||||
|
|
||||||
#if text.lang == "de" [
|
if text.lang == "de" [
|
||||||
darf weder als Ganzes noch in Auszügen Personen außerhalb des Prüfungsprozesses und des Evalua-tionsverfahrens zugänglich gemacht werden, sofern keine anderslautende Genehmigung der Ausbildungsstätte vorliegt.
|
darf weder als Ganzes noch in Auszügen Personen außerhalb des Prüfungsprozesses und des Evalua-tionsverfahrens zugänglich gemacht werden, sofern keine anderslautende Genehmigung der Ausbildungsstätte vorliegt.
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
may not be made accessible to persons outside the examination process and the evaluation procedure, either as a whole or in excerpts, unless otherwise authorized by the training institution.
|
may not be made accessible to persons outside the examination process and the evaluation procedure, either as a whole or in excerpts, unless otherwise authorized by the training institution.
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(25%)
|
set align(horizon)
|
||||||
|
|
||||||
#grid(
|
grid(
|
||||||
// set width of columns
|
// set width of columns
|
||||||
// we need two, so make both half the page width
|
// we need two, so make both half the page width
|
||||||
columns: (50%, 50%),
|
columns: (50%, 50%),
|
||||||
row-gutter: 0.75em,
|
row-gutter: 0.75em,
|
||||||
align(left, {line(length: 6cm)}),
|
align(left, {line(length: 6cm)}),
|
||||||
align(left, {line(length: 6cm)}),
|
align(left, {line(length: 6cm)}),
|
||||||
align(left, if text.lang == "de" [ Ort, Datum ] else if text.lang == "en" [ place, date ] else { panic("no translation for language: ", text.lang) }),
|
align(left, if text.lang == "de" [ Ort, Datum ] else if text.lang == "en" [ Place, Date ] else { panic("no translation for language: ", text.lang) }),
|
||||||
align(left, if text.lang == "de" [ Unterschrift ] else if text.lang == "en" [ Signature ] else { panic("no translation for language: ", text.lang) }))
|
align(left, if text.lang == "de" [ Unterschrift ] else if text.lang == "en" [ Signature ] else { panic("no translation for language: ", text.lang) }))
|
||||||
]
|
}
|
|
@ -1,52 +1,64 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Declaration of Authorship |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
#let new_declaration_of_authorship(config) = context [
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#pagebreak(weak: true)
|
#let new_declaration_of_authorship(config) = context {
|
||||||
|
|
||||||
#let thesis = config.thesis
|
pagebreak(weak: true)
|
||||||
#let author = config.author
|
|
||||||
|
|
||||||
#v(2em)
|
let thesis = config.thesis
|
||||||
#if text.lang == "de" [
|
let author = config.author
|
||||||
#text(size: 20pt, weight: "semibold", font: "Montserrat", "Selbständigkeitserklärung")
|
|
||||||
|
if text.lang == "de" [
|
||||||
|
#heading("Selbständigkeitserklärung")
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
#text(size: 20pt, weight: "semibold", font: "Montserrat", "Declaration of authorship")
|
#heading("Declaration of Authorship")
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#if text.lang == "de" [
|
if text.lang == "de" [
|
||||||
Ich versichere hiermit, dass ich meine Prüfung mit dem Thema
|
Ich versichere hiermit, dass ich meine Prüfung mit dem Thema
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
I hereby certify that I have passed my examination with the subject
|
I hereby confirm that I have written this thesis with the subject
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#set align(center)
|
set align(center)
|
||||||
|
|
||||||
*#thesis.title*
|
text(weight: "bold", thesis.title)
|
||||||
|
|
||||||
#thesis.subtitle
|
if thesis.subtitle != none {
|
||||||
|
linebreak()
|
||||||
|
thesis.subtitle
|
||||||
|
}
|
||||||
|
|
||||||
#set align(left)
|
set align(left)
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#set par(justify: true)
|
set par(justify: true)
|
||||||
|
|
||||||
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.
|
if text.lang == "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 text.lang == "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.
|
||||||
|
]
|
||||||
|
|
||||||
#v(25%)
|
set align(horizon)
|
||||||
|
|
||||||
#grid(
|
grid(
|
||||||
// set width of columns
|
// set width of columns
|
||||||
// we need two, so make both half the page width
|
// we need two, so make both half the page width
|
||||||
columns: (50%, 50%),
|
columns: (50%, 50%),
|
||||||
row-gutter: 0.75em,
|
row-gutter: 0.75em,
|
||||||
align(left, {line(length: 6cm)}),
|
align(left, {line(length: 6cm)}),
|
||||||
align(left, {line(length: 6cm)}),
|
align(left, {line(length: 6cm)}),
|
||||||
align(left, if text.lang == "de" [ Ort, Datum ] else if text.lang == "en" [ place, date ] else { panic("no translation for language: ", text.lang) }),
|
align(left, if text.lang == "de" [ Ort, Datum ] else if text.lang == "en" [ Place, Date ] else { panic("no translation for language: ", text.lang) }),
|
||||||
align(left, if text.lang == "de" [ Unterschrift ] else if text.lang == "en" [ Signature ] else { panic("no translation for language: ", text.lang) }))
|
align(left, if text.lang == "de" [ Unterschrift ] else if text.lang == "en" [ Signature ] else { panic("no translation for language: ", text.lang) }))
|
||||||
|
}
|
||||||
]
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Document Outline |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
// render an outline of figures
|
// render an outline of figures
|
||||||
// with a specific title and filter by a specifc kind of figure
|
// with a specific title and filter by a specifc kind of figure
|
||||||
|
@ -89,7 +96,7 @@
|
||||||
show outline.entry.where(
|
show outline.entry.where(
|
||||||
level: 1,
|
level: 1,
|
||||||
): it => {
|
): it => {
|
||||||
v(18pt, weak: true)
|
v(1.5em, weak: true)
|
||||||
strong(it)
|
strong(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Preface |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#let new-preface(config) = {
|
#let new-preface(config) = {
|
||||||
if config.thesis.preface != none {
|
if config.thesis.preface != none {
|
||||||
|
|
|
@ -1,47 +1,56 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Preleminary release Notice |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
#let new_prerelease_note(config) = context [
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#pagebreak(weak: true)
|
#let new_prerelease_note(config) = context {
|
||||||
|
|
||||||
#let thesis = config.thesis
|
pagebreak(weak: true)
|
||||||
#let author = config.author
|
|
||||||
|
|
||||||
#v(2em)
|
let thesis = config.thesis
|
||||||
#if text.lang == "de" [
|
let author = config.author
|
||||||
#text(size: 20pt, weight: "semibold", font: "Montserrat", "Vorabfassung")
|
|
||||||
|
if text.lang == "de" [
|
||||||
|
#heading("Vorabfassung")
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
#text(size: 20pt, weight: "semibold", font: "Montserrat", "Preliminary version")
|
#heading("Preliminary Version")
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#if text.lang == "de" [
|
if text.lang == "de" [
|
||||||
Bei dieser Ausgabe der Arbeit mit dem Thema
|
Bei dieser Ausgabe der Arbeit mit dem Thema
|
||||||
] else if text.lang == "en" [
|
] else if text.lang == "en" [
|
||||||
This edition of the work with the subject
|
This edition of the work with the subject
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#set align(center)
|
set align(center)
|
||||||
|
|
||||||
*#thesis.title*
|
text(weight: "bold", thesis.title)
|
||||||
|
|
||||||
#thesis.subtitle
|
if thesis.subtitle != none {
|
||||||
|
linebreak()
|
||||||
|
thesis.subtitle
|
||||||
|
}
|
||||||
|
|
||||||
#set align(left)
|
set align(left)
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
|
|
||||||
#set par(justify: true)
|
set par(justify: true)
|
||||||
|
|
||||||
#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 #author.university 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 #author.university 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 #author.university 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 #author.university as part of the assignment, and any use other than a preview is not permitted.
|
||||||
]
|
]
|
||||||
|
|
||||||
#v(1em)
|
v(1em)
|
||||||
#h(1em) #author.name, #datetime.today().display()
|
h(1em)
|
||||||
|
[#author.name, #datetime.today().display()]
|
||||||
]
|
}
|
|
@ -1,3 +1,10 @@
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Titlepage |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
|
// Author: Sven Vogel
|
||||||
|
// Edited: 28.06.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#let new_title_page(config) = context [
|
#let new_title_page(config) = context [
|
||||||
|
|
||||||
|
@ -45,7 +52,7 @@
|
||||||
#author.university
|
#author.university
|
||||||
]
|
]
|
||||||
|
|
||||||
#set align(bottom + left)
|
#set align(horizon + left)
|
||||||
|
|
||||||
#if text.lang == "de" [
|
#if text.lang == "de" [
|
||||||
#table(
|
#table(
|
||||||
|
@ -101,8 +108,7 @@
|
||||||
#context panic("no translation for language: ", text.lang)
|
#context panic("no translation for language: ", text.lang)
|
||||||
]
|
]
|
||||||
|
|
||||||
#pad(
|
#align(bottom,
|
||||||
top: 1cm,
|
|
||||||
grid(
|
grid(
|
||||||
// set width of columns
|
// set width of columns
|
||||||
// we need two, so make both half the page width
|
// we need two, so make both half the page width
|
||||||
|
@ -115,9 +121,7 @@
|
||||||
#context panic("no translation for language: ", text.lang)
|
#context panic("no translation for language: ", text.lang)
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
align(right, {line(length: 6cm)})
|
align(right, {line(length: 6cm)})))
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
#counter(page).update(0)
|
#counter(page).update(0)
|
||||||
]
|
]
|
||||||
|
|
|
@ -1 +1,10 @@
|
||||||
|
|
||||||
|
// .--------------------------------------------------------------------------.
|
||||||
|
// | Required packages for template use |
|
||||||
|
// '--------------------------------------------------------------------------'
|
||||||
|
|
||||||
|
// Author: Sven Vogel
|
||||||
|
// Edited: 05.07.2024
|
||||||
|
// License: MIT
|
||||||
|
|
||||||
#import "@preview/glossarium:0.4.1": *
|
#import "@preview/glossarium:0.4.1": *
|
|
@ -1,5 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!--
|
||||||
|
.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
|
||||||
|
| ABB logo |
|
||||||
|
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
|
||||||
|
|
||||||
|
Author: N/A
|
||||||
|
Changed: Sven Vogel
|
||||||
|
Edited: 05.07.2024
|
||||||
|
License: MIT
|
||||||
|
|
||||||
|
Source: https://commons.wikimedia.org/wiki/File:ABB_logo.svg
|
||||||
|
|
||||||
|
Created with Inkscape (http://www.inkscape.org/)
|
||||||
|
-->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
width="385.80621mm"
|
width="385.80621mm"
|
||||||
|
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.7 KiB |
|
@ -1,5 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!--
|
||||||
|
.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
|
||||||
|
| DHBW logo |
|
||||||
|
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
|
||||||
|
|
||||||
|
Author: N/A
|
||||||
|
Changed: Sven Vogel
|
||||||
|
Edited: 05.07.2024
|
||||||
|
License: MIT
|
||||||
|
|
||||||
|
Source: https://upload.wikimedia.org/wikipedia/de/1/1d/DHBW-Logo.svg
|
||||||
|
|
||||||
|
Created with Inkscape (http://www.inkscape.org/)
|
||||||
|
-->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
width="353.7124mm"
|
width="353.7124mm"
|
||||||
|
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
|
@ -1,3 +1,14 @@
|
||||||
|
<!--
|
||||||
|
.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
|
||||||
|
| GitHub light theme |
|
||||||
|
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
|
||||||
|
|
||||||
|
Author: Seth Lopez
|
||||||
|
Changed: Sven Vogel
|
||||||
|
Edited: 05.07.2024
|
||||||
|
License: MIT
|
||||||
|
-->
|
||||||
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<!--
|
<!--
|
||||||
|
|
|
@ -9,21 +9,23 @@
|
||||||
|
|
||||||
#let watermark-color = luma(50%).transparentize(70%)
|
#let watermark-color = luma(50%).transparentize(70%)
|
||||||
|
|
||||||
#let watermark() = rotate(-22.5deg,
|
#let watermark(config) = if config.draft {
|
||||||
rect(radius: 1em, inset: 1em, stroke: watermark-color, {
|
rotate(-22.5deg)[
|
||||||
text(size: 48pt, weight: "bold", fill: watermark-color, "DRAFT")
|
#rect(
|
||||||
linebreak()
|
radius: 1em,
|
||||||
text(size: 14pt, weight: "bold", fill: watermark-color)[
|
inset: 1em,
|
||||||
This page is part of a preliminary
|
stroke: watermark-color)[
|
||||||
#linebreak()
|
#text(size: 4em, weight: "bold", fill: watermark-color, "DRAFT")
|
||||||
document version.
|
#linebreak()
|
||||||
#linebreak()
|
#text(size: 1.25em, weight: "bold", fill: watermark-color)[
|
||||||
#text(size: 10pt, "Further usage without the authors consent is not permitted.")
|
This page is part of a preliminary
|
||||||
]
|
#linebreak()
|
||||||
}))
|
document version.
|
||||||
|
#linebreak()
|
||||||
|
#text(size: 0.75em, "Further usage without the authors consent is not permitted.")]]]}
|
||||||
|
|
||||||
// global style of document
|
// global style of document
|
||||||
#let global_styled_doc(config: dictionary, body: content) = context {
|
#let global_styled_doc(config, body) = {
|
||||||
let thesis = config.thesis
|
let thesis = config.thesis
|
||||||
let style = config.style
|
let style = config.style
|
||||||
|
|
||||||
|
@ -63,14 +65,12 @@
|
||||||
set heading(numbering: none)
|
set heading(numbering: none)
|
||||||
set page(
|
set page(
|
||||||
paper: style.page.format,
|
paper: style.page.format,
|
||||||
foreground: if config.draft {
|
foreground: watermark(config),
|
||||||
watermark()
|
header-ascent: style.header.content-padding,
|
||||||
},
|
footer-descent: style.header.content-padding,
|
||||||
header-ascent: 0pt,
|
|
||||||
footer-descent: 0pt,
|
|
||||||
margin: (
|
margin: (
|
||||||
top: style.page.margin.top + style.header.logo-height + style.header.underline-top-padding + style.header.bottom-padding,
|
top: style.page.margin.top + style.header.logo-height + style.header.underline-top-padding + style.header.content-padding,
|
||||||
bottom: style.page.margin.bottom + 1em,
|
bottom: style.page.margin.bottom + style.footer.content-padding,
|
||||||
left: style.page.margin.left,
|
left: style.page.margin.left,
|
||||||
right: style.page.margin.right),
|
right: style.page.margin.right),
|
||||||
numbering: (..nums) => {
|
numbering: (..nums) => {
|
||||||
|
@ -150,19 +150,14 @@
|
||||||
body
|
body
|
||||||
}
|
}
|
||||||
|
|
||||||
#let content_styled(config: dictionary, body: content) = [
|
#let content_styled(config, body) = {
|
||||||
#set heading(numbering: "1.")
|
set heading(numbering: "1.")
|
||||||
|
|
||||||
#let thesis = config.thesis
|
body
|
||||||
|
}
|
||||||
|
|
||||||
#body
|
#let end_styled(config, body) = {
|
||||||
]
|
set heading(numbering: "1.")
|
||||||
|
|
||||||
#let end_styled(config: dictionary, body: content) = [
|
body
|
||||||
|
}
|
||||||
#set heading(numbering: "1.")
|
|
||||||
|
|
||||||
#let thesis = config.thesis
|
|
||||||
|
|
||||||
#body
|
|
||||||
]
|
|
||||||
|
|
|
@ -3,33 +3,32 @@
|
||||||
#import "glossary.typ": glossary
|
#import "glossary.typ": glossary
|
||||||
#import "abstract.typ": abstract, summary
|
#import "abstract.typ": abstract, summary
|
||||||
|
|
||||||
#show: dhbw-template.with(
|
#show: dhbw-template.with((
|
||||||
config: (
|
lang: "en",
|
||||||
lang: "en",
|
region: "en",
|
||||||
region: "en",
|
author: (
|
||||||
author: (
|
name: "Sven Vogel",
|
||||||
name: "Sven Vogel",
|
semester: 4,
|
||||||
semester: 4,
|
program: "Informationtechnology",
|
||||||
program: "Informationtechnology",
|
course: "TINF19IT1",
|
||||||
course: "TINF19IT1",
|
faculty: "Technik",
|
||||||
faculty: "Technik",
|
university: "DHBW Mannheim",
|
||||||
university: "DHBW Mannheim",
|
company: "ABB AG",
|
||||||
company: "ABB AG",
|
supervisor: "Benny Goodman",
|
||||||
supervisor: "Benny Goodman",
|
matriculation-number: 123456789),
|
||||||
matriculation-number: 123456789),
|
thesis: (
|
||||||
thesis: (
|
title: "Unofficial ABB/DHBW Typst template",
|
||||||
title: "Unofficial ABB/DHBW Typst template",
|
subtitle: "for reports and thesises",
|
||||||
subtitle: "for reports and thesises",
|
submission-date: "23rd march 2020",
|
||||||
submission-date: "23rd march 2020",
|
timeframe: "1st january 2020 - 20th march 2020",
|
||||||
timeframe: "1st january 2020 - 20th march 2020",
|
kind: "T2000",
|
||||||
kind: "T2000",
|
summary: summary,
|
||||||
summary: summary,
|
abstract: abstract,
|
||||||
abstract: abstract,
|
preface: include "preface.typ",
|
||||||
preface: include "preface.typ",
|
keywords: ( "IT", "other stuff" ),
|
||||||
keywords: ( "IT", "other stuff" ),
|
bibliography: bibliography("refs.bib"),
|
||||||
bibliography: bibliography("refs.bib"),
|
glossary: glossary,
|
||||||
glossary: glossary,
|
appendices: include "appendix.typ")))
|
||||||
appendices: include "appendix.typ")))
|
|
||||||
|
|
||||||
#import "@preview/wrap-it:0.1.0": wrap-content
|
#import "@preview/wrap-it:0.1.0": wrap-content
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue