diff --git a/Band1/Band1.typ b/Band1/Band1.typ new file mode 100644 index 0000000..8a726d0 --- /dev/null +++ b/Band1/Band1.typ @@ -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], ), + mynode((1.8,1),"1", [Grundlagen], ), + mynode((2.925,1), "13",[Lineare Algebra], ), + + mynode((0.25,1.95),"3",[Unendliche Reihen], ), + mynode((1.8,1.95), "2",[Differential- und Integralrechnung], ), + mynode((2.925,1.95), "14",[Lineare Optimierung], ), + + mynode((0.25,2.92), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], ), + mynode((1.8,2.92), "4",[Differentialrechnung mit mehreren Variablen], ), + mynode((2.925,2.92), "15",[Nichtlineare Optimierung], ), + + mynode((0.25,3.92), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), + mynode((1.8,3.92), "5",[Integralrechnung mit mehreren Variablen], ), + mynode((2.925,3.92), "16",[Optimale Prozesse und Systeme], ), + + mynode((0.25,4.92), "8",[Partielle Differentialgleichungen], ), + mynode((1.8,4.92), "6",[Differentialgeometrie], ), + mynode((2.925,4.92), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], ), + + mynode((0.25,5.92), "9",[Komplexe Funktionen], ), + mynode((1.8,5.92), "10",[Operatorenrechnung], ), + mynode((2.925,5.92), "21",[Spieltheorie], ), + + mynode((0.25,6.92), "12",[Spezielle Funktionen], ), + mynode((1.8,6.92), "11",[Tensoralgebra und -analysis], <119>), +/* + + + + + + + + mynode((-1,5.85), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), + mynode((-1,6.85), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), + mynode((-1,7.85), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), */ + //mynode((-3,1), [Unendliche Reihen], ), + //mynode((-1,1), [Differential- und Integralrechnung], ), + // mynode((2,2), [Harold], $A_3$, ), + // mynode((0,2), [Ian], $A_4$, ), + + + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + myedge(,,"-|>"), + // myedge(,,"-|>", $1$, $6$), + // myedge(,,"-|>", $8$, $4$), + + + edge( + (rel: (0pt, -5mm), to: ), + // Startpunkt + (rel: (-0.05, 0.)), // 1. Punkt: 0.5 Einheiten nach links (bleibt auf gleicher Höhe wie Start) + + (rel: (0.1, 0.), to: ), // 2. Punkt: Direkt über dem Ziel (gleiches X wie A4.north) + , // Zielpunkt + "-|>", + corner-radius: 0pt , + stroke: 1.25pt, // WICHTIG: Auf 0pt setzen für harte Ecken + + ), + edge( + (rel: (0pt, 5mm), to: ), + + (rel: (0.1, 0.)), + + (rel: (0pt, 5mm), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt , +), + + edge( + (rel: (0pt, 5mm), to: ), + + (rel: (-0.1, 0.)), + + (rel: (0pt, 5mm), to: ), + "-|>", + corner-radius: 0pt , + stroke: 1.25pt , +), + + edge( + (), + // Startpunkt + (rel: (-0.6, 0.)), // 1. Punkt: 0.5 Einheiten nach links (bleibt auf gleicher Höhe wie Start) + + (rel: (-0.6, 0.), to: ), // 2. Punkt: Direkt über dem Ziel (gleiches X wie A4.north) + , // Zielpunkt + "-|>", + corner-radius: 0pt , + stroke: 1.25pt, // WICHTIG: Auf 0pt setzen für harte Ecken + + ), + + +) + +#counter(page).update(1) +#pagebreak() diff --git a/Band1/SRVorlage.typ b/Band1/SRVorlage.typ new file mode 100644 index 0000000..76e70d4 --- /dev/null +++ b/Band1/SRVorlage.typ @@ -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, + ) + ) + ] +} \ No newline at end of file diff --git a/Band1/Vorlage/Grundlagen der Mathematik, Abbildungen, Funktionen, Folgen.pdf b/Band1/Vorlage/Grundlagen der Mathematik, Abbildungen, Funktionen, Folgen.pdf new file mode 100644 index 0000000..5ecb2ca Binary files /dev/null and b/Band1/Vorlage/Grundlagen der Mathematik, Abbildungen, Funktionen, Folgen.pdf differ diff --git a/Band1/abhaengigkeit.typ b/Band1/abhaengigkeit.typ new file mode 100644 index 0000000..812b797 --- /dev/null +++ b/Band1/abhaengigkeit.typ @@ -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])*/ + + + + +} \ No newline at end of file diff --git a/Band1/deckblatt.typ b/Band1/deckblatt.typ new file mode 100644 index 0000000..d3503ce --- /dev/null +++ b/Band1/deckblatt.typ @@ -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] + })) + +} \ No newline at end of file diff --git a/Band2/Band2.pdf b/Band2/Band2.pdf deleted file mode 100644 index 58afa5c..0000000 Binary files a/Band2/Band2.pdf and /dev/null differ