%!TEX TS-program = pdflatexmk % Copyright (c) 2018 - 2020, Martin Scheidt (ISC license) % Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. \documentclass[tikz,border=2]{standalone} \usetikzlibrary{trackschematic} \begin{document} \begin{tikzpicture}[font=\sffamily] { % station names \tikzset{every node/.style={\foreground!50!\background}}; \node[right,align=left] at ( 5,1.3) {to and from\\ Berg}; \node at (21,3.9) {{\LARGE Bf Chamstadt}}; \node[left,align=right] at (37.5,1.3) {to and from\\ Dornroda}; \node[left,align=right] at (36.5,4.0) {to and from\\ Ehrenstein}; } % coordinates \coordinate (A) at ( 1.5, 0); \coordinate (B) at (37.5, 0); \coordinate (C) at (34 , 5); \coordinate (E1) at ( 9 , 1); \coordinate (Y1) at (14 , 0); \coordinate (Y2) at (15 , 0); \coordinate (Y3) at (16 , 1); \coordinate (Y4) at (14.8, 1); \coordinate (Y5) at (26.5, 0); \coordinate (Y6) at (27 , 1); \coordinate (Y7) at (28 , 0); \coordinate (Y8) at (29 , 0); \coordinate (Y9) at (30 , 1); \coordinate (S01) at ( 7.5, 0); \coordinate (S02) at (10 , 0); \coordinate (S03) at (16 ,-1); \coordinate (S04) at (18 , 0); \coordinate (S05) at (18 , 1); \coordinate (S06) at (24 , 0); \coordinate (S07) at (24 , 1); \coordinate (S08) at (25 ,-1); \coordinate (S09) at (33 , 0); \coordinate (S10) at (32 , 3); \coordinate (S11) at (35.5, 0); \coordinate (S12) at (33.5, 4.5); \coordinate (T1) at ( 6 , 0); \coordinate (T2) at (10.2, 1); \coordinate (T3) at (16.5,-1); \coordinate (P1) at (21 , 0); \coordinate (P2) at (21 , 1); \coordinate (HM1) at (0,-1.85); \coordinate (HM2) at (0, 2.15); { %% topology % tracks \maintrack (A) -- (B); \maintrack (Y1) -- ++( 1,-1) -- ++(10.5,0) -- (Y5); \maintrack (Y2) -- ++( 1, 1) -- (Y9); \maintrack (Y6) -- ++( 1,-1); \maintrack (Y8) -- (Y9) -- (C); \secondarytrack (E1) -- (Y3); % track numbers \tracklabel at (12.5, 1) label (11); \tracklabel at (21 ,-1) label (3); \tracklabel at (P1) label (1); \tracklabel at (P2) label (2); % bufferstops \bufferstop[backward] at (E1); % turnouts \tikzset{every node/.style={fouling point}}; \turnout[forward ,branch=right] at (Y1) label (W1); \turnout[forward ,branch=left ] at (Y2) label (W2); \turnout[backward,branch=right] at (Y3) label (W3); \derailer[forward,branch=left ] at (Y4) label (Gs4); \turnout[backward,branch=right] at (Y5) label (W5); \turnout[forward ,branch=right] at (Y6) label (W6); \turnout[backward,branch=left ] at (Y7) label (W7); \turnout[forward ,branch=left ] at (Y8) label (W8); \turnout[backward,branch=right,shift label={(0.2,-0.5)}] at (Y9) label (W9); } { %% traffic control % signals \distantsignal[forward] at (S01) label (Va); \signal[distant,route,forward] at (S02) label (A); \routesignal[backward] at (S03) label (P3); \routesignal[backward] at (S04) label (P1); \routesignal[backward] at (S05) label (P2); \routesignal[forward] at (S06) label (N1); \routesignal[forward] at (S07) label (N2); \routesignal[forward] at (S08) label (N3); \signal[distant,route,backward] at (S09) label (F); \signal[distant,route,backward,rotate=45,shift label={(0.1,0.1)}] at (S10) label (G); \distantsignal[backward] at (S11) label (Vf); \distantsignal[backward,rotate=45,shift label={(0.1,0.1)}] at (S12) label (Vg); % routes \route[backward] at (20,-1); \route[forward] at (22,-1); \route[backward] at (20, 0); \route[forward] at (22, 0); \route[backward] at (20, 1); \route[forward] at (22, 1); % clearing points \tikzset{every node/.style={backward}}; \clearingpoint[] at (10 , 0) label (); \clearingpoint[] at (13 , 0) label (); \clearingpoint[] at (14 , 1) label (); \clearingpoint[] at (16 , 0) label (); \clearingpoint[] at (16 ,-1) label (); \clearingpoint[rotate= 45] at (15.5, 0.5) label (); \clearingpoint[] at (18 , 1) label (); \clearingpoint[] at (18 , 0) label (); \clearingpoint[] at (24 , 1) label (); \clearingpoint[] at (24 , 0) label (); \clearingpoint[] at (26 , 1) label (); \clearingpoint[] at (25 ,-1) label (); \clearingpoint[] at (27 , 0) label (); \clearingpoint[rotate=-45] at (27.5, 0.5) label (); \clearingpoint[rotate= 45] at (29.5, 0.5) label (); \clearingpoint[] at (30.2, 0) label (); \clearingpoint[] at (33 , 0) label (); \clearingpoint[rotate= 45] at (30.5, 1.5) label (); \clearingpoint[rotate= 45] at (32 , 3 ) label (); } { %% vehicles \train[run=normal,forward] at (T1) label (RB); \parkedvehicles[length=1cm] at (T2) label (Tfz); \train[backward] at (T3) label (GZ); } { %% constructions % platforms \platform[side=right] at (P2); \platform[side=left ] at (P1); } { %% messures % hectometer posts \tikzset{hectometer base={(HM1)},orientation=right}; \hectometer[] at (S01) label ( 7.200); \hectometer[] at (S02) label ( 8.200); \hectometer[] at (13 ,0) label ( 8.400); \hectometer[] at (S03) label ( 8.600); \hectometer[] at (S08) label ( 9.150); \hectometer[] at (27 ,0) label ( 9.250); \hectometer[] at (27.5,0) label ( 9.300); \hectometer[] at (29.5,0) label ( 9.450); \hectometer[] at (30.2,0) label ( 9.500); \hectometer[] at (S09) label ( 9.900); \hectometer[] at (S11) label (10.900); \messureline (S09) -- ++(0,1.7) -- (S10); \messureline (S11) -- ++(0,2.2) -- (S12); \tikzset{hectometer base={(HM2)},orientation=left}; \hectometer[] at (14 ,1) label ( 8.500); \hectometer[] at (15.5,1) label ( 8.550); \hectometer[] at (S05) label ( 8.700); \hectometer[] at (19 ,1) label ( 8.750); \hectometer[] at (23 ,1) label ( 9.000); \hectometer[] at (S07) label ( 9.100); \hectometer[] at (26 ,1) label ( 9.200); } \end{tikzpicture} \end{document}