aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAada2024-06-21 20:28:58 +0200
committerAada2024-06-21 20:29:30 +0200
commit9ae70dcc0a4bf70ea9535862c121ef2cfb564df6 (patch)
tree038ab55476f659890f9d5856d24721514929337a
parentaf953952c95178b359c98859e45e42accba8e4a5 (diff)
introduce Mannheim
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--rnv/mannheim.tex856
2 files changed, 860 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f6bbe34..dcf65dc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,10 +7,12 @@ build-pdf:
image: registry.gitlab.com/containers.ada/tectonic
script:
- "tectonic rnv/heidelberg.tex"
+ - "tectonic rnv/mannheim.tex"
- "tectonic rnv/disc-five.tex"
- "tectonic vag_freiburg/freiburg.tex"
artifacts:
paths:
+ - rnv/mannheim.pdf
- rnv/heidelberg.pdf
- rnv/disc-five.pdf
- vag_freiburg/freiburg.pdf
@@ -25,10 +27,12 @@ build-svg:
image: registry.gitlab.com/containers.ada/pdf2svg
script:
- "pdf2svg rnv/heidelberg.pdf rnv/heidelberg.svg"
+ - "pdf2svg rnv/mannheim.pdf rnv/mannheim.svg"
- "pdf2svg rnv/disc-five.pdf rnv/disc-five.svg"
- "pdf2svg vag_freiburg/freiburg.pdf vag_freiburg/freiburg.svg"
artifacts:
paths:
+ - rnv/mannheim.svg
- rnv/heidelberg.svg
- rnv/disc-five.svg
- vag_freiburg/freiburg.svg
diff --git a/rnv/mannheim.tex b/rnv/mannheim.tex
new file mode 100644
index 0000000..eb3cbf8
--- /dev/null
+++ b/rnv/mannheim.tex
@@ -0,0 +1,856 @@
+\documentclass[tikz]{standalone}
+
+\usepackage{tikz}
+\usepackage{fontspec}
+\usepackage{contour}
+
+\setmainfont{Atkinson Hyperlegible}
+\usetikzlibrary{shapes.geometric}
+\usetikzlibrary{calc}
+\usetikzlibrary{positioning}
+\usetikzlibrary{arrows.meta}
+
+\definecolor{one}{RGB}{243,155,154}
+\definecolor{two}{RGB}{176,0,68}
+\definecolor{three}{RGB}{213,173,0}
+\definecolor{four}{RGB}{227,0,11}
+\definecolor{five}{RGB}{0,150,94}
+\definecolor{six}{RGB}{149,107,37}
+\definecolor{seven}{RGB}{255,204,0}
+\definecolor{fifteen}{RGB}{247,171,99}
+\definecolor{sixteen}{RGB}{94,107,175}
+\definecolor{twentyone}{RGB}{227,0,11}
+\definecolor{twentytwo}{RGB}{253,195,0}
+\definecolor{twentythree}{RGB}{228,142,0}
+\definecolor{twentyfour}{RGB}{140,29,117}
+\definecolor{twentysix}{RGB}{243,155,154}
+
+\input{../shapes.tex}
+
+\pgfdeclarelayer{bg}
+\pgfdeclarelayer{lines}
+\pgfdeclarelayer{stops}
+\pgfdeclarelayer{labels}
+\pgfdeclarelayer{legend}
+\pgfsetlayers{bg,lines,stops,labels,main,legend}
+
+\contourlength{.2ex}
+
+\begin{document}
+
+\begin{tikzpicture}[
+ river/.style = {
+ line width=0.5cm,
+ cyan!50,
+ rounded corners=0.5cm,
+ -{Triangle Cap},
+ },
+ railway line/.style = {
+ color=gray,
+ line width=0.075cm,
+ rounded corners=0.5cm,
+ },
+ railway/.style = {
+ railway line,
+ {Latex[length=5mm]}-{Latex[length=5mm]},
+ },
+ stop/.style = {
+ rounded corners=0.1cm,
+ line width=0.05cm,
+ fill=white,
+ draw,
+ shape=stop,
+ anchor=center,
+ minimum height=0.2cm,
+ },
+ stop1/.style = {
+ stop,
+ minimum width=0.2cm,
+ },
+ stop2/.style = {
+ stop,
+ minimum width=0.4cm,
+ },
+ stop3/.style = {
+ stop,
+ minimum width=0.6cm,
+ },
+ stop4/.style = {
+ stop,
+ minimum width=0.8cm,
+ },
+ stop5/.style = {
+ stop,
+ minimum width=1.0cm,
+ },
+ stop6/.style = {
+ stop,
+ minimum width=1.2cm,
+ },
+ stop7/.style = {
+ stop,
+ minimum width=1.4cm,
+ },
+ line/.style = {
+ line width=0.15cm,
+ rounded corners=0.1cm,
+ },
+ maybe line/.style = {
+ line,
+ line width=0.1cm,
+ },
+ label/.style = {
+ font=\scriptsize,
+ },
+ line name/.style = {
+ label,
+ color=white,
+ minimum width=1em,
+ minimum height=1em,
+ inner sep=0pt,
+ },
+ ]
+
+ \begin{pgfonlayer}{bg}
+ \draw[help lines, color=gray!10] (-10, -15) grid[step=0.1] (10, 10);
+ \draw[help lines, color=gray!50] (-10, -15) grid (10, 10);
+ \draw[river]
+ (12,-2)
+ -- (10,0)
+ -- (7.8,0)
+ -- (2.8,5)
+ -- (-4,5);
+ \end{pgfonlayer}
+
+ \begin{pgfonlayer}{stops}
+ % Quadrate
+ \node[stop5, rotate=-45] (ParadeplatzW) at ($(45:-0.55)+(135:-0.5)$) {};
+ \node[stop4, rotate=45] (ParadeplatzE) at (135:-1.15) {};
+ \node[stop4, rotate=45] (Wasserturm) at (135:-4) {};
+ \node[stop4, rotate=45] (Strohmarkt) at (135:-2) {};
+ \node[stop4, rotate=45] (Rathaus) at (135:2) {};
+ \node[stop4, rotate=45] (Rheinstr) at (135:3.8) {};
+ \node[stop6, rotate=-45] (Marktplatz) at ($(45:2)+(135:-0.4)$) {};
+ \node[stop6, rotate=-45] (Abendakademie) at ($(45:3.8)+(135:-0.4)$) {};
+ \node[stop5, rotate=-45] (Schloss) at ($(45:-3)+(135:-0.5)$) {};
+ \node[stop5, rotate=45] (Universität) at ($(45:-4)+(135:-0.9)$) {};
+ \node[stop3, rotate=90] (Nationaltheater) at (0:5) {};
+ \node[stop2, rotate=-25] (Rosengarten) at (-25:4.5) {};
+ \node[stop3, rotate=60] (Kurpfalzbrücke) at (60:4.3) {};
+ \node[stop3, rotate=90] (MVV Hochhaus) at (90:4.3) {};
+ \node[stop3, rotate=120] (Dalbergstr) at (120:4.3) {};
+ \node[stop4, rotate=-45] (Kunsthalle) at ($(135:-4.7)-(45:1)$) {};
+ \node[stop7, rotate=-45, below left=1.8cm of Kunsthalle.one half, anchor=one half] (Hauptbahnhof) {};
+ \node[stop3, rotate=45] (Tattersall) at ($(Hauptbahnhof.center)!0.5!(Kunsthalle.center)+(135:-1.1)$) {};
+ \node[stop3, rotate=-45] (Theresienkrankenhaus) at ($(Nationaltheater)+(0:0.8)+(45:1)$) {};
+ \node[stop1] (Collini-Center) at ($(Abendakademie.three quarter)+(45:1)+(135:-1)$) {};
+ \node[stop1] (Lessingstr) at ($(Collini-Center)+(135:-3.0)$) {};
+ \node[stop1] (Gewerkschaftshaus) at (20:4.6) {};
+ %
+ \node[stop1] (Fernmeldeturm) at ($(Lessingstr)+(135:-0.5)$) {};
+ \node[stop1] (Holbeinstr) at ($(Fernmeldeturm)+(135:-0.4)+(0:0.4)$) {};
+ \node[stop2, rotate=90, anchor=two half] (Neuostheim) at ($(Holbeinstr)+(0:0.5)$) {};
+ \node[stop1] (Duale Hochschule) at ($(Neuostheim.two half)+(0:0.5)$) {};
+ \node[stop1] (Pforzheimer Str) at ($(Duale Hochschule)+(0:0.5)$) {};
+ \node[stop1] (Deutscher Hof) at ($(Pforzheimer Str)+(0:0.5)$) {};
+ % Neckarstadt
+ \node[stop5, rotate=-45] (Alte Feuerwache) at ($(45:6)+(135:-0.1)$) {};
+ \node[stop2, rotate=45] (Schafweide) at ($(Alte Feuerwache)+(45:0.6)+(135:-1.8)$) {};
+ \node[stop5, rotate=-45] (Universitätsklinikum) at ($(Schafweide)+(135:-2)+(45:0.4)$) {};
+ \node[stop3, rotate=-45, anchor=two half] (Lange Röttgerstr) at ($(Universitätsklinikum.center)+(45:0.8)$) {};
+ \node[stop3, rotate=-45] (Bonifatiuskirche) at ($(Lange Röttgerstr)+(45:0.5)$) {};
+ \node[stop2, rotate=-45, anchor=two half] (Exorzierplatz) at ($(Bonifatiuskirche.two half)+(45:0.5)$) {};
+ \node[stop2, rotate=45] (Bibienastr) at ($(Universitätsklinikum.three quarter)+(45:0.4)+(135:-1.0)$) {};
+ \node[stop2, rotate=90] (Hauptfriedhof) at ($(Bibienastr)-(135:1.0)+(0:0.4)$) {};
+ \node[stop2, rotate=90] (Pfeifferswörth) at ($(Hauptfriedhof)+(0:0.5)$) {};
+ \node[stop2, rotate=90] (Neckarplatt) at ($(Pfeifferswörth)+(0:0.5)$) {};
+ \node[stop1] (Am Aubuckel) at ($(Neckarplatt)+(0:0.3)+(135:-0.6)$) {};
+ \node[stop1] (Liebfrauenstr) at ($(Am Aubuckel)-(135:0.5)$){};
+ \node[stop1] (Blücherstr) at ($(Liebfrauenstr)-(135:0.5)$){};
+ \node[stop1] (Feudenheim Kirche) at ($(Blücherstr)-(135:0.5)$){};
+ \node[stop1] (Neckarstr) at ($(Feudenheim Kirche)-(135:0.5)$){};
+ \node[stop1] (Feudenheim) at ($(Neckarstr)-(135:0.5)$){};
+ \node[stop2] (Carl-Benz-Str) at ($(Alte Feuerwache.center)+(45:0.5)+(90:1.4)$) {};
+ \node[stop2, above=0.3cm of Carl-Benz-Str] (Neuer Messplatz) {};
+ \node[stop2, above=0.3cm of Neuer Messplatz] (Herzogenriedstr) {};
+ \node[stop1] (Neumarkt) at ($(Alte Feuerwache.one half)+(45:0.5)+(90:0.7)+(180:1.8)$) {};
+ \node[stop1, left=0.3cm of Neumarkt] (Bgm-Fuchs-Str) {};
+ \node[stop1, left=0.3cm of Bgm-Fuchs-Str] (Neckarstadt West) {};
+ % Luzenberg
+ \node[stop2, above=0.3cm of Herzogenriedstr] (Untermühlaustr) {};
+ \node[stop2, above=0.3cm of Untermühlaustr] (Luzenberg) {};
+ \node[stop1] (Stolberger Str) at ($(Luzenberg.one half)+(90:0.3)+(135:0.3)$) {};
+ \node[stop1] (Altrheinstr) at ($(Stolberger Str)+(135:0.5)$) {};
+ \node[stop1] (Roche) at ($(Altrheinstr)+(135:0.5)$) {};
+ \node[stop1] (Zellstofffabrik) at ($(Roche)+(135:0.5)$) {};
+ \node[stop1] (Papyrus) at ($(Zellstofffabrik)+(135:0.5)$) {};
+ \node[stop1] (Bürstädter Str) at ($(Papyrus)+(135:0.5)$) {};
+ \node[stop1] (Hanfstr) at ($(Bürstädter Str)+(135:0.5)$) {};
+ \node[stop1] (Sandhofen) at ($(Hanfstr)+(135:0.5)$) {};
+ % Waldhof
+ \node[stop1, above=0.4cm of Luzenberg.two half] (Waldhof Bf) {};
+ \node[stop1, above=0.3cm of Waldhof Bf] (Waldhof Nord) {};
+ % Schönau
+ \node[stop1, above=0.3cm of Waldhof Nord] (Schönau Siedlung) {};
+ \node[stop1, above=0.3cm of Schönau Siedlung] (Schönauschule) {};
+ \node[stop1, above=0.3cm of Schönauschule] (Schönau) {};
+ % Käfertal
+ \node[stop2, rotate=-45] (Boveristr) at ($(Exorzierplatz)+(45:0.5)$) {};
+ \node[stop2, rotate=-45] (Käfertal Süd) at ($(Boveristr)+(45:0.5)$) {};
+ \node[stop2, rotate=-45] (Mannheimer Str) at ($(Käfertal Süd)+(45:0.5)$) {};
+ \node[stop2, rotate=-45] (Käfertal Bf) at ($(Mannheimer Str)+(45:0.5)$) {};
+ \node[stop2, rotate=-45] (Bensheimer Str) at ($(Käfertal Bf)+(45:1.2)$) {};
+ \node[stop1, rotate=-45] (Platz der Freundschaft) at ($(Bensheimer Str.two half)+(45:0.5)$) {};
+ \node[stop1] (Hochuferstr) at ($(Bonifatiuskirche.one half)+(45:0.2)+(90:0.3)$) {};
+ \node[stop1, above=0.3cm of Hochuferstr] (Landwehrsteg) {};
+ \node[stop1, above=0.3cm of Landwehrsteg] (Ulmenweg) {};
+ \node[stop1, above=0.3cm of Ulmenweg] (Jugendverkehrsschule) {};
+ \node[stop1, above=0.3cm of Jugendverkehrsschule] (Hessische Str) {};
+ \node[stop1, above=0.3cm of Hessische Str] (Speckweg) {};
+ \node[stop1, above=0.3cm of Speckweg] (Herrmann-Gutzmann-Schule) {};
+ \node[stop1, above=0.6cm of Herrmann-Gutzmann-Schule] (Erlöserkirche) {};
+ \node[stop1, above=0.3cm of Erlöserkirche] (Waldstr) {};
+ \node[stop1, right=0.6cm of Waldstr] (Carl-Benz-Bad) {};
+ \node[stop1, above=0.3cm of Waldstr] (Freilichtbühne) {};
+ \node[stop1, above=0.3cm of Freilichtbühne] (Waldfriedhof) {};
+ \node[stop1, right=0.6cm of Waldfriedhof] (Käfertaler Wald) {};
+ \node[stop2, rotate=45] (Im Rott) at ($(Käfertal Bf.two half)!0.65!(Bensheimer Str.two half)+(135:-1.7)$){};
+ % Vogelstang
+ \node[stop2, rotate=45] (Vogelstang West) at ($(Im Rott)-(135:1.7)$){};
+ \node[stop1] (Potsdamer Weg) at ($(Vogelstang West)+(45:0.7)$){};
+ \node[stop1] (Vogelstang Zentrum) at ($(Potsdamer Weg)+(45:0.5)$){};
+ \node[stop1] (Vogelstang) at ($(Vogelstang Zentrum)+(45:0.5)$){};
+ \node[stop1] (Kiesäcker) at ($(Vogelstang West)-(45:0.5)$) {};
+ \node[stop1] (Hölderlinstr) at ($(Kiesäcker)-(45:0.5)$) {};
+ \node[stop1] (Talstr) at ($(Hölderlinstr)-(45:0.5)$) {};
+ \node[stop1] (Adolf-Damaschke-Ring) at ($(Talstr)-(45:0.5)$) {};
+ \node[stop1] (Ziethenstr) at ($(Adolf-Damaschke-Ring)-(45:0.5)$) {};
+ % Wallstadt
+ \node[stop2, rotate=90, anchor=one half] (Wallstadt West) at ($(Vogelstang West.one half)-(135:0.4)+(0:0.4)$) {};
+ \node[stop2, rotate=90] (Wallstadt Bf) at ($(Wallstadt West)+(0:0.5)$) {};
+ \node[stop2, rotate=90] (Wallstadt Ost) at ($(Wallstadt Bf)+(0:0.5)$) {};
+ \node[stop1] (Heddesheim Bf) at ($(Wallstadt Ost.one half)+(0:0.5)$) {};
+ % Franklin
+ \node[stop1] (Franklinschule) at ($(Bensheimer Str.one half)+(45:0.2)+(90:0.5)$) {};
+ \node[stop1, above=0.3cm of Franklinschule] (Franklin Mitte) {};
+ \node[stop1, above=0.3cm of Franklin Mitte] (Sullivan) {};
+ % Viernheim
+ \node[stop1, rotate=-45] (Tivoli) at ($(Platz der Freundschaft)+(45:0.5)$) {};
+ \node[stop1, rotate=-45] (Kapellenberg) at ($(Tivoli)+(45:0.5)$) {};
+ % Oststadt
+ \node[stop2, rotate=90, anchor=two half] (Werderstr) at ($(Tattersall.two half)+(135:-0.4)+(0:0.7)$){};
+ \node[stop2, rotate=90, right=0.5cm of Werderstr.center, anchor=center] (Pestallozischule) {};
+ \node[stop2, rotate=90, right=0.5cm of Pestallozischule.center, anchor=center] (Weberstr) {};
+ \node[stop2, rotate=90, right=0.5cm of Weberstr.center, anchor=center] (Planetarium) {};
+ \node[stop2, rotate=-45] (Luisenpark Technoseum) at ($(Planetarium)+(0:0.4)+(45:0.4)$){};
+ \node[stop2, rotate=-45] (Carl-Benz-Stadion) at ($(Luisenpark Technoseum)+(45:0.5)$){};
+ \node[stop2, rotate=-45] (Harrlach) at ($(Carl-Benz-Stadion)+(45:0.5)$){};
+ \node[stop2, rotate=-45] (Lucas-Cranach-Str) at ($(Harrlach)+(45:0.5)$){};
+ \node[stop2, rotate=-45] (Schwindstr) at ($(Lucas-Cranach-Str)+(45:0.5)$){};
+ \node[stop1] (Technoseum Süd) at ($(Planetarium.two half)+(0:0.4)-(135:0.4)$){};
+ \node[stop1] (Fahrlach) at ($(Technoseum Süd)-(135:0.5)$){};
+ \node[stop1] (Husarenweg) at ($(Fahrlach)-(135:0.5)$){};
+ \node[stop1] (Ulanenweg) at ($(Husarenweg)-(135:0.5)$){};
+ \node[stop1] (Gerd-Dehof-Platz) at ($(Ulanenweg)-(135:0.5)$){};
+ \node[stop1] (SAP Arena Süd) at ($(Gerd-Dehof-Platz)-(135:0.5)$){};
+ % Schwetzingerstadt
+ \node[stop1] (Kopernikusstr) at ($(Tattersall.one half)+(135:-0.4)+(90:-0.7)$) {};
+ \node[stop2, below=0.4cm of Kopernikusstr, anchor=one half] (Krappmühlstr) {};
+ \node[stop2, below=0.3cm of Krappmühlstr] (Hochschule) {};
+ % Neckarau
+ \node[stop1, below=0.4cm of Hochschule.one half] (Lettestr) {};
+ \node[stop1, below=0.3cm of Lettestr] (Voltastr) {};
+ \node[stop1, below=0.3cm of Voltastr] (Neckarau Bf) {};
+ \node[stop2, below=0.4cm of Neckarau Bf, anchor=one half] (Friedrichstr) {};
+ \node[stop1, below=0.4cm of Friedrichstr.one half] (Isarweg) {};
+ % Lindenhof
+ \node[stop1] (Hauptbahnhof Süd) at ($(Hauptbahnhof.two quarter)-(45:2)-(0,1)$) {};
+ \node[stop1, below=0.3cm of Hauptbahnhof Süd] (Windeckstr) {};
+ \node[stop1, below=0.3cm of Windeckstr] (Diesterwegschule) {};
+ \node[stop1, below=0.3cm of Diesterwegschule] (Meeräckerplatz) {};
+ \node[stop1, below=0.3cm of Meeräckerplatz] (Markuskirche) {};
+ \node[stop1, below=0.3cm of Markuskirche] (Franz-Sigel-Str) {};
+ \node[stop1, below=0.3cm of Franz-Sigel-Str] (Freiheitsplatz) {};
+ \node[stop1, below=0.3cm of Freiheitsplatz] (Neckarau West) {};
+ \node[stop1, below=0.3cm of Neckarau West] (Tannhäuser Ring) {};
+ \node[stop1, below=0.3cm of Tannhäuser Ring] (Stollenwörth) {};
+ \node[stop1, below=0.3cm of Stollenwörth] (Rheingoldhalle) {};
+ % Ludwigshafen
+ \node[stop5, rotate=-45] (Berliner Platz) at ($(45:-6)-(135:0.3)$) {};
+ \end{pgfonlayer}
+
+ \begin{pgfonlayer}{lines}
+ \pgfmathparse{0.1*tan(45/2)}
+ \let\offset\pgfmathresult
+
+ \draw[line, one]
+ (Schönau)
+ -- (Schönauschule)
+ -- (Schönau Siedlung)
+ -- (Waldhof Nord)
+ -- (Waldhof Bf)
+ -- (Luzenberg.two half)
+ -- (Untermühlaustr.two half)
+ -- (Herzogenriedstr.two half)
+ -- (Neuer Messplatz.two half)
+ -- (Carl-Benz-Str.two half)
+ {[rounded corners=0.25cm]
+ -- ($(Alte Feuerwache.three quarter)+(45:0.5-\offset)$)
+ }
+ -- (Alte Feuerwache.three quarter)
+ -- (Abendakademie.three sixth)
+ -- (Marktplatz.three sixth)
+ -- (ParadeplatzW.two quarter)
+ -- (Schloss.two quarter)
+ {[rounded corners=0.5cm]
+ -- ($(Universität.center)+(135:0.6)$)
+ }
+ -- (Universität.center)
+ -- ($(Hauptbahnhof.two half)+(45:-1.2)$)
+ -- (Hauptbahnhof.two half)
+ {[rounded corners=0.2cm]
+ -- ($(Tattersall.one half)+(135:0.35)$)
+ }
+ -- (Tattersall.one half)
+ -- ($(Tattersall.one half)+(135:-0.4)$)
+ -- (Kopernikusstr)
+ -- (Krappmühlstr.one half)
+ -- (Hochschule.one half)
+ -- (Lettestr)
+ -- (Voltastr)
+ -- (Neckarau Bf)
+ -- (Friedrichstr.one half)
+ -- (Isarweg)
+ ;
+
+ \draw[maybe line, one]
+ (Alte Feuerwache.three quarter)
+ -- ($(45:4.1)-(135:0.3)$)
+ arc[start angle=41, end angle=60, radius=4.1]
+ -- (Kurpfalzbrücke.one half)
+ arc[start angle=60, end angle=90, radius=4.1]
+ -- (MVV Hochhaus.one half)
+ arc[start angle=90, end angle=120, radius=4.1]
+ -- (Dalbergstr.one half)
+ arc[start angle=120, end angle=130, radius=4.1]
+ -- (Rheinstr.two half)
+ -- (Rathaus.two half)
+ {[rounded corners=0.4cm]
+ -- ($(ParadeplatzW.two quarter)+(45:0.85)$)
+ }
+ -- (ParadeplatzW.two quarter)
+ ;
+
+
+ \draw[line, two]
+ (Neckarstadt West)
+ -- (Bgm-Fuchs-Str)
+ -- (Neumarkt)
+ {[rounded corners=0.3cm]
+ -- ($(Alte Feuerwache.one half)+(45:0.5-\offset)+(90:0.7)$)
+ }
+ -- ($(Alte Feuerwache.one half)+(45:0.5)$)
+ -- (Alte Feuerwache.one half)
+ -- ($(45:4.5)+(135:0.3)$)
+ arc[start angle=49, end angle=60, radius=4.5]
+ -- (Kurpfalzbrücke.two half)
+ arc[start angle=60, end angle=90, radius=4.5]
+ -- (MVV Hochhaus.two half)
+ arc[start angle=90, end angle=120, radius=4.5]
+ -- (Dalbergstr.two half)
+ arc[start angle=120, end angle=136, radius=4.5]
+ -- (Rheinstr.two quarter)
+ -- (Strohmarkt.two quarter)
+ -- (Wasserturm.two quarter)
+ -- ($(135:-4.6)-(45:0.1)$)
+ {[rounded corners=0.01cm]
+ -- ($(135:-4.6)-(45:0.0)$)
+ }
+ arc[start angle=-45, end angle=-2.5, radius=4.6]
+ -- (Nationaltheater.one half)
+ {[rounded corners=0.3cm]
+ -- ($(Nationaltheater.one half)+(0:0.8+2*\offset)$)
+ }
+ -- (Theresienkrankenhaus.two half)
+ -- (Universitätsklinikum.two half)
+ -- ($(Universitätsklinikum.two half)+(45:0.3)$)
+ -- (Bibienastr.one half)
+ {[rounded corners=0.15cm]
+ -- ($(Bibienastr.one half)-(135:1.0+\offset)$)
+ }
+ -- (Hauptfriedhof.one half)
+ -- (Pfeifferswörth.one half)
+ -- (Neckarplatt.one half)
+ -- ($(Neckarplatt.one half)+(0:0.4)$)
+ -- (Am Aubuckel)
+ -- (Liebfrauenstr)
+ -- (Blücherstr)
+ -- (Feudenheim Kirche)
+ -- (Neckarstr)
+ -- (Feudenheim)
+ ;
+
+ \draw[line, three]
+ (Sandhofen)
+ -- (Hanfstr)
+ -- (Bürstädter Str)
+ -- (Papyrus)
+ -- (Zellstofffabrik)
+ -- (Roche)
+ -- (Altrheinstr)
+ -- (Stolberger Str)
+ -- ($(Luzenberg.one half)+(90:0.3)$)
+ -- (Luzenberg.one half)
+ -- (Untermühlaustr.one half)
+ -- (Herzogenriedstr.one half)
+ -- (Neuer Messplatz.one half)
+ -- (Carl-Benz-Str.one half)
+ {[rounded corners=0.15cm]
+ -- ($(Alte Feuerwache.two quarter)+(45:0.5+1.5*\offset)$)
+ }
+ -- (Alte Feuerwache.two quarter)
+ -- (Abendakademie.one half)
+ -- (Marktplatz.one half)
+ {[rounded corners=0.3cm]
+ -- ($(45:0.1)+(135:0.1)$)
+ }
+ -- (ParadeplatzE.three quarter)
+ -- (Strohmarkt.three quarter)
+ -- (Wasserturm.three quarter)
+ -- ($(Wasserturm.three quarter)+(135:-0.6)$)
+ -- (Kunsthalle.two quarter)
+ -- (Hauptbahnhof.two quarter)
+ -- ($(Hauptbahnhof.two quarter)+(45:-2)$)
+ -- (Hauptbahnhof Süd)
+ -- (Windeckstr)
+ -- (Diesterwegschule)
+ -- (Meeräckerplatz)
+ -- (Markuskirche)
+ -- (Franz-Sigel-Str)
+ -- (Freiheitsplatz)
+ -- (Neckarau West)
+ -- (Tannhäuser Ring)
+ -- (Stollenwörth)
+ -- (Rheingoldhalle)
+ ;
+
+ \draw[maybe line, three]
+ (Alte Feuerwache.two quarter)
+ ($(45:4.3)+(135:0.1)$)
+ arc[start angle=47, end angle=60, radius=4.3]
+ -- (Kurpfalzbrücke.center)
+ arc[start angle=60, end angle=90, radius=4.3]
+ -- (MVV Hochhaus.center)
+ arc[start angle=90, end angle=120, radius=4.3]
+ -- (Dalbergstr.center)
+ arc[start angle=120, end angle=133.5, radius=4.3]
+ -- (Rheinstr.three quarter)
+ -- (Rathaus.three quarter)
+ -- (ParadeplatzE.three quarter)
+ ;
+
+ \draw[line, four]
+ (Herrmann-Gutzmann-Schule)
+ {[rounded corners=0.2cm]
+ -- ($(Erlöserkirche)!0.5!(Herrmann-Gutzmann-Schule)$)
+ -| (Carl-Benz-Bad)
+ }
+ -- (Käfertaler Wald)
+ (Waldfriedhof)
+ -- (Freilichtbühne)
+ -- (Waldstr)
+ -- (Erlöserkirche)
+ -- (Herrmann-Gutzmann-Schule)
+ -- (Speckweg)
+ -- (Hessische Str)
+ -- (Jugendverkehrsschule)
+ -- (Ulmenweg)
+ -- (Landwehrsteg)
+ -- (Hochuferstr)
+ -- ($(Bonifatiuskirche.one half)+(45:0.2)$)
+ -- (Bonifatiuskirche.one half)
+ -- (Lange Röttgerstr.one half)
+ -- (Universitätsklinikum.one half)
+ -- ($(Universitätsklinikum.one half)-(45:0.3)$)
+ -- (Schafweide.two half)
+ {[rounded corners=0.4cm]
+ -- ($(Alte Feuerwache.center)+(45:0.7)$)
+ }
+ -- (Alte Feuerwache.center)
+ -- (Abendakademie.two quarter)
+ -- (Marktplatz.two quarter)
+ -- ($(45:0.3)+(135:-0.1)$)
+ -- (ParadeplatzE.two half)
+ -- (Strohmarkt.two half)
+ -- (Wasserturm.two half)
+ -- ($(Wasserturm.two half)-(135:0.8)$)
+ -- (Kunsthalle.three quarter)
+ -- ($(Hauptbahnhof.three sixth)+(45:0.4)$)
+ -- ($(Hauptbahnhof.center)+(45:0.2)$)
+ -- (Hauptbahnhof.center)
+ -- ($(Hauptbahnhof.center)+(45:-1.6)$)
+ -- (Universität.one half)
+ {[rounded corners=0.4cm]
+ -- ($(Universität.one half)+(135:0.8)$)
+ }
+ -- (Berliner Platz.two quarter)
+ ;
+
+ \draw[line, five]
+ (Deutscher Hof)
+ -- (Pforzheimer Str)
+ -- (Duale Hochschule)
+ -- (Neuostheim.two half)
+ -- (Holbeinstr)
+ -- ($(Fernmeldeturm)+(135:-0.4)$)
+ -- (Fernmeldeturm)
+ -- (Lessingstr)
+ -- (Collini-Center)
+ -- ($(Abendakademie.three quarter)+(45:1)$)
+ -- (Abendakademie.three quarter)
+ -- (Marktplatz.three quarter)
+ -- (ParadeplatzW.three quarter)
+ -- (Schloss.three quarter)
+ {[rounded corners=0.1cm]
+ -- ($(Universität.two half)+(135:0.2)$)
+ }
+ -- (Universität.two half)
+ -- ($(Hauptbahnhof.one half)-(45:0.8)$)
+ -- (Hauptbahnhof.one half)
+ -- (Kunsthalle.one half)
+ -- (135:-4.4)
+ arc[start angle=-45, end angle=2.5, radius=4.4]
+ -- (Nationaltheater.two half)
+ -- ($(Nationaltheater.two half)+(0:0.8-2*\offset)$)
+ -- (Theresienkrankenhaus.one half)
+ -- (Universitätsklinikum.center)
+ -- (Lange Röttgerstr.two half)
+ -- (Bonifatiuskirche.two half)
+ -- (Exorzierplatz.two half)
+ -- (Boveristr.two half)
+ -- (Käfertal Süd.two half)
+ -- (Mannheimer Str.two half)
+ -- (Käfertal Bf.two half)
+ -- (Bensheimer Str.two half)
+ -- (Platz der Freundschaft)
+ -- (Tivoli)
+ -- (Kapellenberg)
+ (Käfertal Bf.two half)
+ {[rounded corners=0.3cm]
+ -- ($(Käfertal Bf.two half)!0.65!(Bensheimer Str.two half)-(45:0.1)$)
+ }
+ -- (Im Rott.one half)
+ -- (Vogelstang West.one half)
+ {[rounded corners=0.15cm]
+ -- ($(Vogelstang West.one half)-(135:0.4)$)
+ }
+ -- (Wallstadt West.one half)
+ -- (Wallstadt Bf.one half)
+ -- (Wallstadt Ost.one half)
+ -- (Heddesheim Bf)
+ ;
+
+ \draw[line, six]
+ (Rheinstr.one half)
+ -- (Rathaus.one half)
+ -- (ParadeplatzE.one half)
+ -- (Strohmarkt.one half)
+ -- (Wasserturm.one half)
+ -- ($(Wasserturm.one half)+(135:-1.0)$)
+ -- (Kunsthalle.two half)
+ {[rounded corners=0.3cm]
+ -- ($(Tattersall.two half)-(135:-0.95)$)
+ }
+ -- (Tattersall.two half)
+ (Rathaus.one half)
+ {[rounded corners=0.2cm]
+ -- ($(45:-0.3)+(135:0.3)$)
+ }
+ -- (ParadeplatzW.one half)
+ -- (Schloss.one half)
+ {[rounded corners=0.7cm]
+ -- ($(Universität.two quarter)+(135:0.8)$)
+ }
+ -- (Universität.two quarter)
+ -- ($(Hauptbahnhof.four sixth)-(45:1.4)$)
+ -- (Hauptbahnhof.four sixth)
+ -- ($(Hauptbahnhof.four sixth)+(45:0.25)$)
+ -- ($(Hauptbahnhof.center)+(45:0.5)$)
+ {[rounded corners=0.3cm]
+ -- ($(Tattersall.two half)-(135:-0.95)$)
+ }
+ -- (Tattersall.two half)
+ -- ($(Tattersall.two half)+(135:-0.4)$)
+ -- (Werderstr.two half)
+ -- (Pestallozischule.two half)
+ -- (Weberstr.two half)
+ -- (Planetarium.two half)
+ -- ($(Planetarium.two half)+(0:0.4-\offset)$)
+ -- (Luisenpark Technoseum.one half)
+ -- (Carl-Benz-Stadion.one half)
+ -- (Harrlach.one half)
+ -- (Lucas-Cranach-Str.one half)
+ -- (Schwindstr.one half)
+ -- (Neuostheim.one half)
+ (Planetarium.two half)
+ -- ($(Planetarium.two half)+(0:0.4)$)
+ -- (Technoseum Süd)
+ -- (Fahrlach)
+ -- (Husarenweg)
+ -- (Ulanenweg)
+ -- (Gerd-Dehof-Platz)
+ -- (SAP Arena Süd)
+ ;
+
+ \draw[line, seven]
+ (Vogelstang)
+ -- (Vogelstang Zentrum)
+ -- (Potsdamer Weg)
+ -- (Vogelstang West)
+ -- (Kiesäcker)
+ -- (Hölderlinstr)
+ -- (Talstr)
+ -- (Adolf-Damaschke-Ring)
+ -- (Ziethenstr)
+ -- ($(Neckarplatt.two half)+(0:0.4)$)
+ -- (Neckarplatt.two half)
+ -- (Pfeifferswörth.two half)
+ -- (Hauptfriedhof.two half)
+ -- ($(Bibienastr.two half)-(135:1.0-\offset)$)
+ -- (Bibienastr.two half)
+ {[rounded corners=0.3cm]
+ -- ($(Universitätsklinikum.three quarter)+(45:0.5)$)
+ }
+ -- (Universitätsklinikum.three quarter)
+ -- (Theresienkrankenhaus)
+ {[rounded corners=0.2cm]
+ -- ($(Nationaltheater)+(0:0.8)$)
+ }
+ -- (Nationaltheater)
+ -- ($(Nationaltheater.center)-(0:0.4)$)
+ arc[start angle=0, end angle=35, radius=4.4]
+ -- ($(Abendakademie.two half)+(45:0.3)$)
+ -- (Abendakademie.two half)
+ -- (Marktplatz.two half)
+ -- (ParadeplatzW.two half)
+ -- (Schloss.two half)
+ -- (Universität.center)
+ -- (Universität.west)
+ {[rounded corners=0.2cm]
+ -- ($(Universität.west)+(45:-0.3)$)
+ -- ($(Berliner Platz.one half)+(45:0.4)$)
+ }
+ -- (Berliner Platz.one half)
+ ;
+
+ % \draw[line, eight]
+ % (Berliner Platz)
+ % -- (Hauptbahnhof)
+ % ;
+
+ \draw[line, fifteen]
+ (Käfertal Bf.one half)
+ -- (Mannheimer Str.one half)
+ -- (Käfertal Süd.one half)
+ -- (Boveristr.one half)
+ -- (Exorzierplatz.one half)
+ -- (Bonifatiuskirche.center)
+ -- (Lange Röttgerstr.center)
+ -- (Universitätsklinikum.two quarter)
+ {[rounded corners=0.3cm]
+ -- ($(Universitätsklinikum.two quarter)-(45:0.5)$)
+ }
+ -- (Schafweide.one half)
+ {[rounded corners=0.2cm]
+ -- ($(Alte Feuerwache.two half)+(45:0.5)$)
+ }
+ -- (Alte Feuerwache.two half)
+ -- (Abendakademie.four sixth)
+ -- (Marktplatz.four sixth)
+ -- (ParadeplatzW.center)
+ -- (Schloss.center)
+ {[rounded corners=0.3cm]
+ -- ($(Universität.three quarter)+(135:0.4)$)
+ }
+ -- (Universität.three quarter)
+ -- ($(Hauptbahnhof.three sixth)+(45:-1.0)$)
+ -- (Hauptbahnhof.three sixth)
+ (Käfertal Bf.one half)
+ {[rounded corners=0.4cm]
+ -- ($(Käfertal Bf.one half)!0.65!(Bensheimer Str.one half)+(45:0.1)$)
+ }
+ -- (Im Rott.two half)
+ -- (Vogelstang West.two half)
+ -- ($(Vogelstang West.two half)-(135:0.4-2*\offset)$)
+ -- (Wallstadt West.two half)
+ -- (Wallstadt Bf.two half)
+ -- (Wallstadt Ost.two half)
+ ;
+
+ \draw[line, sixteen]
+ (Bensheimer Str.one half)
+ -- ($(Bensheimer Str.one half)+(45:0.2)$)
+ -- (Franklinschule)
+ -- (Franklin Mitte)
+ -- (Sullivan)
+ ;
+
+ \end{pgfonlayer}
+
+ \begin{pgfonlayer}{labels}
+ \foreach\stop/\placement/\anchor/\rotate in {
+ Duale Hochschule/below/west/-45,
+ Pforzheimer Str/below/west/-45,
+ Deutscher Hof/below/west/-45,
+ Neuostheim/below left/west/-45,
+ Strohmarkt/right/west/0,
+ Rathaus/left/east/0,
+ Rheinstr/left/east/0,
+ Marktplatz/left/east/0,
+ Abendakademie/left/east/0,
+ Schloss/left/east/0,
+ Universität/right/west/0,
+ Nationaltheater/left/north west/0,
+ Rosengarten/right/west/0,
+ Kunsthalle/left/east/0,
+ Alte Feuerwache/left/east/0,
+ MVV Hochhaus/left/north/0,
+ Im Rott/left/north/-45,
+ Vogelstang West/left/east/0,
+ Dalbergstr/right/east/0,
+ Berliner Platz/left/east/0,
+ Tattersall/right/west/45,
+ Werderstr/right/south west/45,
+ Pestallozischule/right/south west/45,
+ Weberstr/right/south west/45,
+ Planetarium/right/south west/45,
+ Luisenpark Technoseum/right/west/-45,
+ Technoseum Süd/left/east/45,
+ Fahrlach/left/east/45,
+ Husarenweg/left/east/45,
+ Ulanenweg/left/east/45,
+ Gerd-Dehof-Platz/left/east/45,
+ SAP Arena Süd/left/east/45,
+ Carl-Benz-Stadion/right/west/-45,
+ Harrlach/right/west/-45,
+ Lucas-Cranach-Str/right/west/-45,
+ Schwindstr/right/west/-45,
+ Hauptbahnhof/left/east/0,
+ Hauptbahnhof Süd/left/east/0,
+ Windeckstr/left/east/0,
+ Diesterwegschule/left/east/0,
+ Meeräckerplatz/left/east/0,
+ Markuskirche/left/east/0,
+ Franz-Sigel-Str/left/east/0,
+ Freiheitsplatz/left/east/0,
+ Neckarau West/left/east/0,
+ Lange Röttgerstr/right/west/-45,
+ Bonifatiuskirche/right/west/-45,
+ Exorzierplatz/right/west/-45,
+ Boveristr/right/west/-45,
+ Käfertal Süd/right/west/-45,
+ Mannheimer Str/right/west/-45,
+ Käfertal Bf/right/west/-45,
+ Bensheimer Str/right/west/-45,
+ Platz der Freundschaft/right/west/-45,
+ Tivoli/right/west/-45,
+ Kapellenberg/right/west/-45,
+ Wallstadt West/left/west/-45,
+ Wallstadt Bf/left/west/-45,
+ Wallstadt Ost/left/west/-45,
+ Heddesheim Bf/below/west/-45,
+ Potsdamer Weg/right/west/0,
+ Kiesäcker/right/west/-45,
+ Hölderlinstr/right/west/-45,
+ Talstr/right/west/-45,
+ Vogelstang Zentrum/right/west/0,
+ Vogelstang/right/west/0,
+ Franklinschule/left/east/0,
+ Franklin Mitte/left/east/0,
+ Sullivan/left/east/0,
+ Tannhäuser Ring/left/east/0,
+ Stollenwörth/left/east/0,
+ Rheingoldhalle/left/east/0,
+ Kurpfalzbrücke/left/east/0,
+ Kopernikusstr/left/east/0,
+ Hochschule/left/east/0,
+ Lettestr/left/east/0,
+ Voltastr/left/east/0,
+ Neckarau Bf/left/east/0,
+ Friedrichstr/left/east/0,
+ Isarweg/left/east/0,
+ Krappmühlstr/left/east/0,
+ Schafweide/left/east/0,
+ Hochuferstr/left/east/0,
+ Landwehrsteg/left/east/0,
+ Ulmenweg/left/east/0,
+ Jugendverkehrsschule/left/east/0,
+ Hessische Str/left/east/0,
+ Speckweg/left/east/0,
+ Herrmann-Gutzmann-Schule/left/east/0,
+ Erlöserkirche/left/east/0,
+ Waldstr/left/east/0,
+ Carl-Benz-Bad/right/west/0,
+ Carl-Benz-Str/left/east/0,
+ Neuer Messplatz/left/east/0,
+ Herzogenriedstr/left/east/0,
+ Untermühlaustr/left/east/0,
+ Luzenberg/left/east/0,
+ Stolberger Str/left/east/0,
+ Altrheinstr/left/east/0,
+ Roche/left/east/0,
+ Zellstofffabrik/left/east/0,
+ Papyrus/left/east/0,
+ Bürstädter Str/left/east/0,
+ Hanfstr/left/east/0,
+ Sandhofen/left/east/0,
+ Waldhof Bf/right/west/0,
+ Waldhof Nord/right/west/0,
+ Schönau Siedlung/right/west/0,
+ Schönauschule/right/west/0,
+ Schönau/right/west/0,
+ Käfertaler Wald/right/west/0,
+ Collini-Center/right/west/0,
+ Freilichtbühne/left/east/0,
+ Waldfriedhof/left/east/0,
+ Universitätsklinikum/left/east/-45,
+ Bibienastr/above left/east/45,
+ Hauptfriedhof/right/west/45,
+ Pfeifferswörth/right/west/45,
+ Neckarplatt/right/west/45,
+ Am Aubuckel/left/east/0,
+ Liebfrauenstr/left/east/0,
+ Blücherstr/left/east/0,
+ Feudenheim Kirche/left/east/0,
+ Neckarstr/left/east/0,
+ Feudenheim/left/east/0,
+ Adolf-Damaschke-Ring/right/west/-45,
+ Ziethenstr/right/west/-45,
+ Theresienkrankenhaus/right/west/0,
+ Lessingstr/right/west/0,
+ Fernmeldeturm/right/west/0,
+ Gewerkschaftshaus/left/east/45,
+ Neumarkt/above/east/-45,
+ Bgm-Fuchs-Str/above/east/-45,
+ Neckarstadt West/above/east/-45,
+ Wasserturm/left/east/0%
+ } \node[label, \placement=0.05cm of \stop, rotate=\rotate, anchor=\anchor] {\contour{white}{\stop}};
+ \node[label, right=0.1cm of ParadeplatzE, rotate=0, anchor=west] {\contour{white}{Paradeplatz}};
+ \node[label, line name, fill=one, left=0.2cm of Schönau] {\bf 1};
+ \node[label, line name, fill=two, left=0.2cm of Neckarstadt West] {\bf 2};
+ \node[label, line name, fill=two, right=0.2cm of Feudenheim] {\bf 2};
+ \node[label, line name, fill=three, above=0.2cm of Sandhofen] {\bf 3};
+ \node[label, line name, fill=three, right=0.2cm of Rheingoldhalle] {\bf 3};
+ \node[label, line name, fill=four, above=0.2cm of Waldfriedhof] {\bf 4};
+ \node[label, line name, fill=four, above=0.2cm of Käfertaler Wald] {\bf 4A};
+ \node[label, line name, fill=five, right=0.2cm of Heddesheim Bf] {\bf 5A};
+ \node[label, line name, fill=seven, above=0.2cm of Vogelstang] {\bf 7};
+ \node[label, line name, fill=fifteen, right=0.2cm of Wallstadt Ost.east, anchor=south west] {\bf 15};
+ \node[label, line name, fill=sixteen, right=0.2cm of Sullivan] {\bf 16};
+ \node[label, line name, fill=sixteen, left=0.2cm of Bensheimer Str] {\bf 16};
+ \end{pgfonlayer}
+
+\end{tikzpicture}
+
+\end{document}
+% vim: nospell conceallevel=0