abhängigkeit begonnen

This commit is contained in:
2026-03-05 12:45:45 +01:00
parent 0b84da0761
commit e8e25f1018
6 changed files with 850 additions and 0 deletions

189
Band1/Band1.typ Normal file
View File

@@ -0,0 +1,189 @@
#import "@preview/cetz:0.4.2" //Grafiken
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#import "@preview/marge:0.1.0": sidenote
#import "deckblatt.typ": deckblatt
#import "abhaengigkeit.typ": abhaengigkeit
//#import "definitionen.typ": *
#set text(
font: "Lato", //Serifenlose Schrift
size: 8.5pt,
lang: "de", //Deutsche Spracheinstellungen
)
#set page(
width:162mm,
height: 230mm,
margin: 20mm,
)
#set par(
justify: true, //Blocksatz
leading: 0.55em,
)
// Einfach die Funktion aufrufen
#deckblatt(bandnr: "1", autor: "SIEBER \u{2219} SEBASTIAN \u{2219} ZEIDLER ", titel: "Grundlagen der Mathematik,\nAbbildungen,\nFunktionen, Folgen")
#pagebreak()
//#abhaengigkeit()
#set page(
background: grid(columns: (1mm,) * 162, rows: (1mm,) * 230, stroke: 0.1mm),
margin: (
top: 10mm,
bottom: 10mm,
x: 1cm,
),
width:162mm,
height: 230mm,
)
/* #let mynode(pos, text1, text2, name) = {
node(pos, [#text( size:1.7em, text2) \ #text1], name:name, stroke: 1pt, corner-radius: 0mm,
height: 3.5em, width:10em)
/* Dashed separator from east to west */
//edge(label(str(name)+".west"), label(str(name)+".east"),"-", stroke: 0.2mm, dash:(1mm, 0.8mm))
} */
#let mynode(pos, zahl, inhalt, name) = {
node(
name: name,
pos,
block(
width: 36mm, // Feste Breite
height: 14mm, // Feste Höhe
{
align(top + right, text(2.5em, fill: gray.darken(90%))[#zahl])
place(bottom + left, inhalt) // Nutzt den Platz des Blocks
}
),
stroke: 1.25pt,
corner-radius: 0pt
)
}
#let myedge(start, end, type, ) = {
let sep = 0.15em
edge(start, end, type)
edge(start, end)
}
#diagram(
edge-stroke: 1.25pt,
mark-scale: 75%,
mynode((0.25,1),"",[Vorbereitungsband], <A0>),
mynode((1.8,1),"1", [Grundlagen], <A1>),
mynode((2.925,1), "13",[Lineare Algebra], <A13>),
mynode((0.25,1.95),"3",[Unendliche Reihen], <A3>),
mynode((1.8,1.95), "2",[Differential- und Integralrechnung], <A2>),
mynode((2.925,1.95), "14",[Lineare Optimierung], <A14>),
mynode((0.25,2.92), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], <A7_1>),
mynode((1.8,2.92), "4",[Differentialrechnung mit mehreren Variablen], <A4>),
mynode((2.925,2.92), "15",[Nichtlineare Optimierung], <A15>),
mynode((0.25,3.92), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], <A7_2>),
mynode((1.8,3.92), "5",[Integralrechnung mit mehreren Variablen], <A5>),
mynode((2.925,3.92), "16",[Optimale Prozesse und Systeme], <A16>),
mynode((0.25,4.92), "8",[Partielle Differentialgleichungen], <A8>),
mynode((1.8,4.92), "6",[Differentialgeometrie], <A6>),
mynode((2.925,4.92), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], <A17>),
mynode((0.25,5.92), "9",[Komplexe Funktionen], <A9>),
mynode((1.8,5.92), "10",[Operatorenrechnung], <A10>),
mynode((2.925,5.92), "21",[Spieltheorie], <A21>),
mynode((0.25,6.92), "12",[Spezielle Funktionen], <A12>),
mynode((1.8,6.92), "11",[Tensoralgebra und -analysis], <119>),
/*
mynode((-1,5.85), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], <A12>),
mynode((-1,6.85), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], <A18>),
mynode((-1,7.85), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], <A22>), */
//mynode((-3,1), [Unendliche Reihen], <A4>),
//mynode((-1,1), [Differential- und Integralrechnung], <A5>),
// mynode((2,2), [Harold], $A_3$, <A3>),
// mynode((0,2), [Ian], $A_4$, <A4>),
myedge(<A0.east>,<A1.west>,"-|>"),
myedge(<A1.south>,<A2.north>,"-|>"),
myedge(<A2.west>,<A3.east>,"-|>"),
myedge(<A13.south>,<A14.north>,"-|>"),
myedge(<A2.south>,<A4.north>,"-|>"),
myedge(<A14.south>,<A15.north>,"-|>"),
// myedge(<A3.west>,<A4.east>,"-|>", $1$, $6$),
// myedge(<A4.north>,<A1.south>,"-|>", $8$, $4$),
edge(
(rel: (0pt, -5mm), to: <A13.west>),
// Startpunkt
(rel: (-0.05, 0.)), // 1. Punkt: 0.5 Einheiten nach links (bleibt auf gleicher Höhe wie Start)
(rel: (0.1, 0.), to: <A4.east>), // 2. Punkt: Direkt über dem Ziel (gleiches X wie A4.north)
<A4.east>, // Zielpunkt
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt, // WICHTIG: Auf 0pt setzen für harte Ecken
),
edge(
(rel: (0pt, 5mm), to: <A1.east>),
(rel: (0.1, 0.)),
(rel: (0pt, 5mm), to: <A13.west>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt ,
),
edge(
(rel: (0pt, 5mm), to: <A4.west>),
(rel: (-0.1, 0.)),
(rel: (0pt, 5mm), to: <A7_1.east>),
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt ,
),
edge(
(<A3.west>),
// Startpunkt
(rel: (-0.6, 0.)), // 1. Punkt: 0.5 Einheiten nach links (bleibt auf gleicher Höhe wie Start)
(rel: (-0.6, 0.), to: <A7_2.west>), // 2. Punkt: Direkt über dem Ziel (gleiches X wie A4.north)
<A7_2.west>, // Zielpunkt
"-|>",
corner-radius: 0pt ,
stroke: 1.25pt, // WICHTIG: Auf 0pt setzen für harte Ecken
),
)
#counter(page).update(1)
#pagebreak()

391
Band1/SRVorlage.typ Normal file
View File

@@ -0,0 +1,391 @@
#import "@preview/droplet:0.3.1": dropcap
#import "@preview/fontawesome:0.6.0": *
#import "@preview/wrap-it:0.1.1": wrap-content
#let __st-theme = state("theme")
//
// Template for a paragaph with a dropped capital and
// the first sentence in theme color
//
#let dropcappara(
firstline: none,
body
) = {
context {
let theme = __st-theme.final()
set text(fill: theme.themecolor, weight: "semibold")
dropcap(height: 3, gap: 4pt,)[#firstline.first()][#firstline.slice(2)
#set text(fill: black, weight: "regular")
#body
]
}
}
//
// Template for a paragaph with an author picture in a circle bottom right
//
#let authorwrap(
authorimage: none,
authorcaption: none,
body,
) = {
context {
let theme = __st-theme.final()
wrap-content(
box(width: 3cm, height:3.5cm,
figure(
box(clip: true, stroke: 5pt + theme.themecolor, radius: 1.5cm, width: 2.5cm, height: 2.5cm,
authorimage),
caption: authorcaption,
numbering: none)),
body,
align: bottom + right,
)
}
}
//
// Template for an information box. Can over-ride the icon shown.
//
#let infobox(
info,
icon: "info-circle",
) = {
context {
let theme = __st-theme.final()
box(
fill: theme.themecolor.lighten(90%),
stroke: 1pt,
radius: 8pt,
width: 100%,
grid(
columns: (1fr, 8fr),
inset: 8pt,
align(horizon+center, fa-icon(icon, size: 2.5em)),
align(horizon + left, info)
)
)
}
}
//
// Main Report Template. Can over-ride title and publication date.
//
#let report(
title: "Title of the Work",
publishdate: "Some Date",
mylogo: none,
myfeatureimage: none,
//myvalues: "VALUE1 | VALUE2 | VALUE3 | VALUE4",
mycolor: rgb(166, 0, 120),
myfont: "Arial",
body,
) = {
// Set Theme into context
context {
__st-theme.update((
themefont: myfont,
themecolor: mycolor,
))
}
// Set table to have alterate shaded rows
/* set table(
align: left,
inset: 10pt,
fill: (_, y) => if calc.even(y) { mycolor.lighten(90%) }
)
// Set table to have bold header
show table.cell: it => {
if it.y == 0 {
strong(it)
} else {
it
}
}*/
// Make links blue and underlined
show link: set text(fill: mycolor)
show link: underline
// Cover page
page(
margin: 0cm,
numbering: none,
)[
// Left colored bar
#place(
left + top,
rect(
width: 2cm,
height: 100%,
fill: mycolor,
),
)
/* #place(
bottom + left,
move(dx: 1.25cm, dy: -5cm,
rotate(-90deg, origin: bottom + left,
text(size: 28pt, fill: white, spacing: 140%, font: myfont, myvalues))
)
)*/
#place(
left + bottom,
polygon(
fill: mycolor.lighten(80%),
stroke: none,
(0pt, 0pt),
(50%, 0pt),
(50%, -8cm),
)
)
#place(
bottom + right,
rect(
width: 50%,
height: 8cm,
fill: mycolor.lighten(80%),
),
)
// Tech Image
#place(
bottom + right,
move(
dx: -7.5cm, dy: -5cm,
box(clip: true, stroke: 5pt + mycolor, radius: 3cm,
width: 6cm, height: 6cm,
myfeatureimage)
)
)
// logo
#place(
bottom + right,
move(
dx: -1cm, dy: -1cm,
mylogo
)
)
// Content
#pad(
left: 3cm,
right: 2cm,
top: 3cm,
bottom: 3cm,
{
set text(font: myfont)
set text(size: 12pt)
// Header info
v(1fr)
// Title auf Titelpage
set text(size: 24pt, weight: "semibold")
//set pad(left: 2cm)
set par(leading: 0.5em, justify: false,)
title
linebreak()
set text(size: 14pt, weight: "regular")
publishdate
v(1.2fr)
},
)
]
// Table of Contents
page(
header: none,
numbering: none,
)[
// Style the outline entries
#show outline.entry.where(level: 1): it => {
v(18pt, weak: true)
text()[#strong(it)]
}
// Style level 2 entries in blue
#show outline.entry.where(level: 2): it => {
v(12pt, weak: true)
text()[#it]
}
#set text(size: 10pt, font: myfont)
// Custom title styled like chapter headings
#block(
above: 0pt,
below: 25pt,
{
set text(size: 20pt, weight: "semibold", font: myfont, fill: mycolor)
align(right)[Inhaltsverzeichnis]
v(2em)
},
)
#set par(leading: 1.8em)
#outline(
title: none,
depth: 2,
indent: auto,
)
]
// Page setup for content
set page(
paper: "a4",
margin: (top: 3cm, bottom: 3cm, left: 2.5cm, right: 2.5cm),
header: context {
let page-num = counter(page).get().first()
// Don't show header on first page
if page-num <= 1 {
return
}
// Check if current page has a chapter heading
let current-page = here().page()
let headings-on-page = query(heading.where(level: 1)).filter(h => h.location().page() == current-page)
// Don't show header on pages with chapter headings
if headings-on-page.len() > 0 {
return
}
// Show header on all other pages
set text(fill: mycolor, size: 10pt, font: myfont)
let chapter-title = {
let elems = query(heading.where(level: 1))
if elems.len() > 0 {
let relevant = elems.filter(h => h.location().page() <= current-page)
if relevant.len() > 0 {
upper(relevant.last().body)
}
}
}
grid(
columns: (1fr, auto),
align: (left, right),
chapter-title, counter(page).display(),
)
line(length: 100%, stroke: 0.5pt + mycolor)
},
)
// Reset page counter for main content
counter(page).update(1)
// Text setup
set text(size: 10pt, font: myfont)
set par(
leading: 1em,
spacing: 1.2em,
justify: true,
first-line-indent: 0pt,
)
// Chapter headings (level 1)
show heading.where(level: 1): it => {
pagebreak(weak: true)
set text(size: 17pt, weight: "semibold")
block(
//above: 0pt,
//below: 20pt,
//spacing: 0pt,
{
set par(leading: 0.5em)
if it.numbering != none {
grid(
columns: (auto, 1fr),
column-gutter: 0.6em,
align: (left, left), // Überschrift alles links,war vorher left right
text(fill: mycolor)[#counter(heading).display().],
// Right side: heading text in black
text(fill: mycolor)[#it.body],
)
} else {
// If no numbering, just right-align the text
align(left, it.body)
}
v(1em)
},
)
}
// Section headings (level 2)
show heading.where(level: 2): it => {
set text(size: 14pt, weight: "semibold")
block(
above: 1.5em,
below: 1em,
{
if it.numbering != none {
counter(heading).display()
[. ]
}
//h(0.6em)
it.body
},
)
}
// Subsection headings (level 3)
show heading.where(level: 3): it => {
set text(size: 16pt, weight: "medium")
block(
above: 1.2em,
below: 0.8em,
{
if it.numbering != none {
counter(heading).display()
[. ]
}
h(0.6em)
it.body
},
)
}
set heading(numbering: "1.1")
body
// Back cover page
page(
margin: 0cm,
numbering: none,
header: none,
fill: black,
)[
#place(
top + left,
rect(
width: 100%,
height: 100%,
fill: mycolor,
),
)
// logo centered in bottom half
#place(
center + horizon,
dy: 25%,
rect(
fill: white,
radius: 0.5cm,
mylogo,
)
)
]
}

20
Band1/abhaengigkeit.typ Normal file
View File

@@ -0,0 +1,20 @@
#let abhaengigkeit() = {
/* place(
top + left,
dx: -1.5cm, // Hebt den linken Rand auf
dy: -0cm, // Abstand von der Oberkante des Blattes
box(fill: white, inset: (x: 20pt, y: 20pt), outset: (x: 0pt, y:0pt), stroke: 2pt)[Vorbereitungsband])
place(
top + left,
dx: 3cm, // Hebt den linken Rand auf
dy: -0cm, // Abstand von der Oberkante des Blattes
box(fill: white, inset: (x: 20pt, y: 20pt), outset: (x: 0pt, y:0pt), stroke: 2pt)[Vorbereitungsband])*/
}

250
Band1/deckblatt.typ Normal file
View File

@@ -0,0 +1,250 @@
#let deckblatt(bandnr: "", autor: "", titel: "") = {
place(
top + left,
dx: -20mm, // Hebt den linken Rand auf
dy: -20mm, // Abstand von der Oberkante des Blattes
rect(
width: 163mm, // Exakte Breite A4
height: 230mm,
fill: rgb(52.2%, 87.8%, 78.4%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -20mm,
dy: 12mm,
//Linie
rect(
width: 162mm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 1.4cm,
rect(
width: 27cm, height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 1.6cm,
rect(
width: 27cm, // Exakte Breite A4
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -2.5cm,
dy: 1.8cm,
rect(
width: 27cm, // Exakte Breite A4
height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 2cm, // Abstand von der Oberkante des Blattes
rect(
width: 27cm, // Exakte Breite A4
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left, // Wo auf der Seite (oder im Absatz)
dx: 94mm, // Versatz von links
dy: 85mm, // Versatz von oben
{
import "@preview/cetz:0.3.1"
cetz.canvas({
import cetz.draw: *
// Halbkreis
arc((x:0,y:0), start: 0deg, stop: -180deg, radius: 17mm, fill: rgb(100%, 100%, 87.1%), stroke: none)
})
}
)
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 2.2cm, // Abstand von der Oberkante des Blattes
rect(
width: 230cm, // Exakte Breite A4
height: 58mm,
fill: rgb(12.9%, 18%, 32.9%),
inset: (right: 1cm, left: 7mm, top: 1cm),
//stroke: 0.5pt + red,
))
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 80mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 82mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 84mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm,
dy: 86mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(17.3%, 19.6%, 36.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
place(
top + left,
dx: -2.5cm, // Hebt den linken Rand auf
dy: 88mm,
rect(
width: 27cm,
height: 2mm,
fill: rgb(100%, 100%, 87.1%),
inset: (right: 1cm, left: 7mm, top: 1cm),
))
/* place(
top + left,
dx: 7.5cm, // Hebt den linken Rand auf
dy: 62mm,
circle( radius: 15mm, fill: rgb(100%, 32.2%, 18.8%)),
//height: 2mm,
//fill: rgb(100%, 100%, 87.1%),
//inset: (right: 1cm, left: 7mm, top: 1cm),
) */
place(
top + left,
dx: 95mm,
dy: 68mm,
box(width: 30mm, height: 30mm)[
#circle(radius: 16mm, fill: rgb(100%, 32.2%, 18.8%), stroke: none)
#place(center + horizon)[
// Wir erzwingen hier ALLES neu
#set text(font: "Fira Math", size: 48pt, fill: black)
#bandnr
]
]
/* {
set align(center + horizon)
text(weight: "bold",fill: black, size: 45pt)[$1$]
}*/
)
// Text
place(
top + left,
dx: -1cm,
dy: 2.6cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(7.5em, fill: rgb(100%, 32.2%, 18.8%), weight: "bold",style: "italic", tracking: 0.06em, font: "Lato")[MATHEMATIK]
})
)
place(
top + left,
dx: -0.9cm,
dy: 4.7cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[FÜR INGENIEURE]
})
)
place(
top + left,
dx: -0.4cm,
dy: 5.4cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[NATURWISSENSCHAFTLER]
})
)
place(
top + left,
dx: -0.4cm,
dy: 6.1cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[ÖKONOMEN]
}))
place(
top + left,
dx: -0.4cm,
dy: 6.8cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(2em, fill: rgb(100%, 100%, 87.1%), weight: "bold", tracking: 0em, font: "Lato")[LANDWIRTE]
}))
place(
top + left,
dx: -0.4cm,
dy: 10cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
text(1.25em, fill: rgb(3.1%, 20%, 29%), weight: "bold", tracking: 0.05em, font: "Lato")[#autor]
}))
place(
top + left,
dx: -0.4cm,
dy: 11.5cm,
// box mit width: auto erlaubt der Zeile, beliebig lang zu werden
box(width: 150%, {
set par(leading: 1em)
text(1.9em, fill: rgb(3.1%, 20%, 29%),weight: "bold", tracking: 0.0em, font: "Lato")[#titel]
}))
}

Binary file not shown.