diff options
author | Ada Loveless | 2024-06-30 15:51:37 +0000 |
---|---|---|
committer | Ada Loveless | 2024-06-30 15:51:37 +0000 |
commit | 6dd7a2a89cb0e163f22753a9ab91331c8f76c913 (patch) | |
tree | 942bd97e6ac159a33eb3830265ee42df4733c70f /db_regio_mitte | |
parent | 97243cb37a4a1a5a4221579685dc314186d11b8e (diff) | |
parent | e1e6029ed0c563038b5c22934eb1bae29def8e5b (diff) |
Add S-Bahn Rhein-Neckar
Merge branch 'rhein-neckar' into 'main'
See merge request ada.loveless/tex-networks!2
Diffstat (limited to 'db_regio_mitte')
-rw-r--r-- | db_regio_mitte/s-bahn-rhein-neckar.tex | 958 |
1 files changed, 958 insertions, 0 deletions
diff --git a/db_regio_mitte/s-bahn-rhein-neckar.tex b/db_regio_mitte/s-bahn-rhein-neckar.tex new file mode 100644 index 0000000..e9bcb64 --- /dev/null +++ b/db_regio_mitte/s-bahn-rhein-neckar.tex @@ -0,0 +1,958 @@ +\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}{237,28,36} +\definecolor{two}{RGB}{17,99,170} +\definecolor{three}{RGB}{255,196,62} +\definecolor{four}{RGB}{0,138,68} +\definecolor{five}{RGB}{246,138,37} +\definecolor{six}{RGB}{64,193,243} +\definecolor{seven}{RGB}{239,36,156} +\definecolor{eight}{RGB}{185,103,198} +\definecolor{nine}{RGB}{115,200,40} +\definecolor{thirty-three}{RGB}{121,54,149} +\definecolor{thirty-nine}{RGB}{191,88,16} +% \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=1cm + }, + stop6/.style = { + stop, + minimum width=1.2cm + }, + stop7/.style = { + stop, + minimum width=1.4cm + }, + stop8/.style = { + stop, + minimum width=1.6cm + }, + stop9/.style = { + stop, + minimum width=1.8cm + }, + stop10/.style = { + stop, + minimum width=2.0cm + }, + line/.style = { + line width=0.15cm, + rounded corners=0.1cm, + }, + occassional/.style = { + line width=0.075cm, + rounded corners=0.1cm, + }, + label/.style = { + font=\scriptsize, + }, + line name/.style = { + label, + color=white, + minimum width=1em, + minimum height=1em, + inner sep=0pt, + }, + ] + + % \begin{pgfonlayer}{legend} + % % \draw[railway line] (-7,-8.5) -- ++(0,0.5); + % \node[stop2] (Legend2) at (-7,-8.5) {}; + % \node[stop1, above=0.4cm of Legend2.two half] (Legend1) {}; + % \node[stop1, above=0.3cm of Legend1] (Legend0) {}; + % \draw[line] (Legend2.south two half) -- (Legend1.north center) -- (Legend0); + % \draw[line] (Legend2.south one half) -- ++(0,0.5) -- ++(-0.3,0); + % \node[stop2] (Legend2) at (-7,-8.5) {}; + % \node[stop1, above=0.4cm of Legend2.two half] (Legend1) {}; + % \node[stop1, above=0.3cm of Legend1] (Legend0) {}; + % \node[line name, fill=black, above=0.2cm of Legend0] {\bf E}; + % \node[label, left=0.05cm of Legend1] {Karlsplatz}; + % \node[label, left=0.05cm of Legend0] {Museum}; + % \node[label, left=0.05cm of Legend2] {Bahnhof}; + % + % \node[label, anchor=west] at (-6.7,-8.5) {Halt mit Umstieg}; + % \node[label, anchor=west] at (-6.7,-8.0) {Halt}; + % \node[label, anchor=west] at (-6.7,-7.5) {Endhaltestelle}; + % \end{pgfonlayer} + + \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] (11.7, 2.5) -- (7.7, 2.5) -- (3.7, -1.5) -- (-13, -1.5); + \end{pgfonlayer} + + \begin{pgfonlayer}{stops} + % Karlsruhe to Bruchsal + \node[stop3, rotate=-45] (Karlsruhe Hbf) at (0,-7) {}; + \node[stop1, above right = 1.1cm of Karlsruhe Hbf.two half] (KA-Durlach) {}; + \node[stop1, above right = 1.1cm of KA-Durlach] (Weingarten Baden) {}; + \node[stop1, above right = 1.1cm of Weingarten Baden] (Untergrombach) {}; + \node[stop1, above right = 1.1cm of Untergrombach] (Bruchsal-Bildungszentrum) {}; + \node[stop3] (Bruchsal) at ($(Bruchsal-Bildungszentrum)+(0.6,1.3)$) {}; + \node[stop2, above=1cm of Bruchsal.two half, anchor=two half] (Ubstadt-Weiher) {}; + + % Karlsruhe to Graben-Neudorf + \node[stop1] (KA-Hagsfeld) at ($(Karlsruhe Hbf)+(0.2,1)$) {}; + \node[stop1, above= 1.5cm of KA-Hagsfeld] (Blankenloch) {}; + \node[stop1, above= 1.5cm of Blankenloch] (Friedrichstal Baden) {}; + + % Bruchsal to Germersheim + \node[stop1] (Bruchsal Sportzentrum) at ($(Bruchsal.one half)+(-1.8,0.4)$) {}; + \node[stop1, left=0.5cm of Bruchsal Sportzentrum] (Bruchsal Am Mantel) {}; + \node[stop1, left=0.5cm of Bruchsal Am Mantel] (Karlsdorf) {}; + \node[stop3] (Graben-Neudorf) at ($(Karlsdorf)-(0.95,-0.4)$) {}; + \node[stop1, above=0.5cm of Graben-Neudorf.two half] (Graben-Neudorf Nord) {}; + \node[stop2, above=1.7cm of Graben-Neudorf, anchor=two half] (Wiesental) {}; + \node[stop1] (Huttenheim) at ($(Graben-Neudorf Nord)+(-1,1.3)$) {}; + \node[stop1] (Phillipsburg Baden) at ($(Huttenheim)-(2.1,-0.4)$) {}; + \node[stop1, left=1.7cm of Phillipsburg Baden] (Rheinsheim) {}; + + % Bruchsal to Heidelberg + \def\laststop{Ubstadt-Weiher} + \foreach\stop in {Stettfeld-Weiher,Bad Schönborn Süd,Bad Schönborn-Kronau,Rot-Malsch,Wiesloch-Walldorf,St Ilgen-Sandhausen,HD-Kirchheim-Rohrbach}{ + \expandafter\node[stop2, above=0.7cm of \laststop] (\stop) {}; + \xdef\laststop{\stop} + } + + % Graben-Neudorf to Schwetzingen + \node[stop2, above=0.7cm of Wiesental] (Waghäusel) {}; + \node[stop2, above=0.7cm of Waghäusel] (Neulußheim) {}; + \node[stop3, above=0.7cm of Neulußheim.two half] (Hockenheim) {}; + \node[stop3, above=0.7cm of Hockenheim] (Oftersheim) {}; + \node[stop3, above=0.7cm of Oftersheim] (Schwetzingen) {}; + + % Heidelberg to Mannheim Friedrichsfeld + \node[stop6, rotate=45, anchor=one half] (Heidelberg Hbf) at ($(HD-Kirchheim-Rohrbach)-(0.8,-1)$) {}; + \node[stop5, rotate=45, above left=0.9cm of Heidelberg Hbf.one half, anchor=one half] (HD-Pfaffengrund-Wieblingen) {}; + \node[stop4, rotate=45, above left=0.9cm of HD-Pfaffengrund-Wieblingen.one half, anchor=one half] (MA-Friedrichsfeld Süd) {}; + + % Schwetzingen to Frankfurt + \node[stop2, rotate=-45] (Neu-Edingen Friedrichsfeld) at ($(Schwetzingen)+(3.3,4.4)$) {}; + + % Heidelberg to Neckargemünd + \node[stop3, rotate=90, right=2.2cm of Heidelberg Hbf.three sixth, anchor=two half] (HD-Weststadt Südstadt) {}; + \def\laststop{HD-Weststadt Südstadt} + \foreach\stop in {HD-Altstadt,HD-Schlierbach Ziegelhausen,HD Orthopädie,Neckargemünd}{ + \expandafter\node[stop3, rotate=90, right=0.9cm of \laststop.center, anchor=center] (\stop) {}; + \xdef\laststop{\stop} + } + + % Neckargemünd to Aglasterhausen/Eppingen + \node[stop1] (Bammental) at ($(Neckargemünd)+(0.7,-1)$) {}; + \node[stop1, below=0.7cm of Bammental] (Reilsheim) {}; + \node[stop1, below=0.7cm of Reilsheim] (Mauer bei Heidelberg) {}; + \node[stop1, below=0.7cm of Mauer bei Heidelberg] (Meckesheim) {}; + \node[stop1, below=1cm of Meckesheim] (Zuzenhausen) {}; + \node[stop1, below=0.7cm of Zuzenhausen] (Hoffenheim) {}; + \node[stop1, below=0.7cm of Hoffenheim] (Sinsheim Elsenz Hbf) {}; + \node[stop1] (Eschelbronn) at ($(Meckesheim)+(0.7,-1)$) {}; + \node[stop1, below right=0.7cm of Eschelbronn] (Neidenstein) {}; + \node[stop1] (Waibstadt) at ($(Neidenstein)+(1.7,-0.5)$) {}; + \node[stop1, right=0.7cm of Waibstadt] (Neckarbischofsheim Nord) {}; + \node[stop1, right=0.7cm of Neckarbischofsheim Nord] (Helmstadt) {}; + \node[stop1, right=0.7cm of Helmstadt] (Aglasterhausen) {}; + \node[stop1] (Sinsheim Museum Arena) at ($(Sinsheim Elsenz Hbf)+(0.4,-0.7)$) {}; + \def\laststop{Sinsheim Museum Arena} + \foreach\stop in {Steinsfurt,Reihen,Ittlingen,Richen, Eppingen}{ + \expandafter\node[stop1, below right=0.7cm of \laststop] (\stop) {}; + \xdef\laststop{\stop} + } + + % Neckargemünd to Osterburken + \node[stop2, rotate=90, right=1.4cm of Neckargemünd.one half, anchor=one half] (Neckargemünd Altstadt) {}; + \node[stop2, rotate=-45] (Neckarsteinach) at ($(Neckargemünd Altstadt)+(1.4,0.7)$) {}; + \node[stop2, rotate=-45, above right=0.7cm of Neckarsteinach.one half, anchor=one half] (Neckarhausen) {}; + \node[stop2, rotate=-45, above right=0.7cm of Neckarhausen.one half, anchor=one half] (Hirschhorn) {}; + \node[stop2, rotate=-90] (Eberbach) at ($(Hirschhorn)+(1.1,0.4)$) {}; + \node[stop2, rotate=45] (Lindach) at ($(Eberbach)+(1.1,-0.4)$) {}; + \node[stop2, rotate=45, below right=0.7cm of Lindach.center, anchor=center] (Zwingenberg Baden) {}; + \node[stop2, rotate=45, below right=0.7cm of Zwingenberg Baden.center, anchor=center] (Neckargerach) {}; + \node[stop2, rotate=45, below right=0.7cm of Neckargerach.center, anchor=center] (Binau) {}; + \node[stop2, rotate=45, below right=0.7cm of Binau.center, anchor=center] (Mosbach-Neckarelz) {}; + \node[stop2, rotate=90] (Mosbach West) at ($(Mosbach-Neckarelz)+(1.1,-0.4)$) {}; + \node[stop2, rotate=90, right=0.7cm of Mosbach West.center, anchor=center] (Mosbach Baden) {}; + \node[stop1, right=0.7cm of Mosbach Baden.two half] (Neckarburken) {}; + \node[stop1] (Dallau) at ($(Neckarburken)+(1.2,0.7)$) {}; + \node[stop1, above right=0.7cm of Dallau] (Auerbach) {}; + \node[stop1, above right=0.7cm of Auerbach] (Oberschefflenz) {}; + \node[stop1, above right=0.7cm of Oberschefflenz] (Eichholzheim) {}; + \node[stop1] (Seckach) at ($(Eichholzheim)+(0.7,0.4)$) {}; + \node[stop1, right=0.7cm of Seckach] (Zimmern) {}; + \node[stop1, right=0.7cm of Zimmern] (Adelsheim Nord) {}; + \node[stop1, right=0.7cm of Adelsheim Nord] (Osterburken) {}; + + % MA-Seckenheim to Mannheim + \node[stop5, rotate=45, above left=1.4cm of MA-Friedrichsfeld Süd.one half, anchor=one half] (MA-Seckenheim) {}; + \node[stop5, rotate=45, above left=0.9cm of MA-Seckenheim.one half, anchor=one half] (MA-Arena-Maimarkt) {}; + \node[stop10, rotate=45, above left=1.4cm of MA-Arena-Maimarkt.one half, anchor=three sixth] (Mannheim Hbf) {}; + + % Schwetzingen to Mannheim + \node[stop2, above=1.4cm of Schwetzingen, anchor=two half] (Schwetzingen-Hirschacker) {}; + \node[stop2, above=0.7cm of Schwetzingen-Hirschacker] (MA-Rheinau) {}; + \node[stop2, above=0.7cm of MA-Rheinau] (MA-Neckarau) {}; + + % Neu-Edingen/Friedrichsfeld to Bensheim + \node[stop1, above right=0.7cm of Neu-Edingen Friedrichsfeld.one half] (Ladenburg) {}; + \node[stop1, above right=0.7cm of Ladenburg] (Heddesheim Hirschberg) {}; + \node[stop1, above right=0.7cm of Heddesheim Hirschberg] (Lützelsachsen) {}; + \node[stop1, above right=0.7cm of Lützelsachsen] (Weinheim Hbf) {}; + \node[stop1] (Weinheim-Sulzbach) at ($(Weinheim Hbf)+(0.3,0.7)$) {}; + \node[stop1, above=0.7cm of Weinheim-Sulzbach] (Hemsbach) {}; + \node[stop1, above=0.7cm of Hemsbach] (Laudenbach) {}; + \node[stop1, above=0.7cm of Laudenbach] (Heppenheim) {}; + \node[stop1, above=0.7cm of Heppenheim] (Bensheim) {}; + + % Mannheim to Ludwigshafen + \node[stop5, rotate=90] (LU-Mitte) at ($(Mannheim Hbf)-(2.1,-0.45)$) {}; + \node[stop5, rotate=90, left=1.4cm of LU-Mitte.center, anchor=center] (Ludwigshafen Hbf) {}; + + % Mannheim to Groß-Rohrheim + \node[stop2] (MA-Handelshafen) at ($(Mannheim Hbf.one half)-(0.5,-2.7)$) {}; + \node[stop2, above=0.7cm of MA-Handelshafen] (MA-Neckarstadt) {}; + \node[stop2, above=0.7cm of MA-Neckarstadt] (MA-Luzenberg) {}; + \node[stop3, above=0.8cm of MA-Luzenberg.two half] (MA-Waldhof) {}; + \node[stop1] (MA-Käfertal) at ($(Mannheim Hbf.three quarter)+(0.9,2.5)$) {}; + \node[stop2, above=0.8cm of MA-Waldhof.one half, anchor=one half] (Lampertheim) {}; + \node[stop2, above=0.7cm of Lampertheim] (Bürstadt) {}; + \node[stop2, above=0.7cm of Bürstadt] (Bobstadt) {}; + \node[stop2, above=0.7cm of Bobstadt] (Biblis) {}; + \node[stop1] (Groß-Rohrheim) at ($(Biblis.one half)+(0.7,1)$) {}; + + % Ludwigshafen to Mainz + \node[stop1] (LU-Oggersheim) at ($(Ludwigshafen Hbf.two half)-(1.4,-0.3)$) {}; + \node[stop1, above left=0.7cm of LU-Oggersheim] (Frankenthal Süd) {}; + \def\laststop{Frankenthal Süd} + \foreach\stop in {Frankenthal Hbf, Bobenheim, Worms Hbf, Osthofen, Mettenheim, Alsheim, Guntersblum, Dienheim, Oppenheim, Nierstein, Nackenheim, Bodenheim, MZ-Laubenheim, Mainz Römisches Theater, Mainz Hbf}{ + \expandafter\node[stop1, above=0.7cm of \laststop] (\stop) {}; + \xdef\laststop{\stop} + } + + % Ludwigshafen to Schifferstadt + \node[stop4, rotate=-45] (LU-Mundenheim) at ($(Ludwigshafen Hbf.three quarter)-(1.5,1.1)$) {}; + \node[stop4, rotate=-45, below left=0.7cm of LU-Mundenheim.one half, anchor=one half] (LU-Rheingönheim) {}; + \node[stop4, rotate=-45, below left=0.7cm of LU-Rheingönheim.one half, anchor=one half] (Limburgerhof) {}; + \node[stop4, rotate=-45, below left=0.7cm of Limburgerhof.one half, anchor=one half] (Schifferstadt) {}; + + % Schifferstadt to Germersheim + \node[stop2] (Schifferstadt Süd) at ($(Schifferstadt.two half)-(0.4,0.9)$) {}; + \def\laststop{Schifferstadt Süd} + \foreach\stop in {Speyer Nord-West, Speyer Hbf, Berghausen, Heiligenstein, Lingenfeld}{ + \expandafter\node[stop2, below=0.7cm of \laststop] (\stop) {}; + \xdef\laststop{\stop} + } + \node[stop3, below=0.8cm of Lingenfeld.two half] (Germersheim) {}; + + % Germersheim to Karlsruhe + \node[stop2, rotate=45] (Germersheim Mitte) at ($(Germersheim.one half)+(0.6,-0.9)$) {}; + \node[stop1] (Sondernheim) at ($(Germersheim Mitte.one half)+(0.3,-1.4)$) {}; + \node[stop1, below=1.4cm of Sondernheim] (Bellheim) {}; + \node[stop1, below=1.4cm of Bellheim] (Rülzheim) {}; + \node[stop1] (Rheinzabern) at ($(Rülzheim)+(0.7,-1)$) {}; + \node[stop1, below right=1.4cm of Rheinzabern] (Rheinzabern Alte Römerstraße) {}; + \node[stop1, below right=1.4cm of Rheinzabern Alte Römerstraße] (Jockgrim) {}; + \node[stop1] (Wörth) at ($(Jockgrim)+(1,-0.3)$) {}; + \node[stop1, right=0.6cm of Wörth] (KA-Knielingen) {}; + + % Schifferstadt to Homburg + \node[stop2, rotate=90] (Böhl-Iggelheim) at ($(Schifferstadt.one half)-(0.9,0.4)$) {}; + \def\laststop{Böhl-Iggelheim} + \foreach\stop in {Haßloch, Neustadt-Böbig, Neustadt Hbf, Lambrecht, Neidenfels, Weidenthal, Frankenstein, Hochspeyer, Kaiserslautern Hbf}{ + \expandafter\node[stop2, rotate=90, left=0.9cm of \laststop.one half, anchor=one half] (\stop) {}; + \xdef\laststop{\stop} + } + \node[stop1, left=0.8cm of Kaiserslautern Hbf.two half] (Kennelgarten) {}; + \def\laststop{Kennelgarten} + \foreach\stop in {Vogelweh, Einsiedlerhof, Kindsbach, Landstuhl, Hauptstuhl, Bruchmühlbach-Miesau, Homburg Hbf}{ + \expandafter\node[stop1, left=0.7cm of \laststop] (\stop) {}; + \xdef\laststop{\stop} + } + \end{pgfonlayer} + + \begin{pgfonlayer}{lines} + \pgfmathparse{0.1*tan(45/2)} + \let\offset\pgfmathresult + + \draw[occassional, five] (Heidelberg Hbf.two half) + -- (Mannheim Hbf.four sixth) + -- ++(-0.3,0.3) + -- ++(-0.3,0) + ; + + \draw[occassional, seven] (Hockenheim.two half) + -- (Oftersheim.two half) + -- (Schwetzingen.two half) + -- ++(0,1.1) + -- (Neu-Edingen Friedrichsfeld.two half) + -- ++(-0.4,-0.4) + -- ++(0,-0.8) + -- (HD-Pfaffengrund-Wieblingen.two half) + -- (Heidelberg Hbf.three quarter) + ; + + \draw[occassional, eight] (Mannheim Hbf.three quarter) + -- ++(0.7,-0.7) + -- ++(0.7,0.7) + -- ++(0,2) + -- (MA-Käfertal) + -- ++(-1.2,1.2) + -| (MA-Waldhof.two half) + -- ++(0,0.3) + -- ++(-0.2,0.2) + -- (Lampertheim.two half) + -- (Bürstadt.two half) + -- (Bobstadt.two half) + -- (Biblis.two half) + ; + + \draw[occassional, thirty-nine] (Mannheim Hbf.two half) + {[rounded corners=0.8cm] + -- ++(-0.75,0.75) + } + -| (MA-Handelshafen.two half) + -- (MA-Neckarstadt.two half) + -- (MA-Luzenberg.two half) + -- (MA-Waldhof) + ; + + \draw[line, one] (Homburg Hbf) + -- (Bruchmühlbach-Miesau) + -- (Hauptstuhl) + -- (Landstuhl) + -- (Kindsbach) + -- (Einsiedlerhof) + -- (Vogelweh) + -- (Kennelgarten) + -- (Kaiserslautern Hbf.two half) + -- (Hochspeyer.two half) + -- (Frankenstein.two half) + -- (Weidenthal.two half) + -- (Neidenfels.two half) + -- (Lambrecht.two half) + -- (Neustadt Hbf.two half) + -- (Neustadt-Böbig.two half) + -- (Haßloch.two half) + -- (Böhl-Iggelheim.two half) + -- ($(Böhl-Iggelheim.two half)+(0.6,0)$) + -- (Schifferstadt.one half) + -- (Limburgerhof.one half) + -- (LU-Rheingönheim.one half) + -- (LU-Mundenheim.one half) + {[rounded corners=0.4cm] + -- ($(Ludwigshafen Hbf.three quarter)-(0.6,0)-(6*\offset,0)$) + -- (Ludwigshafen Hbf.three quarter) + -- (LU-Mitte.three quarter) + -- ($(LU-Mitte.three quarter)+(1.3,0)+(6*\offset,0)$) } + -- (Mannheim Hbf.six tenth) + -- (MA-Arena-Maimarkt.three quarter) + -- (MA-Seckenheim.three quarter) + -- (MA-Friedrichsfeld Süd.two half) + -- (HD-Pfaffengrund-Wieblingen.three quarter) + -- (Heidelberg Hbf.four sixth) + -- ($(HD-Weststadt Südstadt)-(1.7,0)$) + -- (HD-Weststadt Südstadt) + -- (HD-Altstadt) + -- (HD-Schlierbach Ziegelhausen) + -- (HD Orthopädie) + -- (Neckargemünd) + -- (Neckargemünd Altstadt.two half) + -- ++($(0.7,0)-(\offset,0)$) + -- (Neckarsteinach.one half) + -- (Neckarhausen.one half) + -- (Hirschhorn.one half) + {[rounded corners=0.2cm] + -- ($(Eberbach.one half)-(0.7,0)-(\offset,0)$) + -- (Eberbach.one half) + -- ($(Eberbach.one half)+(0.7,0)+(\offset,0)$) + } + -- (Lindach.two half) + -- (Zwingenberg Baden.two half) + -- (Neckargerach.two half) + -- (Binau.two half) + -- (Mosbach-Neckarelz.two half) + -- ($(Mosbach West.two half)-(0.7,0)+(\offset,0)$) + -- (Mosbach West.two half) + -- (Mosbach Baden.two half) + -- (Neckarburken) + -- ++(0.5,0) + -- (Dallau) + -- (Auerbach) + -- (Oberschefflenz) + -- (Eichholzheim) + -- ++(0.4,0.4) + -- (Seckach) + -- (Zimmern) + -- (Adelsheim Nord) + -- (Osterburken) + ; + + \draw[line, two] (Kaiserslautern Hbf.one half) + -- (Hochspeyer.one half) + -- (Frankenstein.one half) + -- (Weidenthal.one half) + -- (Neidenfels.one half) + -- (Lambrecht.one half) + -- (Neustadt Hbf.one half) + -- (Neustadt-Böbig.one half) + -- (Haßloch.one half) + -- (Böhl-Iggelheim.one half) + {[rounded corners=0.2cm] + -- ($(Böhl-Iggelheim.one half)+(0.6,0)+(2*\offset,0)$) + } + -- (Schifferstadt.two quarter) + -- (Limburgerhof.two quarter) + -- (LU-Rheingönheim.two quarter) + -- (LU-Mundenheim.two quarter) + {[rounded corners=0.3cm] + -- ($(Ludwigshafen Hbf)-(0.6,0)-(4*\offset,0)$) + -- (Ludwigshafen Hbf) + -- (LU-Mitte) + -- ($(LU-Mitte)+(1.3,0)+(4*\offset,0)$) + } + -- (Mannheim Hbf.five tenth) + -- (MA-Arena-Maimarkt) + -- (MA-Seckenheim) + -- (MA-Friedrichsfeld Süd.three quarter) + -- (HD-Pfaffengrund-Wieblingen) + {[rounded corners=0.2cm] + -- (Heidelberg Hbf.three sixth) + -- ($(HD-Weststadt Südstadt.one half)-(1.7,0)-(2*\offset,0)$) + } + -- (HD-Weststadt Südstadt.one half) + -- (HD-Altstadt.one half) + -- (HD-Schlierbach Ziegelhausen.one half) + -- (HD Orthopädie.one half) + -- (Neckargemünd.one half) + -- (Neckargemünd Altstadt.one half) + {[rounded corners=0.2cm] + -- ++($(0.7,0)+(\offset,0)$) + } + -- (Neckarsteinach.two half) + -- (Neckarhausen.two half) + -- (Hirschhorn.two half) + -- ($(Eberbach.two half)-(0.7,0)+(\offset,0)$) + -- (Eberbach.two half) + -- ($(Eberbach.two half)+(0.7,0)-(\offset,0)$) + -- (Lindach.one half) + -- (Zwingenberg Baden.one half) + -- (Neckargerach.one half) + -- (Binau.one half) + -- (Mosbach-Neckarelz.one half) + {[rounded corners=0.2cm] + -- ($(Mosbach West.one half)-(0.7,0)-(\offset,0)$) + -- (Mosbach West.one half) + -- (Mosbach Baden.one half) + } + ; + + \draw[line, three] (Karlsruhe Hbf.two half) + -- (KA-Durlach) + -- (Weingarten Baden) + -- (Untergrombach) + -- (Bruchsal-Bildungszentrum) + -- ++(0.6,0.6) + -- (Bruchsal) + -- (Ubstadt-Weiher.one half) + -- (Stettfeld-Weiher.one half) + -- (Bad Schönborn Süd.one half) + -- (Bad Schönborn-Kronau.one half) + -- (Rot-Malsch.one half) + -- (Wiesloch-Walldorf.one half) + -- (St Ilgen-Sandhausen.one half) + -- (HD-Kirchheim-Rohrbach.one half) + -- ++(0,0.3) + -- (Heidelberg Hbf.one half) + -- (HD-Pfaffengrund-Wieblingen.one half) + -- (MA-Friedrichsfeld Süd.one half) + -- (MA-Seckenheim.one half) + -- (MA-Arena-Maimarkt.one half) + -- (Mannheim Hbf.three sixth) + -- ($(LU-Mitte.one half)+(1.3,0)$) + -- (LU-Mitte.one half) + -- (Ludwigshafen Hbf.one half) + -- ($(Ludwigshafen Hbf.one half)-(0.6,0)$) + -- (LU-Mundenheim.two half) + -- (LU-Rheingönheim.two half) + -- (Limburgerhof.two half) + -- (Schifferstadt.two half) + -- ($(Schifferstadt Süd.two half)+(0,0.6)$) + -- (Schifferstadt Süd.two half) + -- (Speyer Nord-West.two half) + -- (Speyer Hbf.two half) + -- (Berghausen.two half) + -- (Heiligenstein.two half) + -- (Lingenfeld.two half) + -- (Germersheim) + {[rounded corners=0.2cm] + -- ($(Germersheim)-(0,0.5)-(0,2*\offset)$) + } + -- (Germersheim Mitte.one half) + -- ++(0.3,-0.3) + -- (Sondernheim) + -- (Bellheim) + -- (Rülzheim) + -- ++(0,-0.3) + -- (Rheinzabern) + -- (Rheinzabern Alte Römerstraße) + -- (Jockgrim) + -- ++(0.3,-0.3) + -- (Wörth) + -- (KA-Knielingen) + -- ++(0.25,0) + -- (Karlsruhe Hbf.one half) + ; + + \draw[line, four] (Bruchsal.two half) + -- (Ubstadt-Weiher.two half) + -- (Stettfeld-Weiher.two half) + -- (Bad Schönborn Süd.two half) + -- (Bad Schönborn-Kronau.two half) + -- (Rot-Malsch.two half) + -- (Wiesloch-Walldorf.two half) + -- (St Ilgen-Sandhausen.two half) + -- (HD-Kirchheim-Rohrbach.two half) + {[rounded corners=0.2cm] + -- ++($(0,0.3)+(0,2*\offset)$) + } + -- (Heidelberg Hbf.two quarter) + -- (HD-Pfaffengrund-Wieblingen.two quarter) + -- (MA-Friedrichsfeld Süd.two quarter) + -- (MA-Seckenheim.two quarter) + -- (MA-Arena-Maimarkt.two quarter) + -- (Mannheim Hbf.four eighth) + {[rounded corners=0.2cm] + -- ($(LU-Mitte.two quarter)+(1.3,0)+(2*\offset,0)$) + -- (LU-Mitte.two quarter) + -- (Ludwigshafen Hbf.two quarter) + -- ($(Ludwigshafen Hbf.two quarter)-(0.6,0)-(2*\offset,0)$) + -- (LU-Mundenheim.three quarter) + -- (LU-Rheingönheim.three quarter) + -- (Limburgerhof.three quarter) + -- (Schifferstadt.three quarter) + -- ($(Schifferstadt Süd.one half)+(0,0.6)+(0,2*\offset)$) + -- (Schifferstadt Süd.one half) + } + -- (Speyer Nord-West.one half) + -- (Speyer Hbf.one half) + -- (Berghausen.one half) + -- (Heiligenstein.one half) + -- (Lingenfeld.one half) + -- (Germersheim.one half) + ; + + \draw[line,five] (Heidelberg Hbf.two half) + -- ($(HD-Weststadt Südstadt.two half)-(1.3,0)$) + -- (HD-Weststadt Südstadt.two half) + -- (HD-Altstadt.two half) + -- (HD-Schlierbach Ziegelhausen.two half) + -- (HD Orthopädie.two half) + -- (Neckargemünd.two half) + {[rounded corners=0.3cm] + -| (Bammental) + } + -- (Reilsheim) + -- (Mauer bei Heidelberg) + -- (Meckesheim) + -- (Zuzenhausen) + -- (Hoffenheim) + -- (Sinsheim Elsenz Hbf) + -- ++(0.0,-0.3) + -- (Sinsheim Museum Arena) + -- (Steinsfurt) + -- (Reihen) + -- (Ittlingen) + -- (Richen) + -- (Eppingen) + ; + + \draw[line, five] (Meckesheim) + -- ++(0,-0.3) + -- (Eschelbronn) + -- (Neidenstein) + -- ++(0.5,-0.5) + -- (Waibstadt) + -- (Neckarbischofsheim Nord) + -- (Helmstadt) + -- (Aglasterhausen) + ; + + \draw[line, six] (Mainz Hbf) + -- (Mainz Römisches Theater) + -- (MZ-Laubenheim) + -- (Bodenheim) + -- (Nackenheim) + -- (Nierstein) + -- (Oppenheim) + -- (Dienheim) + -- (Guntersblum) + -- (Alsheim) + -- (Mettenheim) + -- (Osthofen) + -- (Worms Hbf) + -- (Bobenheim) + -- (Frankenthal Hbf) + -- (Frankenthal Süd) + {[rounded corners=0.2cm] + |- (LU-Oggersheim) + } + -- ++(0.3,0) + -- ++(0.3,-0.3) + -- (Ludwigshafen Hbf.two half) + -- (LU-Mitte.two half) + {[rounded corners=0.5cm] + -- ($(LU-Mitte.two half)+(1.3,0)+(8*\offset,0)$) + } + -- (Mannheim Hbf.five eighth) + -- (MA-Arena-Maimarkt.two half) + -- (MA-Seckenheim.two half) + {[rounded corners=0.4cm] + -- ++(0.45,-0.45) + } + -- (Neu-Edingen Friedrichsfeld.one half) + -- (Ladenburg) + -- (Heddesheim Hirschberg) + -- (Lützelsachsen) + -- (Weinheim Hbf) + -- ++(0.3,0.3) + -- (Weinheim-Sulzbach) + -- (Hemsbach) + -- (Laudenbach) + -- (Heppenheim) + -- (Bensheim) + ; + + \draw[line, nine] (Karlsruhe Hbf) + -- ($(Karlsruhe Hbf)+(0.2,0.2)$) + -- (KA-Hagsfeld) + -- (Blankenloch) + -- (Friedrichstal Baden) + -- (Graben-Neudorf) + -- (Wiesental.two half) + -- (Waghäusel.two half) + -- (Neulußheim.two half) + -- (Hockenheim) + -- (Oftersheim) + -- (Schwetzingen) + -- (Schwetzingen-Hirschacker.two half) + -- (MA-Rheinau.two half) + -- (MA-Neckarau.two half) + {[rounded corners=0.2cm] + -- ($(MA-Neckarau.two half)+(0,1.3)+(0,2*\offset)$) + } + -- (Mannheim Hbf.two quarter) + ; + + \draw[line, nine] (Graben-Neudorf.one half) + -- (Wiesental.one half) + -- (Waghäusel.one half) + -- (Neulußheim.one half) + -- (Hockenheim.one half) + -- (Oftersheim.one half) + -- (Schwetzingen.one half) + -- (Schwetzingen-Hirschacker.one half) + -- (MA-Rheinau.one half) + -- (MA-Neckarau.one half) + -- ($(MA-Neckarau.one half)+(0,1.3)$) + -- (Mannheim Hbf.one half) + -- ++(-0.6,0.6) + -- (MA-Handelshafen.one half) + -- (MA-Neckarstadt.one half) + -- (MA-Luzenberg.one half) + -- (MA-Waldhof.one half) + -- (Lampertheim.one half) + -- (Bürstadt.one half) + -- (Bobstadt.one half) + -- (Biblis.one half) + -- ++(0,0.3) + -- (Groß-Rohrheim) + ; + + \draw[line, thirty-three] (Bruchsal.one half) + {[rounded corners=0.2cm] + |- (Bruchsal Sportzentrum) + } + -- (Bruchsal Am Mantel) + -- (Karlsdorf) + {[rounded corners=0.2cm] + -| (Graben-Neudorf.two half) + } + -- (Graben-Neudorf Nord) + -- ++(0,0.3) + -- (Huttenheim) + -- ++(-0.4,0.4) + -- (Phillipsburg Baden) + -- (Rheinsheim) + -- ($(Germersheim Mitte.two half)+(0.17,-0.17)$) + -- (Germersheim Mitte.two half) + -- ($(Germersheim.two half)-(0,0.5)$) + -- (Germersheim.two half) + ; + + \end{pgfonlayer} + + \begin{pgfonlayer}{labels} + \node[font=\scriptsize, color=white] at (4.0,1.5){Neckar}; + \node[font=\scriptsize, color=white, rotate=-45] at (-3.5,3.5) {Neckar}; + \foreach\stop/\placement/\anchor/\rotate in { + Karlsruhe Hbf/left/east/0, + KA-Durlach/right/west/0, + Weingarten Baden/right/west/0, + KA-Hagsfeld/left/east/0, + Blankenloch/left/east/0, + Untergrombach/right/west/0, + Bruchsal-Bildungszentrum/right/west/0, + Bruchsal/right/west/0, + Bruchsal Sportzentrum/above/west/45, + Bruchsal Am Mantel/above/west/45, + Karlsdorf/above/west/45, + Ubstadt-Weiher/right/west/0, + Friedrichstal Baden/left/east/0, + Graben-Neudorf/left/east/0, + Graben-Neudorf Nord/right/west/45, + Huttenheim/left/east/0, + Wiesental/right/west/45, + Phillipsburg Baden/above/west/45, + Rheinsheim/above/west/45, + Stettfeld-Weiher/right/west/0, + Bad Schönborn Süd/right/west/0, + Bad Schönborn-Kronau/right/west/0, + Rot-Malsch/right/west/0, + Wiesloch-Walldorf/right/west/0, + St Ilgen-Sandhausen/right/west/0, + HD-Kirchheim-Rohrbach/right/west/0, + Waghäusel/right/west/45, + Neulußheim/right/west/45, + Hockenheim/right/west/45, + Oftersheim/left/east/0, + Schwetzingen/left/east/0, + Heidelberg Hbf/left/east/45, + HD-Pfaffengrund-Wieblingen/left/east/45, + MA-Friedrichsfeld Süd/left/east/45, + Neu-Edingen Friedrichsfeld/right/west/0, + HD-Weststadt Südstadt/right/west/45, + HD-Altstadt/right/west/45, + HD-Schlierbach Ziegelhausen/right/west/45, + HD Orthopädie/right/west/45, + Neckargemünd/right/west/45, + Bammental/right/west/0, + Reilsheim/right/west/0, + Mauer bei Heidelberg/right/west/0, + Meckesheim/right/west/0, + Eschelbronn/right/west/0, + Neidenstein/right/west/0, + Zuzenhausen/left/east/0, + Hoffenheim/left/east/0, + Sinsheim Elsenz Hbf/left/east/0, + Waibstadt/above/west/45, + Neckarbischofsheim Nord/above/west/45, + Helmstadt/above/west/45, + Aglasterhausen/above/west/45, + Sinsheim Museum Arena/left/east/0, + Steinsfurt/left/east/0, + Reihen/left/east/0, + Ittlingen/left/east/0, + Richen/left/east/0, + Eppingen/left/east/0, + Neckargemünd Altstadt/right/west/45, + Neckarsteinach/right/west/0, + Neckarhausen/right/west/0, + Hirschhorn/right/west/0, + Eberbach/left/west/45, + Lindach/right/west/45, + Zwingenberg Baden/right/west/45, + Neckargerach/right/west/45, + Binau/right/west/45, + Mosbach-Neckarelz/right/west/45, + Mosbach West/right/west/45, + Mosbach Baden/right/west/45, + Neckarburken/above/west/45, + Dallau/right/west/0, + Auerbach/right/west/0, + Oberschefflenz/right/west/0, + Eichholzheim/right/west/0, + Seckach/above/west/45, + Zimmern/above/west/45, + Adelsheim Nord/above/west/45, + Osterburken/above/west/45, + MA-Seckenheim/right/west/45, + MA-Arena-Maimarkt/right/west/45, + Mannheim Hbf/left/east/45, + Schwetzingen-Hirschacker/left/east/0, + MA-Rheinau/left/east/0, + MA-Neckarau/left/east/0, + Ladenburg/right/west/0, + Heddesheim Hirschberg/right/west/0, + Lützelsachsen/right/west/0, + Weinheim Hbf/right/west/0, + Weinheim-Sulzbach/right/west/0, + Hemsbach/right/west/0, + Laudenbach/right/west/0, + Heppenheim/right/west/0, + Bensheim/right/west/0, + LU-Mitte/right/south/0, + Ludwigshafen Hbf/left/east/45, + MA-Handelshafen/left/east/0, + MA-Neckarstadt/left/east/0, + MA-Luzenberg/left/east/0, + MA-Waldhof/left/east/0, + MA-Käfertal/right/west/0, + Lampertheim/left/east/0, + Bürstadt/left/east/0, + Bobstadt/left/east/0, + Biblis/left/east/0, + Groß-Rohrheim/left/east/0, + LU-Oggersheim/above/west/45, + Frankenthal Süd/left/east/0, + Frankenthal Hbf/left/east/0, + Bobenheim/left/east/0, + Worms Hbf/left/east/0, + Osthofen/left/east/0, + Mettenheim/left/east/0, + Alsheim/left/east/0, + Guntersblum/left/east/0, + Dienheim/left/east/0, + Oppenheim/left/east/0, + Nierstein/left/east/0, + Nackenheim/left/east/0, + Bodenheim/left/east/0, + MZ-Laubenheim/left/east/0, + Mainz Römisches Theater/left/east/0, + Mainz Hbf/left/east/0, + LU-Mundenheim/left/east/0, + LU-Rheingönheim/left/east/0, + Limburgerhof/left/east/0, + Schifferstadt/right/west/0, + Schifferstadt Süd/right/west/0, + Speyer Nord-West/left/east/0, + Speyer Hbf/left/east/0, + Berghausen/left/east/0, + Heiligenstein/left/east/0, + Lingenfeld/left/east/0, + Germersheim/left/east/0, + Germersheim Mitte/left/east/0, + Sondernheim/left/east/0, + Bellheim/left/east/0, + Rülzheim/left/east/0, + Rheinzabern/left/east/0, + Rheinzabern Alte Römerstraße/left/east/0, + Jockgrim/left/east/0, + Wörth/below/east/45, + KA-Knielingen/below/east/45, + Böhl-Iggelheim/left/east/45, + Haßloch/left/east/45, + Neustadt-Böbig/left/east/45, + Neustadt Hbf/left/east/45, + Lambrecht/left/east/45, + Neidenfels/left/east/45, + Weidenthal/left/east/45, + Frankenstein/left/east/45, + Hochspeyer/left/east/45, + Kaiserslautern Hbf/left/east/45, + Kennelgarten/below/east/45, + Vogelweh/below/east/45, + Einsiedlerhof/below/east/45, + Kindsbach/below/east/45, + Landstuhl/below/east/45, + Hauptstuhl/below/east/45, + Bruchmühlbach-Miesau/below/east/45, + Homburg Hbf/below/east/45% + } \node[label, \placement=0.05cm of \stop, rotate=\rotate, anchor=\anchor] {\contour{white}{\stop}}; + \node[line name, fill=three, right=0.2cm of Karlsruhe Hbf] (S3-KA) {\bf S3}; + \node[line name, fill=nine, right=0.05cm of S3-KA] {\bf S9}; + \node[line name, fill=four, left=0.2cm of Bruchsal] (S4-RBR) {\bf S4}; + \node[line name, fill=thirty-three, left=0.05cm of S4-RBR] {\bf S33}; + \node[line name, fill=nine, below left =0.2cm of Graben-Neudorf.one half] {\bf S9}; + \node[line name, fill=seven, left=0.2cm of Hockenheim] {\bf S7}; + \node[line name, fill=five, right=0.2cm of Heidelberg Hbf] (S5-HD) {\bf S5}; + \node[line name, fill=five, right=0.05cm of S5-HD] (S51-HD) {\bf S51}; + \node[line name, fill=seven, right=0.05cm of S51-HD] {\bf S7}; + \node[line name, fill=five, right=0.2cm of Aglasterhausen] {\bf S51}; + \node[line name, fill=five, right=0.2cm of Eppingen] {\bf S5}; + \node[line name, fill=two] at ($(Mosbach Baden.one half)-(0,0.4)$) {\bf S2}; + \node[line name, fill=one, right=0.2cm of Osterburken] {\bf S1}; + \node[line name, fill=six, left=0.2cm of Bensheim] {\bf S6}; + \node[line name, fill=nine, right=0.2 cm of Mannheim Hbf.east] (MA-S9) {\bf S9}; + \node[line name, fill=eight, right=0.05cm of MA-S9] {\bf S8}; + \node[line name, fill=thirty-nine, above=0.05cm of MA-S9] {\bf S39}; + \node[line name, fill=thirty-nine, right=0.2cm of MA-Waldhof] {\bf S39}; + \node[line name, fill=eight, right=0.2cm of Biblis] {\bf S8}; + \node[line name, fill=nine, right=0.2cm of Groß-Rohrheim] {\bf S9}; + \node[line name, fill=six, right=0.2cm of Mainz Hbf] {\bf S6}; + \node[line name, fill=four, right=0.2cm of Germersheim] (G-S4) {\bf S4}; + \node[line name, fill=thirty-three, right=0.05cm of G-S4] {\bf S33}; + \node[line name, fill=two, above=0.2cm of Kaiserslautern Hbf.east] {\bf S2}; + \node[line name, fill=one, above=0.2cm of Homburg Hbf] {\bf S1}; + + \end{pgfonlayer} + +\end{tikzpicture} + +\end{document} +% vim: nospell conceallevel=0 |