Initial commit
This commit is contained in:
137
dhsn.typ
Normal file
137
dhsn.typ
Normal file
@@ -0,0 +1,137 @@
|
||||
#let statement(location) = context [
|
||||
#pagebreak()
|
||||
#set heading(numbering: none)
|
||||
= Eidesstattliche Erklärung
|
||||
|
||||
Ich erkläre an Eides statt, dass ich die vorliegende Arbeit
|
||||
selbständig und ohne unerlaubte fremde Hilfe angefertigt, andere als
|
||||
die angegebenen Quellen und Hilfsmittel nicht benutzt habe. Die aus
|
||||
fremden Quellen direkt oder indirekt übernommenen Stellen sind als
|
||||
solche kenntlich gemacht.\
|
||||
Die Zustimmung des Partnerunternehmens in der Praxis zur Verwen-
|
||||
dung betrieblicher Unterlagen habe ich eingeholt.\
|
||||
Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen
|
||||
Prüfungsbehörde vorgelegt und auch nicht veröffentlicht.
|
||||
|
||||
#v(1.5cm)
|
||||
#grid(
|
||||
columns: (50%, 50%),
|
||||
column-gutter: 1cm,
|
||||
row-gutter: 10pt,
|
||||
[#location, #datetime.today().display("[day].[month].[year]")], align(bottom, line(length: 6cm, stroke: 0.75pt)),
|
||||
[Ort, Abgabetermin], [Unterschrift des Verfassers],
|
||||
)
|
||||
]
|
||||
#let dhsn(
|
||||
topic: "Thema der Arbeit",
|
||||
subtitle: [Art der Arbeit],
|
||||
group: "0XY99-0",
|
||||
company-data: [Praxispartner GmbH \ 01234 Stadt],
|
||||
author: "Maxi Musterfrau",
|
||||
location: "Dresden",
|
||||
consultants: (
|
||||
(
|
||||
gender: "M",
|
||||
name: "Person Eins",
|
||||
),
|
||||
(
|
||||
gender: "F",
|
||||
name: "Person Zwei",
|
||||
),
|
||||
),
|
||||
assignment-date: datetime.today(),
|
||||
submission-date: datetime.today(),
|
||||
bib: none,
|
||||
body,
|
||||
) = {
|
||||
show figure.where(kind: table): set figure(kind: raw, supplement: "Anhang")
|
||||
show figure.where(kind: raw): set figure(supplement: "Anhang")
|
||||
set heading(numbering: (..nums) => nums.pos().map(str).join("."))
|
||||
|
||||
set bibliography(style: "springer-basic-author-date", title: "Literaturverzeichnis")
|
||||
set cite(form: "prose")
|
||||
set text(size: 12pt, lang: "de", region: "de")
|
||||
set par(justify: true)
|
||||
set page(
|
||||
margin: (
|
||||
top: 2cm,
|
||||
bottom: 2cm,
|
||||
left: 3cm,
|
||||
right: 3cm,
|
||||
),
|
||||
footer: context [
|
||||
#align(right)[#counter(page).display()]
|
||||
],
|
||||
)
|
||||
|
||||
context [
|
||||
#set page(footer: none)
|
||||
#set text(size: 14pt)
|
||||
#show heading.where(level: 1): it => {
|
||||
set text(size: 24pt)
|
||||
block(it.body)
|
||||
}
|
||||
#grid(
|
||||
columns: (50%, 50%),
|
||||
gutter: 5pt,
|
||||
align(left + bottom)[Duale Hochschule Sachsen\
|
||||
Staatliche Studienakademie Dresden\
|
||||
#group],
|
||||
align(right + bottom)[_Praxispartner:_\ #company-data],
|
||||
)
|
||||
|
||||
|
||||
#align(center + horizon)[
|
||||
#block(width: 15cm, [#heading(level: 1, outlined: false, numbering: none)[#topic]
|
||||
#v(1.5cm)
|
||||
#subtitle
|
||||
#v(1.5cm)
|
||||
eingereicht von:\
|
||||
#author])
|
||||
]
|
||||
#align(bottom)[
|
||||
#for c in consultants {
|
||||
if (c.keys().contains("gender") == false) {
|
||||
[Gutachter/in: ]
|
||||
} else if (c.gender == "M") {
|
||||
[Gutachter: ]
|
||||
} else if (c.gender == "F") {
|
||||
[Gutachterin: ]
|
||||
}
|
||||
c.name
|
||||
linebreak()
|
||||
}
|
||||
#v(1cm)
|
||||
Tag der Themenübergabe: #assignment-date.display("[day].[month].[year]")
|
||||
|
||||
Tag der Einreichung: #submission-date.display("[day].[month].[year]")
|
||||
#v(3cm)
|
||||
]
|
||||
#pagebreak()
|
||||
]
|
||||
set page(numbering: (..nums) => numbering("I", counter(page).get().at(0)))
|
||||
outline(indent: 0%)
|
||||
pagebreak()
|
||||
{
|
||||
show heading: none
|
||||
heading(numbering: none)[Abbildungsverzeichnis]
|
||||
}
|
||||
outline(title: "Abbildungsverzeichnis", target: figure.where(kind: image))
|
||||
|
||||
|
||||
{
|
||||
show heading: none
|
||||
heading(numbering: none)[Anhangverzeichnis]
|
||||
}
|
||||
outline(title: "Anhangverzeichnis", target: figure.where(kind: table).or(figure.where(kind: raw)))
|
||||
pagebreak()
|
||||
counter(page).update(1)
|
||||
set page(numbering: (..nums) => numbering("1", counter(page).get().at(0)))
|
||||
|
||||
body
|
||||
|
||||
bib
|
||||
|
||||
statement(location)
|
||||
}
|
||||
|
||||
52
example/paper.typ
Normal file
52
example/paper.typ
Normal file
@@ -0,0 +1,52 @@
|
||||
#import "../dhsn.typ": dhsn
|
||||
|
||||
#show: dhsn.with(
|
||||
bib: bibliography("sources.yml"),
|
||||
assignment-date: datetime(year: 2025, month: 7, day: 20)
|
||||
)
|
||||
|
||||
= Kapitel 1
|
||||
Im Fließtext kann ich auf #ref(<data>) verweisen.
|
||||
|
||||
== Definition
|
||||
|
||||
Leider muss ich auf das tolle Buch verweisen #footnote[Vgl. @makeityourself, S. 10]
|
||||
|
||||
Google #footnote[Vgl. @google]
|
||||
|
||||
Hier ist eine Komplizierte Formel:
|
||||
$ I(t) = (d Q(t)) / (d t) $
|
||||
|
||||
...aber es geht noch schlimmer:
|
||||
|
||||
$ arrow(F_L) &= q dot arrow(v) times arrow(B) \
|
||||
|arrow(F_L)| &= q |arrow(v)| dot |arrow(B)| dot sin(phi)
|
||||
$
|
||||
|
||||
#pagebreak()
|
||||
#set heading(numbering: "A")
|
||||
#counter(heading).update(0)
|
||||
= Anhang
|
||||
|
||||
#grid(
|
||||
columns: (50%, 50%),
|
||||
align: bottom,
|
||||
figure(
|
||||
```go
|
||||
import fmt
|
||||
func main() {
|
||||
fmt.Println("Hallo Welt")
|
||||
}
|
||||
```,
|
||||
caption: "Beispiel-Programm in golang",
|
||||
),
|
||||
[#figure(
|
||||
table(
|
||||
columns: 2,
|
||||
"A", $overline("A")$,
|
||||
"0", "1",
|
||||
"1", "0",
|
||||
),
|
||||
caption: "Beispieldaten",
|
||||
)<data>],
|
||||
)
|
||||
13
example/sources.yml
Normal file
13
example/sources.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
google:
|
||||
type: web
|
||||
author: Google LLC
|
||||
date: 2025
|
||||
url:
|
||||
value: https://google.com
|
||||
date: 2025-06-23
|
||||
|
||||
makeityourself:
|
||||
type: book
|
||||
author: NODE
|
||||
date: 2025
|
||||
title: Make It Yourself - 100 Useful Things to Make
|
||||
Reference in New Issue
Block a user