361 lines
8.4 KiB
Typst
361 lines
8.4 KiB
Typst
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
|
|
|
|
|
|
|
|
#let mynode(pos, zahl, inhalt, name) = {
|
|
node(
|
|
pos,
|
|
name: name,
|
|
shape: rect, // 1. Zwingt Fletcher zum Rechteck
|
|
corner-radius: 0pt, // 2. Verhindert abgerundete Ecken
|
|
fill: white, // Optional: Hintergrund füllen
|
|
stroke: 1.25pt,
|
|
|
|
// 3. WICHTIG: Festlegen einer Mindestgröße, damit alle gleich starten
|
|
// Anstatt extrude nutzen wir feste Maße, die sich aber am Gitter ausrichten
|
|
width: 12em,
|
|
height: 5.8em,
|
|
|
|
{
|
|
// Dein Layout-Block
|
|
set align(top + right)
|
|
text(2.5em, fill: gray.darken(90%))[#zahl]
|
|
place(bottom + left, inhalt)
|
|
}
|
|
)}
|
|
|
|
#let myedge(start, end, type, ) = {
|
|
let sep = 0.15em
|
|
edge(start, end, type)
|
|
edge(start, end)
|
|
}
|
|
|
|
|
|
#let abhaengigkeit = diagram(
|
|
spacing: (11mm, 7mm),
|
|
//debug: 3,
|
|
edge-stroke: 1.25pt,
|
|
|
|
mark-scale: 55%,
|
|
mynode((0,0),"",[Vorbereitungsband], <A0>),
|
|
mynode((1,0),"1", [Grundlagen], <A1>),
|
|
mynode((2,0), "13",[Lineare Algebra], <A13>),
|
|
|
|
mynode((0,1),"3",[Unendliche Reihen], <A3>),
|
|
mynode((1,1), "2",[Differential- und Integralrechnung], <A2>),
|
|
mynode((2,1), "14",[Lineare Optimierung], <A14>),
|
|
|
|
mynode((0,2), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], <A7_1>),
|
|
mynode((1,2), "4",[Differentialrechnung mit mehreren Variablen], <A4>),
|
|
mynode((2,2), "15",[Nichtlineare Optimierung], <A15>),
|
|
|
|
mynode((0,3), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], <A7_2>),
|
|
mynode((1,3.), "5",[Integralrechnung mit mehreren Variablen], <A5>),
|
|
mynode((2,3), "16",[Optimale Prozesse und Systeme], <A16>),
|
|
|
|
mynode((0,4), "8",[Partielle Differentialgleichungen], <A8>),
|
|
mynode((1,4), "6",[Differentialgeometrie], <A6>),
|
|
mynode((2,4), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], <A17>),
|
|
|
|
mynode((0,5), "9",[Komplexe Funktionen], <A9>),
|
|
mynode((1,5), "10",[Operatorenrechnung], <A10>),
|
|
mynode((2,5), [21$#sub(text(0.5em)[1])$],[Spieltheorie], <A21_1>),
|
|
|
|
mynode((0,6), "12",[Spezielle Funktionen], <A12>),
|
|
mynode((1,6), "11",[Tensoralgebra und -analysis], <A11>),
|
|
mynode((2,6), [21$#sub(text(0.5em)[2])$],[Graphentheorie], <A21_2>),
|
|
|
|
mynode((0,7), [18],[Numerische Methoden], <A18>),
|
|
mynode((1,7), [20],[Simulation], <A20>),
|
|
mynode((2,7), [19$#sub(text(0.5em)[1])$],[Stochastische Prozesse und Modelle], <A19_1>),
|
|
|
|
mynode((0,8), [22],[Funktionalanalysis], <A22>),
|
|
mynode((1,8), [23],[Symmetriegruppen], <A23>),
|
|
mynode((2,8), [19$#sub(text(0.5em)[2])$],[Statistische Versuchsplanung], <A19_2>),
|
|
|
|
|
|
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(<A4.south>,<A5.north>,"-|>"),
|
|
myedge(<A5.south>,<A6.north>,"-|>"),
|
|
myedge(<A14.south>,<A15.north>,"-|>"),
|
|
myedge(<A7_1.south>,<A7_2.north>,"-|>"),
|
|
myedge(<A7_2.south>,<A8.north>,"-|>"),
|
|
myedge(<A8.south>,<A9.north>,"-|>"),
|
|
myedge(<A9.south>,<A12.north>,"-|>"),
|
|
myedge(<A12.south>,<A18.north>,"-|>"),
|
|
myedge(<A10.south>,<A11.north>,"-|>"),
|
|
myedge(<A15.south>,<A16.north>,"-|>"),
|
|
myedge(<A17.south>,<A21_1.north>,"-|>"),
|
|
myedge(<A19_1.south>,<A19_2.north>,"-|>"),
|
|
// NEUES Edge: 1,3 (n3_1) → 3,2 (n2_3)
|
|
// Verlauf: rechts von n3_1 nach rechts, runter auf Höhe von n2_3, dann links zur Node
|
|
|
|
//9 → 22
|
|
edge(
|
|
vertices: (
|
|
<A9.east>,
|
|
(0, 5.2), // deutlich nach rechts → sichtbarer Knick
|
|
(0.5, 5.2), // dann nach links
|
|
(0.5, 8), // runter
|
|
<A22.east>,
|
|
),
|
|
corner: right,
|
|
corner-radius: 0pt, // abgerundete Ecken!
|
|
stroke: orange + 1.25pt,
|
|
marks: "-|>",
|
|
shift: (1pt, 1pt),
|
|
),
|
|
//10 → 22
|
|
edge(
|
|
vertices: (
|
|
<A10.west>,
|
|
(1, 5.2), // deutlich nach rechts → sichtbarer Knick
|
|
(0.5, 5.2), // dann nach links
|
|
(0.5, 8), // runter
|
|
<A22.east>,
|
|
),
|
|
corner: left,
|
|
corner-radius: 0pt, // abgerundete Ecken!
|
|
stroke: orange + 1.25pt,
|
|
marks: "-|>",
|
|
shift: (1pt, 1pt),
|
|
),
|
|
//3 → 7.2
|
|
edge(
|
|
vertices: (
|
|
<A3.west>,
|
|
(-0.85, 1), // deutlich nach rechts → sichtbarer Knick
|
|
(-0.85, 1), // dann nach links
|
|
(-0.85, 3), // runter
|
|
<A7_2.west>,
|
|
),
|
|
corner: left,
|
|
corner-radius: 0pt, // abgerundete Ecken!
|
|
stroke: red + 1.25pt,
|
|
marks: "-|>",
|
|
shift: (1pt, 1pt),
|
|
),
|
|
|
|
//13 → 4
|
|
edge(
|
|
vertices: (
|
|
<A13.west>,
|
|
(2, 0.18), // deutlich nach rechts → sichtbarer Knick
|
|
(1.5, 0.2), // dann nach links
|
|
(1.5, 2), // runter
|
|
<A4.east>,
|
|
),
|
|
corner: left,
|
|
corner-radius: 0pt, // abgerundete Ecken!
|
|
stroke: green + 1.25pt,
|
|
marks: "-|>",
|
|
shift: (2pt, 2pt),
|
|
),
|
|
|
|
//1 → 13
|
|
edge(
|
|
(rel: (0pt, 5mm), to: <A1.east>),
|
|
(rel: (0.1, 0.)),
|
|
(rel: (0pt, 5mm), to: <A13.west>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: green.darken(30%) + 1.25pt,
|
|
),
|
|
|
|
//5 → 8
|
|
edge(
|
|
(rel: (0pt, 0mm), to: <A5.west>),
|
|
|
|
(rel: (-0.15, 0.)),
|
|
(rel: (0.08,0), to: <A8.east>),
|
|
(rel: (0.,0), to: <A8.east>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + olive,
|
|
),
|
|
|
|
//7_1 → 6
|
|
edge(
|
|
vertices: (
|
|
(rel: (0pt, -2pt), to: <A7_1.east>),
|
|
(0.25, 2.2),
|
|
(0.52, 2.2),
|
|
(0.52,4),
|
|
(rel: (0pt, 0pt), to: <A6.west>)
|
|
),
|
|
corner-radius: 0pt,
|
|
stroke: gray + 1.25pt,
|
|
marks: "-|>",
|
|
),
|
|
//4 → 7_1
|
|
edge(
|
|
(rel: (0pt, 5mm), to: <A4.west>),
|
|
|
|
(rel: (-0.1, 0.)),
|
|
|
|
(rel: (0pt, 5mm), to: <A7_1.east>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt ,
|
|
),
|
|
//9 → 10
|
|
edge(
|
|
(rel: (0pt, 5mm), to: <A9.east>),
|
|
|
|
(rel: (0.1, 0.)),
|
|
|
|
(rel: (0pt, 5mm), to: <A10.west>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt ,
|
|
),
|
|
//5 → 17
|
|
edge(
|
|
<A5.east>,
|
|
|
|
(rel: (0.07, 0.)),
|
|
(rel: (0, 0.5)),
|
|
|
|
(rel: (0pt, 10pt), to: <A17.north>),
|
|
<A17.north>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: blue.lighten(20%) +1.25pt ,
|
|
),
|
|
//4 → 15
|
|
edge(
|
|
(rel: (0pt, -5mm), to: <A4.east>),
|
|
|
|
(rel: (0.1, 0.)),
|
|
|
|
(rel: (0pt, -5mm), to: <A15.west>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt ,
|
|
),
|
|
//8 → 16
|
|
edge(
|
|
(rel: (0.2,0), to: <A8.south>),
|
|
(rel: (0., 0.1)),
|
|
(rel: (1.3, 0.)),
|
|
(rel: (-0.115, 0), to: <A16.west>),
|
|
<A16.west>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + yellow.darken(20%),
|
|
),
|
|
//6 → 11
|
|
edge(
|
|
(rel: (0pt, -5mm), to: <A6.east>),
|
|
|
|
(rel: (0.065, 0.)),
|
|
(rel: (0.065,0), to: <A11.east>),
|
|
(rel: (0.,0), to: <A11.east>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + purple.lighten(20%),
|
|
),
|
|
//13 → 23
|
|
edge(
|
|
(<A13.east>),
|
|
(rel:(0.75,0)),
|
|
(rel:(0, 9.8)),// <----
|
|
(rel:(-3.38, 0)),
|
|
//(rel: (0.6, 0.), to: <A21_2.east>),
|
|
<A23.south>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + orange.darken(10%),
|
|
|
|
),
|
|
|
|
//15 → 21_1 21_2
|
|
edge(
|
|
(<A15.east>),
|
|
// Startpunkt
|
|
(rel: (0.5, 0)),
|
|
(rel: (0.5, 0.), to: <A21_1.east>),
|
|
<A21_1.east>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + blue,
|
|
),
|
|
edge(
|
|
(<A15.east>),
|
|
// Startpunkt
|
|
(rel: (0.5, 0)),
|
|
(rel: (0.5, 0.), to: <A21_2.east>),
|
|
<A21_2.east>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + blue,
|
|
),
|
|
|
|
//16 → 19_1 19_2
|
|
edge(
|
|
(<A16.east>),
|
|
(rel: (0.3, 0)),
|
|
(rel: (0.3, 0.), to: <A19_1.east>),
|
|
<A19_1.east>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + purple,
|
|
),
|
|
edge(
|
|
(<A16.east>),
|
|
(rel: (0.3, 0)),
|
|
(rel: (0.3, 0.), to: <A19_2.east>),
|
|
<A19_2.east>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + purple,
|
|
),
|
|
|
|
//17 → 21_2
|
|
edge(
|
|
(rel: (-0.2,0), to: <A17.south>),
|
|
(rel: (0, 0.2)),
|
|
(rel: (-.325, 0.)),
|
|
(rel: (-0.14, 0), to: <A21_2.west>),
|
|
<A21_2.west>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + red,
|
|
),
|
|
//17 → 19_1, 19_2
|
|
edge(
|
|
(<A17.west>),
|
|
(rel: (-0.075, 0)),
|
|
(rel: (-0.075,-0.20), to: <A19_1.west>),
|
|
(rel: (0.,-0.2), to: <A19_1.west>),
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + green,
|
|
),
|
|
edge(
|
|
(<A17.west>),
|
|
(rel: (-0.075, 0)),
|
|
(rel: (-0.075, 0.), to: <A19_2.west>),
|
|
<A19_2.west>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + green,
|
|
),
|
|
|
|
//19_2 → 20
|
|
edge(
|
|
(<A19_2.north>),
|
|
(rel: (-0.2, 0)),
|
|
(rel: (0, -0.1)),
|
|
(rel: (-0, 0.18), to: <A20.south>),
|
|
<A20.south>,
|
|
"-|>",
|
|
corner-radius: 0pt ,
|
|
stroke: 1.25pt + blue,
|
|
),
|
|
)
|