Update typos, add arguments, change cite-style

- Fix Typos in statement
- Add argument "author_gender" (M/F)
- Make all indexes conditional to only display if they have any
  content in them (for example only display the image index if you have
  image figures)
 - Change citation style to "harvard-cite-them-all" with customizations
   to match the dhsn-cite-style
This commit is contained in:
2025-08-07 13:15:38 +02:00
parent a87427662c
commit 48181ca045

View File

@@ -1,6 +1,9 @@
#let statement(location) = context [ #import "@preview/acrostiche:0.6.0": *
#let statement(location, submission-date, gender) = context [
#pagebreak() #pagebreak()
#set heading(numbering: none) #set heading(numbering: none)
#set page(footer: none, numbering: none)
= Eidesstattliche Erklärung = Eidesstattliche Erklärung
Ich erkläre an Eides statt, dass ich die vorliegende Arbeit Ich erkläre an Eides statt, dass ich die vorliegende Arbeit
@@ -8,8 +11,7 @@
die angegebenen Quellen und Hilfsmittel nicht benutzt habe. Die aus die angegebenen Quellen und Hilfsmittel nicht benutzt habe. Die aus
fremden Quellen direkt oder indirekt übernommenen Stellen sind als fremden Quellen direkt oder indirekt übernommenen Stellen sind als
solche kenntlich gemacht.\ solche kenntlich gemacht.\
Die Zustimmung des Partnerunternehmens in der Praxis zur Verwen- Die Zustimmung des Partnerunternehmens in der Praxis zur Verwendung betrieblicher Unterlagen habe ich eingeholt.\
dung betrieblicher Unterlagen habe ich eingeholt.\
Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen
Prüfungsbehörde vorgelegt und auch nicht veröffentlicht. Prüfungsbehörde vorgelegt und auch nicht veröffentlicht.
@@ -18,8 +20,17 @@
columns: (50%, 50%), columns: (50%, 50%),
column-gutter: 1cm, column-gutter: 1cm,
row-gutter: 10pt, row-gutter: 10pt,
[#location, #datetime.today().display("[day].[month].[year]")], align(bottom, line(length: 6cm, stroke: 0.75pt)), [#location, #submission-date.display("[day].[month].[year]")], align(bottom, line(length: 6cm, stroke: 0.75pt)),
[Ort, Abgabetermin], [Unterschrift des Verfassers], [Ort, Abgabetermin],
(
if gender == none {
[Unterschrift des Verfassers]
} else if (gender == "M") {
[Unterschrift des Verfassers]
} else if (gender == "F") {
[Unterschrift der Verfasserin]
}
),
) )
] ]
#let dhsn( #let dhsn(
@@ -28,6 +39,7 @@
group: "0XY99-0", group: "0XY99-0",
company-data: [Praxispartner GmbH \ 01234 Stadt], company-data: [Praxispartner GmbH \ 01234 Stadt],
author: "Maxi Musterfrau", author: "Maxi Musterfrau",
author_gender: none,
location: "Dresden", location: "Dresden",
consultants: ( consultants: (
( (
@@ -44,12 +56,21 @@
bib: none, bib: none,
body, body,
) = { ) = {
show figure.where(kind: table): set figure(kind: raw, supplement: "Anhang") // show figure.where(kind: table): set figure(kind: raw, supplement: "Anhang")
show figure.where(kind: raw): set figure(supplement: "Anhang") show figure.where(kind: raw): set figure(supplement: "Anhang")
set heading(numbering: (..nums) => nums.pos().map(str).join(".")) set heading(numbering: (..nums) => nums.pos().map(str).join("."))
set bibliography(style: "springer-basic-author-date", title: "Literaturverzeichnis") set bibliography(style: "harvard-cite-them-right", title: "Literaturverzeichnis")
set cite(form: "prose") set cite(form: "prose")
show cite: c => {
show "ohne Datum": "o.D."
show regex("ohne Datum \D\)"): it => {
show ")": "])"
show "ohne Datum ": "o.D.["
it
}
c
}
set text(size: 12pt, lang: "de", region: "de") set text(size: 12pt, lang: "de", region: "de")
set par(justify: true) set par(justify: true)
set page( set page(
@@ -57,7 +78,7 @@
top: 2cm, top: 2cm,
bottom: 2cm, bottom: 2cm,
left: 3cm, left: 3cm,
right: 3cm, right: 2cm,
), ),
footer: context [ footer: context [
#align(right)[#counter(page).display()] #align(right)[#counter(page).display()]
@@ -110,28 +131,68 @@
#pagebreak() #pagebreak()
] ]
set page(numbering: (..nums) => numbering("I", counter(page).get().at(0))) set page(numbering: (..nums) => numbering("I", counter(page).get().at(0)))
{
show heading: none
heading(numbering: none)[Inhaltsverzeichnis]
}
outline(indent: 0%) outline(indent: 0%)
pagebreak() pagebreak()
context {
if query(figure.where(kind: image)).len() > 0 {
{ {
show heading: none show heading: none
heading(numbering: none)[Abbildungsverzeichnis] heading(numbering: none)[Abbildungsverzeichnis]
} }
outline(title: "Abbildungsverzeichnis", target: figure.where(kind: image)) outline(title: "Abbildungsverzeichnis", target: figure.where(kind: image))
}
}
context {
if query(figure.where(kind: raw)).len() > 0 {
{ {
show heading: none show heading: none
heading(numbering: none)[Anhangverzeichnis] heading(numbering: none)[Anhangverzeichnis]
} }
outline(title: "Anhangverzeichnis", target: figure.where(kind: table).or(figure.where(kind: raw))) outline(title: "Anhangverzeichnis", target: figure.where(kind: raw))
}
}
context {
if query(figure.where(kind: table)).len() > 0 {
{
show heading: none
heading(numbering: none)[Tabellenverzeichnis]
}
outline(title: "Tabellenverzeichnis", target: figure.where(kind: table))
}
}
context {
if (acros.get().len() > 0) {
{
show heading: none
heading(numbering: none)[Abkürzungsverzeichnis]
}
print-index(title: "Abkürzungsverzeichnis", row-gutter: 5pt)
}
}
pagebreak() pagebreak()
counter(page).update(1) counter(page).update(1)
set page(numbering: (..nums) => numbering("1", counter(page).get().at(0))) set page(numbering: (..nums) => numbering("1", counter(page).get().at(0)))
body body
{
show "ohne Datum": "o.D."
show regex("ohne Datum \D\)"): it => {
show ")": "])"
show "ohne Datum ": "o.D.["
it
}
bib bib
}
statement(location) statement(location, submission-date, author_gender)
} }