#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], ), mynode((1,0),"1", [Grundlagen], ), mynode((2,0), "13",[Lineare Algebra], ), mynode((0,1),"3",[Unendliche Reihen], ), mynode((1,1), "2",[Differential- und Integralrechnung], ), mynode((2,1), "14",[Lineare Optimierung], ), mynode((0,2), [7$#sub(text(0.5em)[1])$],[Gewöhnliche Differentialgleichungen], ), mynode((1,2), "4",[Differentialrechnung mit mehreren Variablen], ), mynode((2,2), "15",[Nichtlineare Optimierung], ), mynode((0,3), [7$#sub(text(0.5em)[2])$],[Gewöhnliche Differentialgleichungen], ), mynode((1,3.), "5",[Integralrechnung mit mehreren Variablen], ), mynode((2,3), "16",[Optimale Prozesse und Systeme], ), mynode((0,4), "8",[Partielle Differentialgleichungen], ), mynode((1,4), "6",[Differentialgeometrie], ), mynode((2,4), "17",[Wahrscheinlichkeitsrechnung, math.Statistik], ), mynode((0,5), "9",[Komplexe Funktionen], ), mynode((1,5), "10",[Operatorenrechnung], ), mynode((2,5), [21$#sub(text(0.5em)[1])$],[Spieltheorie], ), mynode((0,6), "12",[Spezielle Funktionen], ), mynode((1,6), "11",[Tensoralgebra und -analysis], ), mynode((2,6), [21$#sub(text(0.5em)[2])$],[Graphentheorie], ), mynode((0,7), [18],[Numerische Methoden], ), mynode((1,7), [20],[Simulation], ), mynode((2,7), [19$#sub(text(0.5em)[1])$],[Stochastische Prozesse und Modelle], ), mynode((0,8), [22],[Funktionalanalysis], ), mynode((1,8), [23],[Symmetriegruppen], ), mynode((2,8), [19$#sub(text(0.5em)[2])$],[Statistische Versuchsplanung], ), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), myedge(,,"-|>"), // 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: ( , (0, 5.2), // deutlich nach rechts → sichtbarer Knick (0.5, 5.2), // dann nach links (0.5, 8), // runter , ), corner: right, corner-radius: 0pt, // abgerundete Ecken! stroke: orange + 1.25pt, marks: "-|>", shift: (1pt, 1pt), ), //10 → 22 edge( vertices: ( , (1, 5.2), // deutlich nach rechts → sichtbarer Knick (0.5, 5.2), // dann nach links (0.5, 8), // runter , ), corner: left, corner-radius: 0pt, // abgerundete Ecken! stroke: orange + 1.25pt, marks: "-|>", shift: (1pt, 1pt), ), //3 → 7.2 edge( vertices: ( , (-0.85, 1), // deutlich nach rechts → sichtbarer Knick (-0.85, 1), // dann nach links (-0.85, 3), // runter , ), corner: left, corner-radius: 0pt, // abgerundete Ecken! stroke: red + 1.25pt, marks: "-|>", shift: (1pt, 1pt), ), //13 → 4 edge( vertices: ( , (2, 0.18), // deutlich nach rechts → sichtbarer Knick (1.5, 0.2), // dann nach links (1.5, 2), // runter , ), corner: left, corner-radius: 0pt, // abgerundete Ecken! stroke: green + 1.25pt, marks: "-|>", shift: (2pt, 2pt), ), //1 → 13 edge( (rel: (0pt, 5mm), to: ), (rel: (0.1, 0.)), (rel: (0pt, 5mm), to: ), "-|>", corner-radius: 0pt , stroke: green.darken(30%) + 1.25pt, ), //5 → 8 edge( (rel: (0pt, 0mm), to: ), (rel: (-0.15, 0.)), (rel: (0.08,0), to: ), (rel: (0.,0), to: ), "-|>", corner-radius: 0pt , stroke: 1.25pt + olive, ), //7_1 → 6 edge( vertices: ( (rel: (0pt, -2pt), to: ), (0.25, 2.2), (0.52, 2.2), (0.52,4), (rel: (0pt, 0pt), to: ) ), corner-radius: 0pt, stroke: gray + 1.25pt, marks: "-|>", ), //4 → 7_1 edge( (rel: (0pt, 5mm), to: ), (rel: (-0.1, 0.)), (rel: (0pt, 5mm), to: ), "-|>", corner-radius: 0pt , stroke: 1.25pt , ), //9 → 10 edge( (rel: (0pt, 5mm), to: ), (rel: (0.1, 0.)), (rel: (0pt, 5mm), to: ), "-|>", corner-radius: 0pt , stroke: 1.25pt , ), //5 → 17 edge( , (rel: (0.07, 0.)), (rel: (0, 0.5)), (rel: (0pt, 10pt), to: ), , "-|>", corner-radius: 0pt , stroke: blue.lighten(20%) +1.25pt , ), //4 → 15 edge( (rel: (0pt, -5mm), to: ), (rel: (0.1, 0.)), (rel: (0pt, -5mm), to: ), "-|>", corner-radius: 0pt , stroke: 1.25pt , ), //8 → 16 edge( (rel: (0.2,0), to: ), (rel: (0., 0.1)), (rel: (1.3, 0.)), (rel: (-0.115, 0), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + yellow.darken(20%), ), //6 → 11 edge( (rel: (0pt, -5mm), to: ), (rel: (0.065, 0.)), (rel: (0.065,0), to: ), (rel: (0.,0), to: ), "-|>", corner-radius: 0pt , stroke: 1.25pt + purple.lighten(20%), ), //13 → 23 edge( (), (rel:(0.75,0)), (rel:(0, 9.8)),// <---- (rel:(-3.38, 0)), //(rel: (0.6, 0.), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + orange.darken(10%), ), //15 → 21_1 21_2 edge( (), // Startpunkt (rel: (0.5, 0)), (rel: (0.5, 0.), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + blue, ), edge( (), // Startpunkt (rel: (0.5, 0)), (rel: (0.5, 0.), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + blue, ), //16 → 19_1 19_2 edge( (), (rel: (0.3, 0)), (rel: (0.3, 0.), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + purple, ), edge( (), (rel: (0.3, 0)), (rel: (0.3, 0.), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + purple, ), //17 → 21_2 edge( (rel: (-0.2,0), to: ), (rel: (0, 0.2)), (rel: (-.325, 0.)), (rel: (-0.14, 0), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + red, ), //17 → 19_1, 19_2 edge( (), (rel: (-0.075, 0)), (rel: (-0.075,-0.20), to: ), (rel: (0.,-0.2), to: ), "-|>", corner-radius: 0pt , stroke: 1.25pt + green, ), edge( (), (rel: (-0.075, 0)), (rel: (-0.075, 0.), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + green, ), //19_2 → 20 edge( (), (rel: (-0.2, 0)), (rel: (0, -0.1)), (rel: (-0, 0.18), to: ), , "-|>", corner-radius: 0pt , stroke: 1.25pt + blue, ), )