Compare commits

..

No commits in common. "093ed09293a191b57c016ce562bab004d408f75c" and "201e991ac422a984a60fbebfc2de9e95e74c0dfa" have entirely different histories.

10 changed files with 310 additions and 357 deletions

View File

@ -25,8 +25,7 @@ function enter-section() {
printf "\\n" printf "\\n"
eval "$2" eval "$2"
exit_status=$? if [ $? -neq $3 ]; then
if ! [ $exit_status -eq $3 ]; then
abort "command: $2 failed in section: $1" abort "command: $2 failed in section: $1"
fi fi
@ -34,7 +33,6 @@ function enter-section() {
log "INFO" "section $1 completed successfully" log "INFO" "section $1 completed successfully"
} }
enter-section "Typstyle checking" "./run-fmt.sh --check src/lib.typ" 0
enter-section "BUILD: ABB code theme" "./generate-theme.sh" 0 enter-section "BUILD: ABB code theme" "./generate-theme.sh" 0
enter-section "Compiling template..." "typst compile template/main.typ --root . example.pdf" 0 enter-section "Compiling template..." "typst compile template/main.typ --root . example.pdf" 0
enter-section "TEST: local template import" "typst compile tests/local-import/main.typ --root ." 0 enter-section "TEST: local template import" "typst compile tests/local-import/main.typ --root ." 0

View File

@ -129,9 +129,7 @@ SOFTWARE.*/
// show rule to make the references for glossarium // show rule to make the references for glossarium
#let make-glossary(body) = { #let make-glossary(body) = {
show ref: r => { show ref: r => {
if r.element != none and r.element.func() == figure and r if r.element != none and r.element.func() == figure and r.element.kind == __glossarium_figure {
.element
.kind == __glossarium_figure {
// call to the general citing function // call to the general citing function
gls(str(r.target), suffix: r.citation.supplement) gls(str(r.target), suffix: r.citation.supplement)
} else { } else {
@ -202,23 +200,16 @@ SOFTWARE.*/
if hasLong and hasDesc [:] if hasLong and hasDesc [:]
if hasDesc [ #desc ] else [. ] if hasDesc [ #desc ] else [. ]
if disable-back-references != true { if disable-back-references != true {
term_references term_references.map(x => x.location()).sorted(key: x => x.page()).fold(
.map(x => x.location())
.sorted(key: x => x.page())
.fold(
(values: (), pages: ()), (values: (), pages: ()),
((values, pages), x) => if pages.contains( ((values, pages), x) => if pages.contains(x.page()) {
x.page(),
) {
(values: values, pages: pages) (values: values, pages: pages)
} else { } else {
values.push(x) values.push(x)
pages.push(x.page()) pages.push(x.page())
(values: values, pages: pages) (values: values, pages: pages)
}, },
) ).values.map(x => {
.values
.map(x => {
let page-numbering = x.page-numbering() let page-numbering = x.page-numbering()
if page-numbering == none { if page-numbering == none {
page-numbering = "1" page-numbering = "1"
@ -227,8 +218,7 @@ SOFTWARE.*/
page-numbering, page-numbering,
..counter(page).at(x), ..counter(page).at(x),
)] )]
}) }).join(", ")
.join(", ")
} }
}, },
) )

View File

@ -6,8 +6,7 @@
// Edited: 28.06.2024 // Edited: 28.06.2024
// License: MIT // License: MIT
#let new_abstract(config) = ( #let new_abstract(config) = context {
context {
set align(center + horizon) set align(center + horizon)
@ -26,4 +25,3 @@
heading("Abstract") heading("Abstract")
config.thesis.abstract config.thesis.abstract
} }
)

View File

@ -6,8 +6,7 @@
// Edited: 28.06.2024 // Edited: 28.06.2024
// License: MIT // License: MIT
#let show-appendix(config: dictionary) = ( #let show-appendix(config: dictionary) = context {
context {
counter(heading).update(0) counter(heading).update(0)
let title = if text.lang == "en" { let title = if text.lang == "en" {
@ -41,4 +40,3 @@
config.thesis.appendices config.thesis.appendices
} }
} }
)

View File

@ -6,8 +6,7 @@
// Edited: 28.06.2024 // Edited: 28.06.2024
// License: MIT // License: MIT
#let new_confidentiality_statement_page(config) = ( #let new_confidentiality_statement_page(config) = context {
context {
pagebreak(weak: true) pagebreak(weak: true)
@ -61,4 +60,3 @@
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) }))
} }
)

View File

@ -6,8 +6,7 @@
// Edited: 28.06.2024 // Edited: 28.06.2024
// License: MIT // License: MIT
#let new_declaration_of_authorship(config) = ( #let new_declaration_of_authorship(config) = context {
context {
pagebreak(weak: true) pagebreak(weak: true)
@ -63,4 +62,3 @@
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) }))
} }
)

View File

@ -10,8 +10,7 @@
// with a specific title and filter by a specifc kind of figure // with a specific title and filter by a specifc kind of figure
// can optionally insert a pagebreak after the outline // can optionally insert a pagebreak after the outline
// NOTE: will not render in case the listing is empty // NOTE: will not render in case the listing is empty
#let render_filtered_outline(title: str, kind: selector) = ( #let render_filtered_outline(title: str, kind: selector) = context {
context {
let elems = query(figure.where(kind: kind), here()) let elems = query(figure.where(kind: kind), here())
let count = elems.len() let count = elems.len()
@ -25,10 +24,8 @@
) )
} }
} }
)
#let render_figures_outline() = ( #let render_figures_outline() = context {
context {
let title = if (text.lang == "de") { let title = if (text.lang == "de") {
"Abbildungsverzeichnis" "Abbildungsverzeichnis"
} else if text.lang == "en" { } else if text.lang == "en" {
@ -37,10 +34,8 @@
render_filtered_outline(title: title, kind: image) render_filtered_outline(title: title, kind: image)
} }
)
#let render_table_outline() = ( #let render_table_outline() = context {
context {
let title = if (text.lang == "de") { let title = if (text.lang == "de") {
"Tabellenverzeichnis" "Tabellenverzeichnis"
} else if text.lang == "en" { } else if text.lang == "en" {
@ -49,10 +44,8 @@
render_filtered_outline(title: title, kind: table) render_filtered_outline(title: title, kind: table)
} }
)
#let render_raw_outline() = ( #let render_raw_outline() = context {
context {
let title = if (text.lang == "de") { let title = if (text.lang == "de") {
"Quelltextverzeichnis" "Quelltextverzeichnis"
} else if text.lang == "en" { } else if text.lang == "en" {
@ -61,10 +54,8 @@
render_filtered_outline(title: title, kind: raw) render_filtered_outline(title: title, kind: raw)
} }
)
#let render_heading_outline() = ( #let render_heading_outline() = context {
context {
let title = if (text.lang == "de") { let title = if (text.lang == "de") {
"Inhaltsverzeichnis" "Inhaltsverzeichnis"
} else if text.lang == "en" { } else if text.lang == "en" {
@ -78,10 +69,8 @@
indent: auto, indent: auto,
) )
} }
)
#let render_appendix_outline() = ( #let render_appendix_outline() = context {
context {
let supplement = if text.lang == "en" { let supplement = if text.lang == "en" {
[Appendix] [Appendix]
} else { } else {
@ -103,7 +92,6 @@
) )
} }
} }
)
#let new_outline() = { #let new_outline() = {
pagebreak(weak: true) pagebreak(weak: true)

View File

@ -6,8 +6,7 @@
// Edited: 28.06.2024 // Edited: 28.06.2024
// License: MIT // License: MIT
#let new_prerelease_note(config) = ( #let new_prerelease_note(config) = context {
context {
pagebreak(weak: true) pagebreak(weak: true)
@ -55,4 +54,3 @@
h(1em) h(1em)
[#author.name, #datetime.today().display()] [#author.name, #datetime.today().display()]
} }
)

View File

@ -6,8 +6,7 @@
// Edited: 28.06.2024 // Edited: 28.06.2024
// License: MIT // License: MIT
#let new_title_page(config) = ( #let new_title_page(config) = context [
context [
#let thesis = config.thesis #let thesis = config.thesis
#let author = config.author #let author = config.author
@ -108,4 +107,3 @@
#counter(page).update(0) #counter(page).update(0)
] ]
)

View File

@ -111,9 +111,7 @@
header-ascent: style.header.content-padding, header-ascent: style.header.content-padding,
footer-descent: style.header.content-padding, footer-descent: style.header.content-padding,
margin: ( margin: (
top: style.page.margin.top + style.header.logo-height + style top: style.page.margin.top + style.header.logo-height + style.header.underline-top-padding + style.header.content-padding,
.header
.underline-top-padding + style.header.content-padding,
bottom: style.page.margin.bottom + style.footer.content-padding, 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,
@ -122,15 +120,9 @@
let current-page = here().page() let current-page = here().page()
if current-page == 1 { if current-page == 1 {
[] []
} else if query(<end-of-prelude>) } else if query(<end-of-prelude>).first().location().page() > current-page {
.first()
.location()
.page() > current-page {
numbering("I", nums.pos().first()) numbering("I", nums.pos().first())
} else if query(<end-of-content>) } else if query(<end-of-content>).first().location().page() >= current-page {
.first()
.location()
.page() >= current-page {
numbering("1", nums.pos().first()) numbering("1", nums.pos().first())
} else { } else {
numbering("a", nums.pos().first()) numbering("a", nums.pos().first())
@ -167,10 +159,7 @@
// right align logo of DHBW // right align logo of DHBW
align(right, image("res/DHBW.svg", height: style.header.logo-height))) align(right, image("res/DHBW.svg", height: style.header.logo-height)))
} else if query(<end-of-prelude>) } else if query(<end-of-prelude>).first().location().page() <= here().page() {
.first()
.location()
.page() <= here().page() {
let headers-before = query( let headers-before = query(
selector(heading.where(numbering: "1.", level: 1)).before(here()), selector(heading.where(numbering: "1.", level: 1)).before(here()),
) )