diff options
Diffstat (limited to 'graphics')
132 files changed, 5758 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/tikz-trackschematic/README.md b/graphics/pgf/contrib/tikz-trackschematic/README.md new file mode 100644 index 0000000000..9148aebef5 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/README.md @@ -0,0 +1,97 @@ +# TikZ-trackschematic + +------------ + +# Installation + +The tikz library is contained in the files: +* tikzlibrarytrackschematic.code.tex, +* tikzlibrarytrackschematic.topology.code.tex, +* tikzlibrarytrackschematic.trafficcontrol.code.tex, +* tikzlibrarytrackschematic.vehicles.code.tex, +* tikzlibrarytrackschematic.constructions.code.tex, and +* tikzlibrarytrackschematic.messures.code.tex. +These files should be copied wherever TeX can find it, for example in your TEXMF folder. The library can then be loaded through the command \usetikzlibrary{trackschematic} in any tex file. + +------------ + +# Usage + +```TeX +\documentclass[tikz]{standalone} +\usetikzlibrary{trackschematic} +\begin{document} + + \begin{tikzpicture} + + \coordinate (A) at (0,0); + \coordinate (B) at (6,0); + \coordinate (T) at (5,0); + + \maintrack (A) -- (B); + \train[forward] at (T) label (train); + + \end{tikzpicture} + +\end{document} +``` + +------------ + +# History + +## Version 0.5 + + * new improved syntax for topology + * documentation + +## Version 0.4 + + * added document for symbology + * renamed overview to snippets + * reworked library for common tikz library layout + +## Version 0.3 + + * moved snippet folder to root folder + * added shunting movements + * added points to turnouts + * added moving trains + * defined and used color foreground and background + + +## Version 0.2 + + * added transmitters + * reorganized src library + * minor improvements + +## Version 0.1 + + Basic concept of a library with railway topology symbols and some examples. + +------------ + +# Roadmap + + * rethink syntax + * provide option for internationalziation (i18n) + * rewrite library with better coding skills + +------------ + +# Acknowledgement + + This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 826347. + +------------ + +# License + + ISC License + + Copyright (c) 2018 - 2020, Martin Scheidt \<m.scheidt@tu-bs.de\> + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty new file mode 100644 index 0000000000..46ddf742d0 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty @@ -0,0 +1,103 @@ +%% symbol library for TikZ track schematics +% +% Copyright 2018,2019 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. + +\ProvidesPackage{doc}[2019-09-30 Doc Package] + +% --------[ Coding and Language ]---------- +\RequirePackage{scrhack,marginnote} +\RequirePackage[utf8]{inputenc} +\RequirePackage[T1]{fontenc} +\RequirePackage[main=english]{babel} +% --------[ revision history ]---------- +\RequirePackage[tocentry]{vhistory} +% --------[ Layout ]----------- +\pretolerance=8000 +\tolerance=9500 +\hbadness=8000 +\vbadness=10000 +\displaywidowpenalty=10000 +\clubpenalty=10000 +\widowpenalty=10000 +\RequirePackage{lmodern,microtype,mathptmx,courier} +\RequirePackage[scaled=0.92]{helvet} +\RequirePackage[% + automark,% + headsepline,% + draft=false,% +]{scrlayer-scrpage}% +\pagestyle{scrheadings} +\RequirePackage{multicol} +% -----------[ PDF linking ]---------------- +\RequirePackage[% + pdftex,% + pdfpagelabels, % modify PDF page labels + hyperindex,% + hyperfigures,% + bookmarksopen,% + bookmarksnumbered,% + draft=false,% + pageanchor=true, % Determines whether every page is given an implicit anchor at the top left corner + %pagebackref, % Adds backlink text to the end of each item in the bibliography, as a list of page numbers + %linktocpage, % make page number, not text, be link on TOC, LOF and LOT + breaklinks=true, % allow links to break over lines by making links over multiple lines into PDF links to the same target + colorlinks=true, % Colors the text of links and anchors + linkcolor=base01, % Color for normal internal links + urlcolor=blue, % Color for web links +]{hyperref} % PDF with a linked TableOfContent +\RequirePackage{bookmark} % Adding package bookmark improves bookmarks handling. +\RequirePackage{url} + +% ----------[ display ]----------- +\RequirePackage[prefix=]{xcolor-solarized} +\RequirePackage[inline]{enumitem} + +\RequirePackage[final]{listings} +\lstdefinelanguage{tikz}{% + keywordsprefix = \\, + alsoletter = \\,% + morekeywords = {},% + sensitive = true,% + morecomment = [l]\%,% + morestring=[s][\bfseries\color{magenta}]{\[}{\]},% + morestring=[s][\bfseries\color{violet}]{\{}{\}},% + morestring=[s][\bfseries\color{violet}]{(}{)},% +}[keywords,comments,strings]% + +\lstset{% + language = tikz,% + basicstyle = \scriptsize\ttfamily,% + keywordstyle = \bfseries\color{blue},% + commentstyle = \itshape\color{green},% + backgroundcolor = \color{base3},% + showstringspaces = false,% + columns = fullflexible,% + breaklines = true,% + frame = single,% +}% + +\RequirePackage{longtable,tikz,siunitx,adjustbox,rotating} +\sisetup{math-rm=\mathsf} + +\usetikzlibrary{trackschematic} + +\def\rootTrackschematic{.} + +\renewcommand{\symbol}[2][1.0]{% + \adjustbox{valign=c}{\begin{tikzpicture}[scale=#1]% + \input{\rootTrackschematic/snippets/#2}% + \path (-0.1,-1.1) rectangle (6.1,1.1); % background rectangle to unify every cell containing a symbol + \end{tikzpicture}}% +}% + +\newcommand{\symboldescription}[1]{\paragraph*{#1}\marginnote{\tikz{\fill (-0.4,0.15)--(-0.4,-0.15)--(0,0)--cycle;}}\mbox{}\\}% + +\newcommand{\code}[1]{\lstinputlisting[firstline=7]{\rootTrackschematic/snippets/#1}}% + +\newcounter{symbolNo}% +\def\No{\stepcounter{symbolNo}\arabic{symbolNo}}% + +\setlength{\parindent}{0cm} +\reversemarginpar
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.pdf b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.pdf Binary files differnew file mode 100644 index 0000000000..2519a7d2b1 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.pdf diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.tex b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.tex new file mode 100644 index 0000000000..d531b22dc3 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_berg.tex @@ -0,0 +1,154 @@ +%!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 ( 2,1.3) {to and from\\ Arnau}; + \node at (21,3.3) {{\LARGE Bf Berg}}; + \node[left,align=right] at (38,1.3) {to and from\\ Chamstadt}; + } + % coordinates + \coordinate (A) at ( 1.5, 0); + \coordinate (B) at (38.5, 0); + + \coordinate (E1) at ( 9 , 1); + \coordinate (E2) at (11 ,-1); + \coordinate (E3) at (25 , 2); + \coordinate (H1) at (15 , 2); + \coordinate (H2) at (26 , 1); + + \coordinate (Y1) at (14 , 0); + \coordinate (Y2) at (15 , 0); + \coordinate (Y3) at (14 , 1); + \coordinate (Y4) at (16 , 1); + \coordinate (Y5) at (27 , 0); + \coordinate (Y6) at (12.8,-1); + + \coordinate (S1) at ( 7 , 0); + \coordinate (S2) at (10 , 0); + \coordinate (S3) at (18 , 0); + \coordinate (S4) at (18 , 1); + \coordinate (S5) at (24 , 0); + \coordinate (S6) at (24 , 1); + \coordinate (S7) at (30 , 0); + \coordinate (S8) at (33 , 0); + + \coordinate (T1) at ( 6 , 0); + \coordinate (T2) at (10.2, 1); + \coordinate (T3) at (23 , 2); + \coordinate (T4) at (34 , 0); + + \coordinate (P1) at (21 , 0); + \coordinate (P2) at (21 , 1); + + \coordinate (HM) at (0,-1.85); + + { %% topology + % tracks + \maintrack (A) -- (B); + \maintrack (Y2) -- (Y4) -- (H2) -- (Y5); + \secondarytrack (E1) -- (Y4); + \secondarytrack (E2) -- ++( 2,0) -- (Y1); + \secondarytrack (Y3) -- (H1) -- (E3); + + % track numbers + \tracklabel at (11.7, 1) label (12); + \tracklabel at (11.7,-1) label (10); + \tracklabel at (21 , 2) label (3); + \tracklabel at (P2) label (2); + \tracklabel at (P1) label (1); + + % bufferstops + \bufferstop[backward] at (E1); + \bufferstop[backward] at (E2); + \bufferstop[forward] at (E3); + + % turnouts + \tikzset{every node/.style={fouling point}}; + \turnout[backward,branch=right] at (Y1) label (W1); + \turnout[forward ,branch=left ] at (Y2) label (W2); + \turnout[forward ,branch=left ] at (Y3) label (W3); + \turnout[backward,branch=right] at (Y4) label (W4); + \turnout[backward,branch=left ] at (Y5) label (W5); + \derailer[forward,branch=right] at (Y6) label (Gs6); + } + { %% traffic control + % signals + \distantsignal[forward] at (S1) label (Va); + + \signal[distant,route,forward] at (S2) label (A); + + \routesignal[backward] at (S3) label (P1); + \routesignal[backward] at (S4) label (P2); + + \routesignal[forward] at (S5) label (N1); + \routesignal[forward] at (S6) label (N2); + + \signal[distant,route,backward] at (S7) label (F); + + \distantsignal[backward] at (S8) label (Vf); + + % routes + \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 (12.3,-1) label (); + \clearingpoint[] at (12.8, 0) label (); + \clearingpoint[] at (13.4, 1) label (); + \clearingpoint[] at (14.9, 1) label (); + \coordinate (H3) at ($(Y2)!0.5!(Y4)$); % using tikz calc library + \clearingpoint[rotate=45] at (H3) label (); + \coordinate (H4) at ($(Y3)!0.8!(H1)$); % using tikz calc library + \clearingpoint[rotate=45] at (H4) label (); + \clearingpoint[] at (16 , 0) label (); + \clearingpoint[] at (18 , 1) label (); + \clearingpoint[] at (18 , 0) label (); + \clearingpoint[] at (24 , 1) label (); + \clearingpoint[] at (24 , 0) label (); + \clearingpoint[] at (26 , 0) label (); + \clearingpoint[] at (27.5, 0) label (); + \coordinate (H5) at ($(Y5)!0.8!(H2)$); % using tikz calc library + \clearingpoint[rotate=315] at (H5) label (); + \clearingpoint[] at (30 , 0) label (); + } + { %% vehicles + \train[run=normal,forward] at (T1) label (RB); + \train[run=fast,backward] at (T4) label (IC); + \parkedvehicles[length=3cm] at (T3) label (WG); + \parkedvehicles[length=1cm] at (T2) label (Tfz); + } + { %% constructions + % platforms + \platform[side=right] at (P2); + \platform[side=left ] at (P1); + } + { %% messures + % hectometer posts + \tikzset{hectometer base={(HM)},orientation=right}; + \hectometer[] at (S1) label ( 7.200); + \hectometer[] at (S2) label ( 8.200); + \hectometer[] at (12.8,-1) label ( 8.400); + \hectometer[] at (16 , 0) label ( 8.600); + \hectometer[] at (S3) label ( 8.700); + \hectometer[] at (19 , 0) label ( 8.750); + \hectometer[] at (23 , 0) label ( 9.000); + \hectometer[] at (S5) label ( 9.100); + \hectometer[] at (26 , 0) label ( 9.200); + \hectometer[] at (27.5, 0) label ( 9.300); + \hectometer[] at (S7) label ( 9.500); + \hectometer[] at (S8) label (10.500); + } + \end{tikzpicture} +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.pdf b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.pdf Binary files differnew file mode 100644 index 0000000000..7c5df6c682 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.pdf diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.tex b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.tex new file mode 100644 index 0000000000..8b92e57655 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-examples/station_chamstadt.tex @@ -0,0 +1,177 @@ +%!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}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf Binary files differnew file mode 100644 index 0000000000..3b74c49beb --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex new file mode 100644 index 0000000000..7ada4e00c3 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex @@ -0,0 +1,295 @@ +%!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[a4paper,landscape]{article} + +\usepackage[margin=0pt]{geometry} +\pagestyle{empty} + +\usepackage{tikz-trackschematic-documentation} + +\lstset{% + language = TeX,% + basicstyle = \bfseries\scriptsize\ttfamily,% + keywordstyle = \bfseries\color{black},% + commentstyle = \itshape\color{green},% + backgroundcolor = \color{white},% + showstringspaces = false,% + columns = fullflexible,% + breaklines = true,% + frame = none,% +}% + +\begin{document} + + \title{Snippets}\author{}\date{} + + \maketitle + \centering + + \begin{longtable}{|r|l|c|l|c|} + \hline + No. & Name & Symbol & Code & Sublibrary \\ + \endhead + \hline + \No & main track & \symbol{main_track.tikz} & \code{main_track.tikz} & \texttt{topology} \\ + \hline + \No & main line (double track) & \symbol{main_line.tikz} & \code{main_line.tikz} & \texttt{topology} \\ + \hline + \No & secondary track & \symbol{secondary_track.tikz} & \code{secondary_track.tikz} & \texttt{topology} \\ + \hline + \No & track number & \symbol{track_number.tikz} & \code{track_number.tikz} & \texttt{topology} \\ + \hline + \No & bufferstop (forward) & \symbol{bufferstop_forward.tikz} & \code{bufferstop_forward.tikz} & \texttt{topology} \\ + \hline + \No & bufferstop (backward) & \symbol{bufferstop_backward.tikz} & \code{bufferstop_backward.tikz} & \texttt{topology} \\ + \hline + \No & friction bufferstop (forward) & \symbol{friction_bufferstop_forward.tikz} & \code{friction_bufferstop_forward.tikz} & \texttt{topology} \\ + \hline + \No & friction bufferstop (backward) & \symbol{friction_bufferstop_backward.tikz} & \code{friction_bufferstop_backward.tikz} & \texttt{topology} \\ + \hline + \No & track closure & \symbol{track_closure.tikz} & \code{track_closure.tikz} & \texttt{topology} \\ + \hline + \No & turnout left (forward) & \symbol{turnout_left_forward.tikz} & \code{turnout_left_forward.tikz} & \texttt{topology} \\ + \hline + \No & turnout left (backward) & \symbol{turnout_left_backward.tikz} & \code{turnout_left_backward.tikz} & \texttt{topology} \\ + \hline + \No & turnout right (forward) & \symbol{turnout_right_forward.tikz} & \code{turnout_right_forward.tikz} & \texttt{topology} \\ + \hline + \No & turnout right (backward) & \symbol{turnout_right_backward.tikz} & \code{turnout_right_backward.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (forward)\\with fouling point indicator} + & \symbol{turnout_with_fouling_left_forward.tikz} & \code{turnout_with_fouling_left_forward.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (backward)\\with fouling point indicator} + & \symbol{turnout_with_fouling_left_backward.tikz} & \code{turnout_with_fouling_left_backward.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (forward)\\with fouling point indicator} + & \symbol{turnout_with_fouling_right_forward.tikz} & \code{turnout_with_fouling_right_forward.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (backward)\\with fouling point indicator} + & \symbol{turnout_with_fouling_right_backward.tikz} & \code{turnout_with_fouling_right_backward.tikz} & \texttt{topology} \\ + \hline + \No & double-slip turnout left & \symbol{double-slip_turnout_left.tikz} & \code{double-slip_turnout_left.tikz} & \texttt{topology} \\ + \hline + \No & double-slip turnout right & \symbol{double-slip_turnout_right.tikz} & \code{double-slip_turnout_right.tikz} & \texttt{topology} \\ + \hline + \No & diamond crossing left & \symbol{diamond_crossing_left.tikz} & \code{diamond_crossing_left.tikz} & \texttt{topology} \\ + \hline + \No & diamond crossing right & \symbol{diamond_crossing_right.tikz} & \code{diamond_crossing_right.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (forward)\\with points in right position} + & \symbol{turnout_left_forward_right_position.tikz} & \code{turnout_left_forward_right_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (forward)\\with points in left position} + & \symbol{turnout_left_forward_left_position.tikz} & \code{turnout_left_forward_left_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (forward)\\with moving points} + & \symbol{turnout_left_forward_moving_points.tikz} & \code{turnout_left_forward_moving_points.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (backward)\\with points in right position} + & \symbol{turnout_left_backward_right_position.tikz} & \code{turnout_left_backward_right_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (backward)\\with points in left position} + & \symbol{turnout_left_backward_left_position.tikz} & \code{turnout_left_backward_left_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (backward)\\with moving points} + & \symbol{turnout_left_backward_moving_points.tikz} & \code{turnout_left_backward_moving_points.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (forward)\\with points in right position} + & \symbol{turnout_right_forward_right_position.tikz} & \code{turnout_right_forward_right_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (forward)\\with points in left position} + & \symbol{turnout_right_forward_left_position.tikz} & \code{turnout_right_forward_left_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (forward)\\with moving points} + & \symbol{turnout_right_forward_moving_points.tikz} & \code{turnout_right_forward_moving_points.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (backward)\\with points in right position} + & \symbol{turnout_right_backward_right_position.tikz} & \code{turnout_right_backward_right_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (backward)\\with points in left position} + & \symbol{turnout_right_backward_left_position.tikz} & \code{turnout_right_backward_left_position.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (backward)\\with moving points} + & \symbol{turnout_right_backward_moving_points.tikz} & \code{turnout_right_backward_moving_points.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (forward)\\operated manually} + & \symbol{turnout_left_forward_manually.tikz} & \code{turnout_left_forward_manually.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (forward)\\operated manually} + & \symbol{turnout_right_forward_manually.tikz} & \code{turnout_right_forward_manually.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout left (backward)\\operated manually} + & \symbol{turnout_left_backward_manually.tikz} & \code{turnout_left_backward_manually.tikz} & \texttt{topology} \\ + \hline + \No & \parbox[c]{5cm}{turnout right (backward)\\operated manually} + & \symbol{turnout_right_backward_manually.tikz} & \code{turnout_right_backward_manually.tikz} & \texttt{topology} \\ + \hline + \No & derailer left (forward) & \symbol{derailer_left_forward.tikz} & \code{derailer_left_forward.tikz} & \texttt{topology} \\ + \hline + \No & derailer left (backward) & \symbol{derailer_left_backward.tikz} & \code{derailer_left_backward.tikz} & \texttt{topology} \\ + \hline + \No & derailer right (forward) & \symbol{derailer_right_forward.tikz} & \code{derailer_right_forward.tikz} & \texttt{topology} \\ + \hline + \No & derailer right (backward) & \symbol{derailer_right_backward.tikz} & \code{derailer_right_backward.tikz} & \texttt{topology} \\ + \hline + \No & vehicles (parked) & \symbol{parked_vehicles.tikz} & \code{parked_vehicles.tikz} & \texttt{vehicles} \\ + \hline + \No & vehicles with label (parked) & \symbol{parked_vehicles_with_label.tikz} & \code{parked_vehicles_with_label.tikz} & \texttt{vehicles} \\ + \hline + \No & vehicle (parked) & \symbol{parked_vehicle.tikz} & \code{parked_vehicle.tikz} & \texttt{vehicles} \\ + \hline + \No & \parbox[c]{4cm}{train in shunting mode\\(direction forward)} + & \symbol{train_shunt_mode_forward.tikz} & \code{train_shunt_mode_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & \parbox[c]{4cm}{train in shunting mode\\(direction backward)} + & \symbol{train_shunt_mode_backward.tikz} & \code{train_shunt_mode_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & train shunting (forward) & \symbol{train_shunting_forward.tikz} & \code{train_shunting_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & train shunting (backward) & \symbol{train_shunting_backward.tikz} & \code{train_shunting_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & train (direction forward) & \symbol{train_direction_forward.tikz} & \code{train_direction_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & train (direction backward) & \symbol{train_direction_backward.tikz} & \code{train_direction_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & train moving (forward) & \symbol{train_moving_forward.tikz} & \code{train_moving_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & train moving (backward) & \symbol{train_moving_backward.tikz} & \code{train_moving_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & train moving slow (forward) & \symbol{train_moving_slow_forward.tikz} & \code{train_moving_slow_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & train moving slow (backward) & \symbol{train_moving_slow_backward.tikz} & \code{train_moving_slow_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & train moving fast (forward) & \symbol{train_moving_fast_forward.tikz} & \code{train_moving_fast_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & train moving fast (backward) & \symbol{train_moving_fast_backward.tikz} & \code{train_moving_fast_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & train ghost (direction forward) & \symbol{train_ghost_direction_forward.tikz} & \code{train_ghost_direction_forward.tikz} & \texttt{vehicles} \\ + \hline + \No & train ghost (direction backward)& \symbol{train_ghost_direction_backward.tikz} & \code{train_ghost_direction_backward.tikz} & \texttt{vehicles} \\ + \hline + \No & \parbox[c]{4cm}{train operated automatic\\(direction forward)} + & \symbol{train_drive_automatic.tikz} & \code{train_drive_automatic.tikz} & \texttt{vehicles} \\ + \hline + \No & \parbox[c]{4cm}{train operated by human\\(direction forward)} + & \symbol{train_drive_human.tikz} & \code{train_drive_human.tikz} & \texttt{vehicles} \\ + \hline + \No & train running over a junction & \symbol{bend_train.tikz} & \code{bend_train.tikz} & \texttt{vehicles} \\ + \hline + \No & view point (forward) & \symbol{view_point_forward.tikz} & \code{view_point_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & view point (backward) & \symbol{view_point_backward.tikz} & \code{view_point_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & distant signal (forward) & \symbol{distant_signal_forward.tikz} & \code{distant_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4cm}{distant signal\\with speed indicator} + & \symbol{distant_speed_signal_forward.tikz} & \code{distant_speed_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & distant signal (backward) & \symbol{distant_signal_backward.tikz} & \code{distant_signal_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4cm}{distant signal\\with speed indicator} + & \symbol{distant_speed_signal_backward.tikz} & \code{distant_speed_signal_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & speed signal (forward) & \symbol{speed_signal_forward.tikz} & \code{speed_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & speed signal (backward) & \symbol{speed_signal_backward.tikz} & \code{speed_signal_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & block signal (forward) & \symbol{block_signal_forward.tikz} & \code{block_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & block signal (backward) & \symbol{block_signal_backward.tikz} & \code{block_signal_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & route signal (forward) & \symbol{route_signal_forward.tikz} & \code{route_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & route signal (backward) & \symbol{route_signal_backward.tikz} & \code{route_signal_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4cm}{combined signal\\(distant, block and route signal)} + & \symbol{combined_signal_forward.tikz} & \code{combined_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & shunt signal (forward) & \symbol{shunt_signal_forward.tikz} & \code{shunt_signal_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & shunt signal (backward) & \symbol{shunt_signal_backward.tikz} & \code{shunt_signal_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & shunt signal locked (forward) & \symbol{shunt_signal_forward_locked.tikz} & \code{shunt_signal_forward_locked.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & shunt signal locked (backward) & \symbol{shunt_signal_backward_locked.tikz} & \code{shunt_signal_backward_locked.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & shunt limit (forward) & \symbol{shunt_limit_forward.tikz} & \code{shunt_limit_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & shunt limit (backward) & \symbol{shunt_limit_backward.tikz} & \code{shunt_limit_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & block end marker (forward) & \symbol{block_end_marker_forward.tikz} & \code{block_end_marker_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & block end marker (backward) & \symbol{block_end_marker_backward.tikz} & \code{block_end_marker_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & route (forward \& backward) & \symbol{route.tikz} & \code{route.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & block clearing point (forward) & \symbol{block_clearing_point_forward.tikz} & \code{block_clearing_point_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & block clearing point (backward) & \symbol{block_clearing_point_backward.tikz} & \code{block_clearing_point_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & route clearing point (forward) & \symbol{route_clearing_point_forward.tikz} & \code{route_clearing_point_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & route clearing point (backward) & \symbol{route_clearing_point_backward.tikz} & \code{route_clearing_point_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & clearing point & \symbol{clearing_point.tikz} & \code{clearing_point.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & train berth sign (forward) & \symbol{train_berth_sign_forward.tikz} & \code{train_berth_sign_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & train berth sign (backward) & \symbol{train_berth_sign_backward.tikz} & \code{train_berth_sign_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & train berth & \symbol{train_berth.tikz} & \code{train_berth.tikz} & \parbox[c]{3cm}{\centering\texttt{trafficcontrol} \\ \& \\ \texttt{messures}} \\ + \hline + \No & transmitter (right \& left) & \symbol{transmitter.tikz} & \code{transmitter.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4.5cm}{transmitter (right)\\with signal} + & \symbol{transmitter_right_with_signal.tikz} & \code{transmitter_right_with_signal.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4.5cm}{transmitter (right \& left)\\ effective forward} + & \symbol{transmitter_forward.tikz} & \code{transmitter_forward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4.5cm}{transmitter (right \& left)\\ effective backward} + & \symbol{transmitter_backward.tikz} & \code{transmitter_backward.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & \parbox[c]{4.5cm}{transmitter (right \& left)\\ effective bidirectional} + & \symbol{transmitter_bidirectional.tikz} & \code{transmitter_bidirectional.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & loop transmitter & \symbol{loop_transmitter.tikz} & \code{loop_transmitter.tikz} & \texttt{trafficcontrol} \\ + \hline + \No & platform (left) & \symbol{platform_left.tikz} & \code{platform_left.tikz} & \texttt{constructions} \\ + \hline + \No & platform (right) & \symbol{platform_right.tikz} & \code{platform_right.tikz} & \texttt{constructions} \\ + \hline + \No & platform (middle) & \symbol{platform_middle.tikz} & \code{platform_middle.tikz} & \texttt{constructions} \\ + \hline + \No & level crossing (single track) & \symbol{level_crossing_single.tikz} & \code{level_crossing_single.tikz} & \texttt{constructions} \\ + \hline + \No & level crossing (double track) & \symbol{level_crossing_double.tikz} & \code{level_crossing_double.tikz} & \texttt{constructions} \\ + \hline + \No & \parbox[c]{5cm}{level crossing (double track)\\with full closure} + & \symbol{level_crossing_double_full_closure.tikz} & \code{level_crossing_double_full_closure.tikz} & \texttt{constructions} \\ + \hline + \No & bridge & \symbol{bridge.tikz} & \code{bridge.tikz} & \texttt{constructions} \\ + \hline + \No & \parbox[c]{5cm}{bridge\\with track beneath} + & \symbol{bridge_track_beneath.tikz} & \code{bridge_track_beneath.tikz} & \texttt{constructions} \\ + \hline + \No & hump & \symbol{hump.tikz} & \code{hump.tikz} & \texttt{constructions} \\ + \hline + \No & interlocking & \symbol{interlocking.tikz} & \code{interlocking.tikz} & \texttt{constructions} \\ + \hline + \No & train berth shape & \symbol{train_berth_shape.tikz} & \code{train_berth_shape.tikz} & \texttt{messures} \\ + \hline + \No & train berth shape bidirectional & \symbol{train_berth_shape_bidirectional.tikz} & \code{train_berth_shape_bidirectional.tikz} & \texttt{messures} \\ + \hline + \No & train berth with special shape & \symbol{train_berth_shape_special.tikz} & \code{train_berth_shape_special.tikz} & \texttt{messures} \\ + \hline + \No & track distance (in \si{\metre}) & \symbol{track_distance.tikz} & \code{track_distance.tikz} & \texttt{messures} \\ + \hline + \No & hectometer (in \si{\kilo\metre}) & \symbol{hectometer.tikz} & \code{hectometer.tikz} & \texttt{messures} \\ + \hline + \end{longtable} +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bend_train.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bend_train.tikz new file mode 100644 index 0000000000..29fe377119 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bend_train.tikz @@ -0,0 +1,25 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A1) at (0 ,-0.5); +\coordinate (Y1) at (2.5,-0.5); +\coordinate (B1) at (6 ,-0.5); +\coordinate (A2) at (0 , 0.5); +\coordinate (Y2) at (3.5, 0.5); +\coordinate (B2) at (6 , 0.5); +\coordinate (T) at (5 , 0.5); + +\maintrack (A1) -- (B1); +\maintrack (A2) -- (B2); +\maintrack (Y1) -- (Y2); +\turnout[forward ,branch=left ] at (Y1) label (Y1); +\turnout[backward,branch=right] at (Y2) label (Y2); + +\train[ + run=slow,forward, + bend left at={(Y1)},bend right at={(Y2)}, + shift label={(-2,-0.5)} % relative coordinate +] at (T) label (T1);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_clearing_point_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_clearing_point_backward.tikz new file mode 100644 index 0000000000..453886acc5 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_clearing_point_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (CP) at (3,0); + +\maintrack (A) -- (B); + +\blockclearing[backward] at (CP) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_clearing_point_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_clearing_point_forward.tikz new file mode 100644 index 0000000000..d8e69759c3 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_clearing_point_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (CP) at (3,0); + +\maintrack (A) -- (B); + +\blockclearing[forward] at (CP) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_backward.tikz new file mode 100644 index 0000000000..9e36abeadb --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\movementauthority[backward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_forward.tikz new file mode 100644 index 0000000000..81ec5fd65a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\movementauthority[forward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_backward.tikz new file mode 100644 index 0000000000..9c6c4728df --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\blocksignal[backward] at (S) label (2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_forward.tikz new file mode 100644 index 0000000000..c3dfda7068 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_signal_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\blocksignal[forward] at (S) label (1);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge.tikz new file mode 100644 index 0000000000..5abb9293d3 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (X) at (3,0); + +% order is important +\bridge[] at (X); % first +\maintrack (A) -- (B); % secound
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge_track_beneath.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge_track_beneath.tikz new file mode 100644 index 0000000000..1682b4b8c3 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bridge_track_beneath.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. +\coordinate (A1) at (0, 0); +\coordinate (B1) at (6, 0); +\coordinate (A2) at (2,-1); +\coordinate (B2) at (4, 1); +\coordinate (X) at (3,0); + +% order is important +\maintrack (A2) -- (B2); % first +\bridge[shift left=0.25cm,shift right=-0.25cm] at (X); % secound +\maintrack (A1) -- (B1); % third
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_backward.tikz new file mode 100644 index 0000000000..1423cd7c7b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_backward.tikz @@ -0,0 +1,11 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\bufferstop[backward] at (A);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_forward.tikz new file mode 100644 index 0000000000..13c6f1267e --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_forward.tikz @@ -0,0 +1,11 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (3,0); + +\maintrack (A) -- (B); +\bufferstop[forward] at (B);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/clearing_point.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/clearing_point.tikz new file mode 100644 index 0000000000..3a6f97922a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/clearing_point.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (CP) at (3,0); + +\maintrack (A) -- (B); + +\clearingpoint[backward] at (CP) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/combined_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/combined_signal_forward.tikz new file mode 100644 index 0000000000..ca1ae294e3 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/combined_signal_forward.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\signal[distant,block,route,forward,distant speed=8,speed=8] + at (S) label (K1); +% replace the 8 with desired speed or remove tikz key
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_backward.tikz new file mode 100644 index 0000000000..1f7b05a266 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\derailer[backward,branch=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_forward.tikz new file mode 100644 index 0000000000..bdb78bcd69 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_left_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\derailer[forward,branch=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_backward.tikz new file mode 100644 index 0000000000..854c9232dd --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\derailer[backward,branch=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_forward.tikz new file mode 100644 index 0000000000..4f69e50327 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/derailer_right_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\derailer[forward,branch=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_left.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_left.tikz new file mode 100644 index 0000000000..64779a75e9 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_left.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++( 1, 1); +\maintrack (Y) -- ++(-1,-1); + +\crossing[branch=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_right.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_right.tikz new file mode 100644 index 0000000000..7ab523e9e0 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/diamond_crossing_right.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++( 1,-1); +\maintrack (Y) -- ++(-1, 1); + +\crossing[branch=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_signal_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_signal_backward.tikz new file mode 100644 index 0000000000..4a5ff7935b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_signal_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\distantsignal[backward] at (S) label (d2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_signal_forward.tikz new file mode 100644 index 0000000000..93b4a789a8 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_signal_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\distantsignal[forward] at (S) label (d1);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_backward.tikz new file mode 100644 index 0000000000..0f8c179ccd --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_backward.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\distantsignal[backward,distant speed={8}] at (S) label (); +% replace the 8 with desired speed or remove tikz key
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_forward.tikz new file mode 100644 index 0000000000..7d816ae4db --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/distant_speed_signal_forward.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\distantsignal[forward,distant speed={8}] at (S) label (); +% replace the 8 with desired speed or remove tikz key
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_left.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_left.tikz new file mode 100644 index 0000000000..623bcdd650 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_left.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++( 1, 1); +\maintrack (Y) -- ++(-1,-1); + +\slipturnout[branch=left] at (Y) label (ab)(cd);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_right.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_right.tikz new file mode 100644 index 0000000000..adf5b30ca2 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_right.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++( 1,-1); +\maintrack (Y) -- ++(-1, 1); + +\slipturnout[branch=right] at (Y) label (ab)(cd);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_backward.tikz new file mode 100644 index 0000000000..e1bbbef14b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_backward.tikz @@ -0,0 +1,11 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\bufferstop[backward,friction=.5] at (A);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_forward.tikz new file mode 100644 index 0000000000..a16d755cde --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/friction_bufferstop_forward.tikz @@ -0,0 +1,11 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (3,0); + +\maintrack (A) -- (B); +\bufferstop[forward,friction=.5] at (B);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hectometer.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hectometer.tikz new file mode 100644 index 0000000000..c78deee355 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hectometer.tikz @@ -0,0 +1,20 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (X1) at (3,0); +\coordinate (X2) at (3.5,0); +\coordinate (B) at (6,0); + +\coordinate (hb) at (0,-2); + +\maintrack (A) -- (B); + +\tikzset{hectometer base={(hb)},orientation=right} +\hectometer[] at (A) mileage (0.000); +\hectometer[] at (X1) mileage (4.000); +\hectometer[shift label={(0.3,0)}] at (X2) mileage (4.500); +\hectometer[] at (B) mileage (6.000);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hump.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hump.tikz new file mode 100644 index 0000000000..cfa61e65ac --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/hump.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (H) at (3,0); + +\secondarytrack (A) -- (B); +\hump at (H);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/interlocking.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/interlocking.tikz new file mode 100644 index 0000000000..dacf709a65 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/interlocking.tikz @@ -0,0 +1,9 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (I) at (3,0); + +\interlocking at (I);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double.tikz new file mode 100644 index 0000000000..3f275c36e1 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double.tikz @@ -0,0 +1,17 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A1) at (0,-0.5); +\coordinate (B1) at (6,-0.5); +\coordinate (A2) at (0, 0.5); +\coordinate (B2) at (6, 0.5); +\coordinate (X1) at (3, 0.5); +\coordinate (X2) at (3,-0.5); + +\maintrack (A1) -- (B1); +\maintrack (A2) -- (B2); +\levelcrossing[barrier=semi,side=left] at (X1); +\levelcrossing[barrier=semi,side=right] at (X2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double_full_closure.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double_full_closure.tikz new file mode 100644 index 0000000000..7ad136b2d2 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_double_full_closure.tikz @@ -0,0 +1,17 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A1) at (0,-0.5); +\coordinate (B1) at (6,-0.5); +\coordinate (A2) at (0, 0.5); +\coordinate (B2) at (6, 0.5); +\coordinate (X1) at (3, 0.5); +\coordinate (X2) at (3,-0.5); + +\maintrack (A1) -- (B1); +\maintrack (A2) -- (B2); +\levelcrossing[barrier=full,side=left] at (X1); +\levelcrossing[barrier=full,side=right] at (X2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_single.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_single.tikz new file mode 100644 index 0000000000..298320b38a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/level_crossing_single.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (X) at (3,0); + +\maintrack (A) -- (B); +\levelcrossing[barrier=semi] at (X);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/loop_transmitter.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/loop_transmitter.tikz new file mode 100644 index 0000000000..981d519bd1 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/loop_transmitter.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\maintrack (A) -- (B); + +\transmitter[type=loop] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_line.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_line.tikz new file mode 100644 index 0000000000..02a9d0b067 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_line.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A1) at (0,-0.5); +\coordinate (B1) at (6,-0.5); +\coordinate (A2) at (0, 0.5); +\coordinate (B2) at (6, 0.5); + +\maintrack (A1) -- (B1); +\maintrack (A2) -- (B2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_track.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_track.tikz new file mode 100644 index 0000000000..755cfdd83a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/main_track.tikz @@ -0,0 +1,10 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/messure_line.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/messure_line.tikz new file mode 100644 index 0000000000..7e63a87a91 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/messure_line.tikz @@ -0,0 +1,10 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); + +\messureline (A) -- (B);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicle.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicle.tikz new file mode 100644 index 0000000000..314fe724e7 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicle.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\secondarytrack (A) -- (B); +\parkedvehicles[length=0.5cm] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicles.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicles.tikz new file mode 100644 index 0000000000..f751f5bc5a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicles.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\secondarytrack (A) -- (B); +\parkedvehicles[] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicles_with_label.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicles_with_label.tikz new file mode 100644 index 0000000000..794e4fa266 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/parked_vehicles_with_label.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\secondarytrack (A) -- (B); +\parkedvehicles[] at (T) label (label);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_left.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_left.tikz new file mode 100644 index 0000000000..b3ef189a7b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_left.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (P) at (3,0); + +\maintrack (A) -- (B); +\platform[side=left] at (P);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_middle.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_middle.tikz new file mode 100644 index 0000000000..c591dcfc0f --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_middle.tikz @@ -0,0 +1,17 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A1) at (0,-0.5); +\coordinate (B1) at (6,-0.5); +\coordinate (A2) at (0, 0.5); +\coordinate (B2) at (6, 0.5); +\coordinate (P1) at (3, 0.5); +\coordinate (P2) at (3,-0.5); + +\maintrack (A1) -- (B1); +\maintrack (A2) -- (B2); +\platform[side=right] at (P1); +\platform[side=left] at (P2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_right.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_right.tikz new file mode 100644 index 0000000000..b40d142378 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/platform_right.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (P) at (3,0); + +\maintrack (A) -- (B); +\platform[side=right] at (P);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route.tikz new file mode 100644 index 0000000000..4c42069c7e --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (R1) at (2,0); +\coordinate (R2) at (4,0); + +\maintrack (A) -- (B); +\route[backward] at (R1); +\route[forward] at (R2);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_backward.tikz new file mode 100644 index 0000000000..21d0b0c39c --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (CP) at (3,0); + +\maintrack (A) -- (B); + +\routeclearing[backward] at (CP) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_forward.tikz new file mode 100644 index 0000000000..49874bdf0a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_clearing_point_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (CP) at (3,0); + +\maintrack (A) -- (B); + +\routeclearing[forward] at (CP) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_backward.tikz new file mode 100644 index 0000000000..70a3fd2e9a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_backward.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\routesignal[backward,speed={8}] at (S) label (F); +% replace the 8 with desired speed or remove tikz key
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_forward.tikz new file mode 100644 index 0000000000..7c4dd78873 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/route_signal_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\routesignal[forward] at (S) label (R1);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/secondary_track.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/secondary_track.tikz new file mode 100644 index 0000000000..d633164fb0 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/secondary_track.tikz @@ -0,0 +1,10 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_limit_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_limit_backward.tikz new file mode 100644 index 0000000000..b7204cee0c --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_limit_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\shuntlimit[backward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_limit_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_limit_forward.tikz new file mode 100644 index 0000000000..b63720c12e --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_limit_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\shuntlimit[forward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward.tikz new file mode 100644 index 0000000000..d773c432f9 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\shuntsignal[backward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward_locked.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward_locked.tikz new file mode 100644 index 0000000000..10d7b00c48 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_backward_locked.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\shuntsignal[backward,locked] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward.tikz new file mode 100644 index 0000000000..cd1b46405f --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\shuntsignal[forward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward_locked.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward_locked.tikz new file mode 100644 index 0000000000..8e9ced8dd8 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/shunt_signal_forward_locked.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\shuntsignal[forward,locked] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_backward.tikz new file mode 100644 index 0000000000..4840c01fea --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_backward.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\speedsignal[backward,speed={8}] at (S) label (); +% replace the 8 with desired speed
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_forward.tikz new file mode 100644 index 0000000000..8d526913f9 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/speed_signal_forward.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\speedsignal[forward,speed={8}] at (S) label (); +% replace the 8 with desired speed
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_closure.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_closure.tikz new file mode 100644 index 0000000000..075421ddbe --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_closure.tikz @@ -0,0 +1,11 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (3,0); + +\maintrack (A) -- (B); +\trackclosure at (B);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_distance.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_distance.tikz new file mode 100644 index 0000000000..7346aaacec --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_distance.tikz @@ -0,0 +1,16 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A1) at (0,-0.5); +\coordinate (X1) at (3,-0.5); +\coordinate (B1) at (6,-0.5); +\coordinate (A2) at (0, 0.5); +\coordinate (X2) at (3, 0.5); +\coordinate (B2) at (6, 0.5); + +\maintrack (A1) -- (B1); +\maintrack (A2) -- (B2); +\trackdistance between (X2) and (X1) distance (4,50);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_number.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_number.tikz new file mode 100644 index 0000000000..3b932c5299 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/track_number.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (X) at (3,0); +\coordinate (B) at (6,0); + +% order is important +\maintrack (A) -- (B); % first +\tracklabel at (X) label (No.); % secound
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth.tikz new file mode 100644 index 0000000000..b3478800f2 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth.tikz @@ -0,0 +1,18 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (H) at (3,0); +\coordinate (S1) at (1,0); +\coordinate (S2) at (5,0); + +\maintrack (A) -- (B); + +\berth[forward ] at (H) length (); +\berth[backward] at (H) length (); +\berthsignal[backward] at (S1) label (); +\berthsignal[forward ] at (S2) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape.tikz new file mode 100644 index 0000000000..5b5de32340 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (H) at (3,0); + +\maintrack (A) -- (B); + +\berth[forward] at (H) length (\SI{750}{\metre});
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_bidirectional.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_bidirectional.tikz new file mode 100644 index 0000000000..f45ca96435 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_bidirectional.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (H) at (3,0); + +\maintrack (A) -- (B); + +\berth[bidirectional] at (H) length (\SI{750}{\metre});
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_special.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_special.tikz new file mode 100644 index 0000000000..a3688d3c29 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_shape_special.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (H1) at (3.25,0); +\coordinate (H2) at (3,0); + +\maintrack (A) -- (B); + +\berth[forward ,length=3.0cm] at (H1) length (\SI{550}{\metre}); +\berth[backward,length=3.5cm] at (H2) length (\SI{650}{\metre});
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_backward.tikz new file mode 100644 index 0000000000..ea69565904 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\berthsignal[backward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_forward.tikz new file mode 100644 index 0000000000..27054b70b5 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_berth_sign_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\berthsignal[forward] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_backward.tikz new file mode 100644 index 0000000000..895053619e --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\train[backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_forward.tikz new file mode 100644 index 0000000000..01443549fb --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_direction_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_automatic.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_automatic.tikz new file mode 100644 index 0000000000..c959c4ba1f --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_automatic.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[operation=automatic,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_human.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_human.tikz new file mode 100644 index 0000000000..ab17f936fd --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_drive_human.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[operation=manual,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_backward.tikz new file mode 100644 index 0000000000..f3cedbbcef --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\train[ghost,backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_forward.tikz new file mode 100644 index 0000000000..c2f76492c6 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_ghost_direction_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[ghost,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_backward.tikz new file mode 100644 index 0000000000..c943950de4 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\train[run=normal,backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_fast_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_fast_backward.tikz new file mode 100644 index 0000000000..c6ee7d4e89 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_fast_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\train[run=fast,backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_fast_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_fast_forward.tikz new file mode 100644 index 0000000000..ead1431d1e --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_fast_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[run=fast,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_forward.tikz new file mode 100644 index 0000000000..261f5c3255 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[run=normal,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_slow_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_slow_backward.tikz new file mode 100644 index 0000000000..0ca90c0f56 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_slow_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\train[run=slow,backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_slow_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_slow_forward.tikz new file mode 100644 index 0000000000..2458e40c24 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_moving_slow_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\train[run=slow,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunt_mode_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunt_mode_backward.tikz new file mode 100644 index 0000000000..26ae8004c6 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunt_mode_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\shunting[backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunt_mode_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunt_mode_forward.tikz new file mode 100644 index 0000000000..c2ff464f62 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunt_mode_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\shunting[forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunting_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunting_backward.tikz new file mode 100644 index 0000000000..2b68ab9603 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunting_backward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (1,0); + +\maintrack (A) -- (B); +\shunting[movement,backward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunting_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunting_forward.tikz new file mode 100644 index 0000000000..2193e2d0c7 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/train_shunting_forward.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (5,0); + +\maintrack (A) -- (B); +\shunting[movement,forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter.tikz new file mode 100644 index 0000000000..f0df5630f1 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T1) at (2,0); +\coordinate (T2) at (4,0); + +\maintrack (A) -- (B); + +\balise[] at (T1) label (); +\balise[position=left] at (T2) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_backward.tikz new file mode 100644 index 0000000000..37b97cf00d --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_backward.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T1) at (2,0); +\coordinate (T2) at (4,0); + +\maintrack (A) -- (B); + +\balise[backward] at (T1) label (); +\balise[backward,position=left] at (T2) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_bidirectional.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_bidirectional.tikz new file mode 100644 index 0000000000..a4fc0706e8 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_bidirectional.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T1) at (2,0); +\coordinate (T2) at (4,0); + +\maintrack (A) -- (B); + +\balise[bidirectional] at (T1) label (); +\balise[bidirectional,position=left] at (T2) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_forward.tikz new file mode 100644 index 0000000000..4fcb47b3b8 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_forward.tikz @@ -0,0 +1,15 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T1) at (2,0); +\coordinate (T2) at (4,0); + +\maintrack (A) -- (B); + +\balise[forward] at (T1) label (); +\balise[forward,position=left] at (T2) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right.tikz new file mode 100644 index 0000000000..e75bf48832 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\maintrack (A) -- (B); + +\balise[] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_bidirectional.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_bidirectional.tikz new file mode 100644 index 0000000000..02d2ef7dc9 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_bidirectional.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\maintrack (A) -- (B); + +\balise[bidirectional] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_forward.tikz new file mode 100644 index 0000000000..fdfc7bf488 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (T) at (3,0); + +\maintrack (A) -- (B); + +\balise[forward] at (T) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_with_signal.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_with_signal.tikz new file mode 100644 index 0000000000..97e150b47a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/transmitter_right_with_signal.tikz @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\routesignal[forward] at (S) label (); +\balise[] at (S) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward.tikz new file mode 100644 index 0000000000..4a429ae64a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,1); +\turnout[backward,branch=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_left_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_left_position.tikz new file mode 100644 index 0000000000..dc694f5286 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_left_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,1); +\turnout[backward,branch=left,points=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_manually.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_manually.tikz new file mode 100644 index 0000000000..aa237b24bd --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_manually.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\secondarytrack (Y) -- ++(-1,1); +\turnout[backward,branch=left,operation=manual] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_moving_points.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_moving_points.tikz new file mode 100644 index 0000000000..04f199359f --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_moving_points.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,1); +\turnout[backward,branch=left,points=moving] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_right_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_right_position.tikz new file mode 100644 index 0000000000..42c9e993ce --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_backward_right_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,1); +\turnout[backward,branch=left,points=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward.tikz new file mode 100644 index 0000000000..51c45f80af --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,1); +\turnout[forward,branch=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_left_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_left_position.tikz new file mode 100644 index 0000000000..eb9bd4d371 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_left_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,1); +\turnout[forward,branch=left,points=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_manually.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_manually.tikz new file mode 100644 index 0000000000..68406b987a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_manually.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\secondarytrack (Y) -- ++(1,1); +\turnout[forward,branch=left,operation=manual] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_moving_points.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_moving_points.tikz new file mode 100644 index 0000000000..56edd14a26 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_moving_points.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,1); +\turnout[forward,branch=left,points=moving] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_right_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_right_position.tikz new file mode 100644 index 0000000000..91be83b543 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_left_forward_right_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,1); +\turnout[forward,branch=left,points=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward.tikz new file mode 100644 index 0000000000..09270f5836 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,-1); +\turnout[backward,branch=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_left_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_left_position.tikz new file mode 100644 index 0000000000..f081b13786 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_left_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,-1); +\turnout[backward,branch=right,points=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_manually.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_manually.tikz new file mode 100644 index 0000000000..e43ae4be65 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_manually.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\secondarytrack (Y) -- ++(-1,-1); +\turnout[backward,branch=right,operation=manual] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_moving_points.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_moving_points.tikz new file mode 100644 index 0000000000..f91d92f94f --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_moving_points.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,-1); +\turnout[backward,branch=right,points=moving] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_right_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_right_position.tikz new file mode 100644 index 0000000000..72cae3cfd1 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_backward_right_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,-1); +\turnout[backward,branch=right,points=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward.tikz new file mode 100644 index 0000000000..8cc9014199 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,-1); +\turnout[forward,branch=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_left_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_left_position.tikz new file mode 100644 index 0000000000..cf48f77cc4 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_left_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,-1); +\turnout[forward,branch=right,points=left] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_manually.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_manually.tikz new file mode 100644 index 0000000000..3c02bda222 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_manually.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\secondarytrack (A) -- (B); +\secondarytrack (Y) -- ++(1,-1); +\turnout[forward,branch=right,operation=manual] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_moving_points.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_moving_points.tikz new file mode 100644 index 0000000000..787a48d5f5 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_moving_points.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,-1); +\turnout[forward,branch=right,points=moving] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_right_position.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_right_position.tikz new file mode 100644 index 0000000000..f46c799608 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_right_forward_right_position.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,-1); +\turnout[forward,branch=right,points=right] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_backward.tikz new file mode 100644 index 0000000000..ef63a63c6f --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,1); +\turnout[backward,branch=left,fouling point] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_forward.tikz new file mode 100644 index 0000000000..396e0333d6 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_left_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,1); +\turnout[forward,branch=left,fouling point] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_backward.tikz new file mode 100644 index 0000000000..50c5b94884 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(-1,-1); +\turnout[backward,branch=right,fouling point] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_forward.tikz new file mode 100644 index 0000000000..3c954fb9f1 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/turnout_with_fouling_right_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (Y) at (3,0); +\coordinate (B) at (6,0); + +\maintrack (A) -- (B); +\maintrack (Y) -- ++(1,-1); +\turnout[forward,branch=right,fouling point] at (Y) label ();
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_backward.tikz new file mode 100644 index 0000000000..112e7c636b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_backward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\viewpoint[backward] at (S);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_forward.tikz new file mode 100644 index 0000000000..1a7bff56aa --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/view_point_forward.tikz @@ -0,0 +1,13 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../snippets.tex + +% 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. + +\coordinate (A) at (0,0); +\coordinate (B) at (6,0); +\coordinate (S) at (3,0); + +\maintrack (A) -- (B); + +\viewpoint[forward] at (S);
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf Binary files differnew file mode 100644 index 0000000000..53dda09131 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex new file mode 100644 index 0000000000..73d81f0b8a --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex @@ -0,0 +1,1082 @@ +%% symbol library for TikZ track schematics +% +% Copyright 2018,2019,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[ + paper=a4, + % version=3.25, + pagesize=pdftex, + twoside=false, + toc=listof, + BCOR=0pt, + DIV=15, +]{scrartcl} + +\usepackage{tikz-trackschematic-documentation} + +%%%%%% AUTHORS list %%%%%%%%%% + +%\newcommand{\initials}{fullname} +\newcommand{\MS}{Martin Scheidt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -------[ PDF Informations ]--------- +\hypersetup{% + pdftitle={tikz/trackschematic}, + pdfsubject={A tikz toolbox for track schematics}, + pdfauthor={Martin Scheidt}, + pdfkeywords={latex, tikz, library, railway, track, layout} +} + +\begin{document} + +\title{\tikz\node[scale=1.2]{\color{gray}\Huge\sffamily \{\textcolor{black}{Ti\textcolor{orange}{\emph{k}}Z}-\textcolor{blue}{trackschematic}\}};} +\subtitle{A Ti\emph{k}Z library for track schematics} +\author{\vhListAllAuthorsLong} +\date{Version \vhCurrentVersion~ from \vhCurrentDate} + +\maketitle + +\begin{multicols}{2} + \tableofcontents +\end{multicols} +\cleardoublepage + +\section{Introduction}\label{sec:intro} + + \subsection[About]{About tikz-trackschematic} + + The Ti\emph{k}Z-\emph{trackschematic} library is a toolbox of symbols geared primarily towards creating track schematic for either research or educational purposes. + It provides a Ti\emph{k}Z frontend to some of the symbols which maybe needed to describe situations and layouts in railway operation. + The library is divided into four sublibraries: + \begin{itemize*}[label={}] + \item \texttt{topology}, + \item \texttt{trafficcontrol}, + \item \texttt{vehicles}, + \item \texttt{constructions}, and + \item \texttt{messures}. + \end{itemize*} + + \subsection{Acknowledgement} + + This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 826347. + + \subsection{Requirements}\label{sec:require} + + The library uses Ti\emph{k}Z and it is based the following packages: + \begin{itemize*}[label={}] + \item \texttt{tikz}, + \item \texttt{lmodern}, + \item \texttt{xcolor}, and + \item \texttt{etoolbox}. + \end{itemize*} + Further more it uses the following Ti\emph{k}Z libraries: + \begin{itemize*}[label={}] + \item \texttt{calc}, + \item \texttt{intersections}, + \item \texttt{patterns}, and + \item \texttt{arrows.meta}. + \end{itemize*} + + + \subsection{License} + + Copyright (c) 2018 - 2020, \MS. + 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 (\href{https://www.tldrlegal.com/l/isc}{ISC license}). + + \subsection{Alternatives} + + Apart from this library, there is also a \href{https://tu-dresden.de/bu/verkehr/ibv/vst/die-professur/mitarb/ulrich-maschek/signalschablone}{Signalschablone} with german (Deutsche Bahn) symbols for MS Visio. + + +% \newpage +\section{Usage}\label{sec:use} + \subsection{A complete minimal example} + + The command \texttt{\textbackslash usetikzlibrary\{trackschematic\}} will load the library; place it somewhere in your preamble. + Here is a complete working minimal example which will produce a single PDF file with the figure on the right:\\ + \begin{minipage}[c]{0.51\textwidth} + \centering + \begin{lstlisting}[gobble=8] + \documentclass[tikz]{standalone} + + % loading the library + \usetikzlibrary{trackschematic} + + \begin{document} + \begin{tikzpicture} + + % draw a track + \maintrack (0,0) -- (6,0); + + % place a train on the track + \train[forward] at (5,0) label (); + + \end{tikzpicture} + \end{document} + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.45\textwidth} + \centering + \begin{tikzpicture} + \path (-0.2,-1.45) rectangle (6.2,1.45); + \coordinate (A) at (0,0); + \coordinate (T) at (5,0); + \coordinate (B) at (6,0); + \maintrack (A) -- (B); + \train[forward] at (T) label (); + \end{tikzpicture} + \end{minipage} + + \subsection{Placement}\label{sec:placement} + + To place symbols in a track schematic, they need to placed and oriented correctly. + The placement ist done through the given Ti\emph{k}Z coordinate. + There are a few assumaptions made about the placement: + \begin{enumerate} + \item Parallel tracks are drawn at a distance of 1 cm (which is the base unit of Ti\emph{k}Z). + \item Tracks are only drawn at an angle of $n \cdot 45^{\circ}$. + \end{enumerate} + + \subsection{Orientation system}\label{sec:orientationsystem} + + The orientation is controlled via given Ti\emph{k}Z options or pgfkey. + The orientation options/pgfkeys are named in relation to orientation-based coordinates, which inhibate thier meaning from reading left to right beeing \texttt{forward} and relate \texttt{left}/\texttt{right} to that movement. + \begin{center} + \begin{tikzpicture}[font=\ttfamily] + \draw[<->] (-0.5,0) node[left] {backward} -- (0.5,0) node[right] {forward}; + \draw[<->] (0,-0.5) node[below] {right} -- (0,0.5) node[above] {left}; + \end{tikzpicture} + \end{center} + + The main option/pgfkey is the \texttt{face} option to control in which direction an object will face. + The key can take one of the following two values: + \begin{itemize*}[label={}] + \item \texttt{forward}, and + \item \texttt{backward}. + \end{itemize*} + \begin{minipage}[c]{0.68\textwidth} + \begin{lstlisting}[gobble=6] + + \train[face=forward ] at (coordinate) label (); + + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.30\textwidth} + \tikz{\train[face=forward] at (5,0) label ();} + \end{minipage} + \begin{minipage}[c]{0.68\textwidth} + \begin{lstlisting}[gobble=6] + + \train[face=backward] at (coordinate) label (); + + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.30\textwidth} + \tikz{\train[face=backward] at (1,0) label ();} + \end{minipage} + As a shortcut you may also just give the option \texttt{forward} or \texttt{backward} without the \texttt{face=} in front of it. + + If you have objects which branch either to the left or the right you have to give the \texttt{branch} option which takes one of the following two values: + \begin{itemize*}[label={}] + \item \texttt{left}, and + \item \texttt{right}. + \end{itemize*}\\ + \begin{minipage}[c]{0.68\textwidth} + \begin{lstlisting}[gobble=6] + + \turnout[forward ,branch=left ] at (coordinate) label (); + + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.30\textwidth} + \tikz{\maintrack (0,0)--(4,0);\maintrack (2,0)--++(0.5,0.5);\turnout[forward,branch=left] at (2,0) label ();} + \end{minipage} + \begin{minipage}[c]{0.68\textwidth} + \begin{lstlisting}[gobble=6] + + \turnout[forward ,branch=right] at (coordinate) label (); + + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.30\textwidth} + \tikz{\maintrack (0,0)--(4,0);\maintrack (2,0)--++(0.5,-0.5);\turnout[forward,branch=right] at (2,0) label ();} + \end{minipage} + \begin{minipage}[c]{0.68\textwidth} + \begin{lstlisting}[gobble=6] + + \turnout[backward,branch=left ] at (coordinate) label (); + + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.30\textwidth} + \tikz{\maintrack (0,0)--(4,0);\maintrack (2,0)--++(-0.5,0.5);\turnout[backward,branch=left] at (2,0) label ();} + \end{minipage} + \begin{minipage}[c]{0.68\textwidth} + \begin{lstlisting}[gobble=6] + + \turnout[backward,branch=right] at (coordinate) label (); + + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.30\textwidth} + \tikz{\maintrack (0,0)--(4,0);\maintrack (2,0)--++(-0.5,-0.5);\turnout[backward,branch=right] at (2,0) label ();} + \end{minipage} + There is no shortcut and the key \texttt{branch=} must be given contrary to the key \texttt{face=}. + + \subsection{Left- and right-hand traffic}\label{sec:traffic} + + The traffic practice to divide bidirectional traffic has impact mostly on traffic control. + The default traffic practice for this library ist right-hand traffic. + You can change it either globally or locally with the key \texttt{traffic practice=left}. + There is also the alias \texttt{position} for single local entries. + \begin{minipage}[c]{0.65\textwidth} + \begin{lstlisting}[gobble=8] + \documentclass[tikz]{standalone} + + % load the library + \usetikzlibrary{trackschematic} + + \begin{document} + \begin{tikzpicture} + % set the traffic practice + \tikzset{traffic practice=left} + + \maintrack (0,1) -- (5,1); + \maintrack (0,0) -- (5,0); + \routesignal[forward] at (2,1) label (left); + \routesignal[forward,position=right] at (2,0) label (right); + \end{tikzpicture} + \end{document} + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.34\textwidth} + \begin{tikzpicture} + \tikzset{traffic practice=left} + \path (-0.2,-1.6) rectangle (5.2,2.6); + \coordinate (A1) at (0,1); + \coordinate (S1) at (2,1); + \coordinate (B1) at (5,1); + \maintrack (A1) -- ( B1); + \coordinate (A2) at (0,0); + \coordinate (S2) at (2,0); + \coordinate (B2) at (5,0); + \maintrack (A2) -- ( B2); + \routesignal[forward] at (S1) label (left); + \routesignal[forward,position=right] at (S2) label (right); + \end{tikzpicture} + \end{minipage} + + \subsection{Colors: background and foreground}\label{sec:colors} + + The two main colors \texttt{white} and \texttt{black} are set for the \texttt{background} and \texttt{foreground} keys by default. + If you want to change them, provide a new value for the keys. + For example like this:\\ + \begin{minipage}[c]{0.65\textwidth} + \begin{lstlisting}[gobble=8] + \documentclass[tikz]{standalone} + + % load the library + \usetikzlibrary{trackschematic} + + \begin{document} + \begin{tikzpicture} + % set the colors + \tikzset{background=lightgray,foreground=violet} + + \maintrack (0,0) -- (6,0); + \train[forward] at (5,0) label (grey train); + \end{tikzpicture} + \end{document} + \end{lstlisting} + \end{minipage} + \hfil + \begin{minipage}[c]{0.34\textwidth} + \begin{tikzpicture} + \tikzset{background=lightgray,foreground=violet} + \path (-0.2,-1.6) rectangle (5.2,1.6); + \coordinate (A) at (0 ,0); + \coordinate (T) at (4.5,0); + \coordinate (B) at (5 ,0); + \maintrack (A) -- (B); + \train[forward] at (T) label (grey train); + \end{tikzpicture} + \end{minipage} + + +\section{Provided Symbols and their commands} + + Each sublibrary provides different symbols. The following section will go through each symbol their command and options. + % for aperance see the snippet document + + \subsection{Topology} + + \subsubsection{Tracks}\label{sec:track} + + Drawing a track follows the same pricipal as drawing a line in Ti\emph{k}Z. + There are two generell optionss of track with different commands: + \begin{itemize*}[label={}] + \item \texttt{main tracks}, and + \item \texttt{secondary tracks}. + \end{itemize*} + + \symboldescription{Main track} + \symbol{main_track.tikz} + \begin{lstlisting}[gobble=10] + \maintrack (coord1) -- (coord2); + \maintrack (coord1) -- (coord2) -- (coord3) -- etc.; + \end{lstlisting} + No \texttt{options} available.\\ + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \path[draw=foreground,line width=2pt] (coord1) -- (coord2); + \end{lstlisting} + Beware of the placement assumption by the library (see Section \ref{sec:placement}). + + + \symboldescription{Secondary track} + \symbol{secondary_track.tikz} + \begin{lstlisting}[gobble=10] + \secondarytrack (coord1) -- (coord2); + \secondarytrack (coord1) -- (coord2) -- (coord3) -- etc.; + \end{lstlisting} + For the secondary track you may also use the following alias: + \begin{lstlisting}[gobble=10] + \sidetrack (coord1) -- (coord2); + \end{lstlisting} + No \texttt{options} available.\\ + The command is equivalent to: + \begin{lstlisting}[gobble=10] + \path[draw=foreground,line width=0.7pt] (coord1) -- (coord2); + \end{lstlisting} + Beware of the placement assumption by the library (see Section \ref{sec:placement}). + + \symboldescription{Track number or track label} + \symbol{track_number.tikz} + \begin{lstlisting}[gobble=10] + \tracklabel at (coord) label (number); + \end{lstlisting} + No \texttt{options} available.\\ + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \node[fill=background,text=foreground] at (coord) {number}; + \end{lstlisting} + + \symboldescription{Buffer stops} + \symbol{bufferstop_forward.tikz} + \symbol{friction_bufferstop_forward.tikz} + \begin{lstlisting}[gobble=10] + \bufferstop[options] at (coord); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{friction=\textit{length unit}} (optional) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Track closures} + \symbol{track_closure.tikz} + \begin{lstlisting}[gobble=10] + \trackclosure at (coord); + \end{lstlisting} + No \texttt{options} available.\\ + + \subsubsection{Turnouts and similar}\label{sec:turnout} + \symboldescription{Turnouts} + \symbol{turnout_with_fouling_left_forward.tikz} + \symbol{turnout_left_forward_manually.tikz} + % \symbol{turnout_left_forward_right_position.tikz} + \begin{lstlisting}[gobble=10] + \turnout[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{branch=left} or \texttt{branch=right} (mandatory) + \item \texttt{operation=manual} (optional) % \texttt{operation=remote} (default) + \item \texttt{fouling point} (optional) + \item \texttt{points=left} or \texttt{points=right} (optional) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Diamond crossings} + \symbol{diamond_crossing_left.tikz} + \begin{lstlisting}[gobble=10] + \crossing[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{branch=left} or \texttt{branch=right} (mandatory) + \item \texttt{fouling point} (optional) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Slip switchs or slip turnouts} + \symbol{double-slip_turnout_left.tikz} + \begin{lstlisting}[gobble=10] + \slipturnout[options] at (coord) label (name1)(name2); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{branch=left} or \texttt{branch=right} (mandatory) + \item \texttt{slip=double} (default), \texttt{slip=none}, \texttt{slip=left} or \texttt{slip=right} (mandatory) + \item \texttt{operation=manual} (optional) % \texttt{operation=remote} (default) + \item \texttt{fouling point} (optional) + \item \texttt{forward points=left} or \texttt{forward points=right} (optional) + \item \texttt{backward points=left} or \texttt{backward points=right} (optional) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Derailers} + \symbol{derailer_left_forward.tikz} + \begin{lstlisting}[gobble=10] + \derailer[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{branch=left} or \texttt{branch=right} (mandatory) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \subsection{Vehicles}\label{sec:vehicles} + + \symboldescription{Parked vehicles}\label{sec:parked} + \symbol{parked_vehicles.tikz} + \begin{lstlisting}[gobble=8] + \parkedvehicles[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{length=\textit{length unit}} (optional, default 4cm) + \item \texttt{label at=\{\textit{(label-coord)}\}} (optional, default: \textit{center}) + \item \texttt{label align=left} or \texttt{label align=right} (optional, default: center) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \item \texttt{background=\textit{color}} (optional, default: \texttt{white}) + \end{itemize} + The value for \textit{(label-coord)} is relative to \textit{(coord)}. + An absolute \textit{(label-coord)} can be specified with the Ti\emph{k}Z \textbackslash coordinate command. + + \symboldescription{Shunting movements}\label{sec:shunting} + % \symbol{train_shunt_mode_forward.tikz} + \symbol{train_shunting_forward.tikz} + \begin{lstlisting}[gobble=8] + \shunting[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{movement} (optional) + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{length=\textit{length unit}} (optional, default 4cm) + \item \texttt{operation=manual} or \texttt{operation=automatic} (optional) % \texttt{operation=undefined} (default) + \item \texttt{bend left at=\{\textit{(bend-coord)}\}} (optional, default: \textit{none}) + \item \texttt{bend right at=\{\textit{(bend-coord)}\}} (optional, default: \textit{none}) + \item \texttt{label at=\{\textit{(label-coord)}\}} (optional, default: \textit{center}) + \item \texttt{label align=left} or \texttt{label align=right} (optional, default: center) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \item \texttt{background=\textit{color}} (optional, default: \texttt{white}) + \end{itemize} + The value for \textit{(label-coord)} and \textit{(bend-coord)} is relative to \textit{(coord)}. + An absolute \textit{(label-coord)} or \textit{(bend-coord)} can be specified with the Ti\emph{k}Z \textbackslash coordinate command. + + \symboldescription{Train runs}\label{sec:train} + \symbol{train_moving_fast_forward.tikz} + \symbol{train_ghost_direction_forward.tikz} + \begin{lstlisting}[gobble=8] + \train[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{run=slow}, \texttt{run=normal} or \texttt{run=fast} (optional) + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{length=\textit{length unit}} (optional, default 4cm) + \item \texttt{operation=manual} or \texttt{operation=automatic} (optional) % \texttt{operation=undefined} (default) + \item \texttt{ghost} (optional) + \item \texttt{bend left at=\{\textit{(bend-coord)}\}} (optional, default: \textit{none}) + \item \texttt{bend right at=\{\textit{(bend-coord)}\}} (optional, default: \textit{none}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{label align=left} or \texttt{label align=right} (optional, default: center) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \item \texttt{background=\textit{color}} (optional, default: \texttt{white}) + \end{itemize} + The value for \textit{(label-coord)} and \textit{(bend-coord)} is relative to \textit{(coord)}. + An absolute \textit{(label-coord)} or \textit{(bend-coord)} can be specified with the Ti\emph{k}Z \textbackslash coordinate command. + + \subsection{Traffic control} + \subsubsection{Signals}\label{sec:signals} + + \symboldescription{Generic signal command} + \begin{lstlisting}[gobble=10] + \signal[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item at least one of the following: + \begin{enumerate*}[label={}] + \item \texttt{distant}, + \item \texttt{speed type}, + \item \texttt{block}, + \item \texttt{route}, + \item \texttt{shunt limit}, + \item \texttt{shunting} and/or + \item \texttt{berth} + \end{enumerate*} + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{speed=\textit{value}} (optional) + \item \texttt{distant speed=\textit{value}} (optional) + \item \texttt{locked=false} (default) or \texttt{locked=true} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Distant signal} + \symbol{distant_signal_forward.tikz} + \begin{lstlisting}[gobble=10] + \distantsignal[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{distant speed=\textit{value}} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[distant,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Speed signal/sign} + \symbol{speed_signal_forward.tikz} + \begin{lstlisting}[gobble=10] + \speedsignal[options] at (coord) label (name); + \end{lstlisting} + For the speed signal you may also use the following alias: + \begin{lstlisting}[gobble=10] + \speedsign[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{speed=\textit{value}} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[speed type,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Block signal} + \symbol{block_signal_forward.tikz} + \begin{lstlisting}[gobble=10] + \blocksignal[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{speed=\textit{value}} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[block,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Route signal} + \symbol{route_signal_forward.tikz} + \begin{lstlisting}[gobble=10] + \routesignal[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{speed=\textit{value}} (optional) + \item \texttt{locked=false} (default) or \texttt{locked=true} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[route,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Shunting signal} + \symbol{shunt_signal_forward.tikz} + \begin{lstlisting}[gobble=10] + \shuntsignal[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{locked=false} (default) or \texttt{locked=true} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[shunting,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Shunt limit} + \symbol{shunt_limit_forward.tikz} + \begin{lstlisting}[gobble=10] + \shuntlimit[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[shunt limit,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Berth signal/sign} + \symbol{train_berth_sign_forward.tikz} + \begin{lstlisting}[gobble=10] + \berthsignal[options] at (coord) label (name); + \end{lstlisting} + For the speed signal you may also use the following alias: + \begin{lstlisting}[gobble=10] + \berthsign[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \signal[berth,options] at (coord) label (name); + \end{lstlisting} + + \subsubsection{Clearing points}\label{sec:clearingpoints} + + \symboldescription{Generic clearing point} + \begin{lstlisting}[gobble=10] + \clearingpoint[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item at least one of the following: + \begin{enumerate*}[label={}] + \item \texttt{standard}, + \item \texttt{block} and/or + \item \texttt{route} + \end{enumerate*} + \item \texttt{forward} (default) or \texttt{backward} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Standard clearing point} + \symbol{clearing_point.tikz} + \begin{lstlisting}[gobble=10] + \standardclearing[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} (default) or \texttt{backward} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \clearingpoint[standard,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Block clearing point} + \symbol{block_clearing_point_forward.tikz} + \begin{lstlisting}[gobble=10] + \blockclearing[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} (default) or \texttt{backward} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \clearingpoint[block,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Route clearing point} + \symbol{route_clearing_point_forward.tikz} + \begin{lstlisting}[gobble=10] + \routeclearing[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} (default) or \texttt{backward} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \clearingpoint[route,options] at (coord) label (name); + \end{lstlisting} + + \subsubsection{Transmitters}\label{sec:transmitters} + + \symboldescription{Generic transmitter command} + \begin{lstlisting}[gobble=10] + \transmitter[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{type=balise} or \texttt{type=loop} (mandatory) + \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Balise} + \symbol{transmitter_right_bidirectional.tikz} + \begin{lstlisting}[gobble=10] + \balise[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (optional) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \transmitter[type=balise,options] at (coord) label (name); + \end{lstlisting} + + \symboldescription{Loop} + \symbol{loop_transmitter.tikz} + \begin{lstlisting}[gobble=10] + \trackloop[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \transmitter[type=loop,options] at (coord) label (name); + \end{lstlisting} + + \subsubsection{Miscellaneous}\label{sec:misc} + + \symboldescription{View point} + \symbol{view_point_forward.tikz} + \begin{lstlisting}[gobble=10] + \viewpoint[options] at (coord); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{End of movement authority} + \symbol{block_end_marker_forward.tikz} + \begin{lstlisting}[gobble=10] + \movementauthority[options] at (coord) label (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (mandatory) + \item \texttt{direction arrow=true} (default) or \texttt{direction arrow=false} (mandatory) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Route} + \symbol{route.tikz} + \begin{lstlisting}[gobble=10] + \route[options] at (coord); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward} or \texttt{backward} (mandatory) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \subsection{Constructions}\label{sec:constructions} + + \symboldescription{Platform} + \symbol{platform_left.tikz} + \begin{lstlisting}[gobble=8] + \platform[options] at (coord); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{side=left}, \texttt{side=right} or \texttt{side=both} (mandatory) + \item \texttt{length=\textit{length unit}} (optional, default 4cm) + \item \texttt{width=\textit{length unit}} (optional, default 0.5cm) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Level crossings} + \symbol{level_crossing_single.tikz} + \begin{lstlisting}[gobble=8] + \levelcrossing[options] at (coord); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{barrier=none} (default), \texttt{barrier=semi} or \texttt{barrier=full} (optional) + \item \texttt{side=both} (default), \texttt{side=left} or \texttt{side=right} (optional) + \item \texttt{road width=\textit{length unit}} (optional, default 0.4cm) + \item \texttt{width=\textit{length unit}} (optional, default 0.5cm) + \item \texttt{no road} (optional) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Bridge} + \symbol{bridge.tikz} + \begin{lstlisting}[gobble=8] + \bridge[options] at (coord); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{length=\textit{length unit}} (optional, default 4cm) + \item \texttt{width=\textit{length unit}} (optional, default 0.5cm) + \item \texttt{shift left=\textit{length unit}} (optional, default 0cm) + \item \texttt{shift right=\textit{length unit}} (optional, default 0cm) + \item \texttt{side=both} (default), \texttt{side=left} or \texttt{side=right} (optional) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \item \texttt{background=\textit{color}} (optional, default: \texttt{white}) + \item \texttt{no background} (optional) + \end{itemize} + + \symboldescription{Interlocking} + \symbol{interlocking.tikz} + \begin{lstlisting}[gobble=8] + \interlocking at (coord); + \end{lstlisting} + No \texttt{options} available.\\ + + \symboldescription{Hump} + \symbol{hump.tikz} + \begin{lstlisting}[gobble=8] + \hump at (coord); + \end{lstlisting} + No \texttt{options} available.\\ + + \subsection{Messures}\label{sec:messures} + + \symboldescription{Track distance} + \symbol{track_distance.tikz} + \begin{lstlisting}[gobble=10] + \trackdistance between (coord1) and (coord2) distance (value); + \end{lstlisting} + No \texttt{options} available. + + \symboldescription{Train berth} + \symbol{train_berth_shape.tikz} + \begin{lstlisting}[gobble=10] + \berth[options] at (coord) length (value); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (mandatory) + \item \texttt{length=\textit{length unit}} (optional, default 4cm) + \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice}) + \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black}) + \end{itemize} + + \symboldescription{Hectometer} + \symbol{hectometer.tikz} + \begin{lstlisting}[gobble=10] + \hectometer[options] at (coord) mileage (name); + \end{lstlisting} + values for \texttt{options} (comma seperated): + \begin{itemize}[label={}] + \item \texttt{hectometer base=\{\textit{(base-coord)}\}} (mandatory) + \item \texttt{orientation=left} or \texttt{orientation=right} (mandatory) + \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0)) + \item \texttt{hectometer color=\textit{color}} (optional, default: \texttt{foreground!50!background}) + \end{itemize} + The value for \textit{(base-coord)} and \textit{(label-coord)} is relative to \textit{(coord)}. + An absolute \textit{(base-coord)} or \textit{(label-coord)} can be specified with the Ti\emph{k}Z \textbackslash coordinate command. + Specify a commen hectometer base and orientation if you have to place multipile hectometers, i.e. with: + \texttt{\textbackslash tikzset\{hectometer base=\{(base-coord)\},orientation=right\};}. + + \symboldescription{Messure line} + \symbol{messure_line.tikz} + \begin{lstlisting}[gobble=10] + \messureline (coord1) -- (coord2); + \messureline (coord1) -- (coord2) -- (coord3) -- etc.; + \end{lstlisting} + No \texttt{options} available.\\ + This command is equivalent to: + \begin{lstlisting}[gobble=10] + \path[draw=foreground!50!background,dashed,shorten <=0.75cm,shorten >=0.75cm] (coord1) -- (coord2); + \end{lstlisting} + +\clearpage +\appendix +\section{Symbology} + + \begin{longtable}{|r|l|c|c|} + \hline + No. & Name & Symbol & See section \\ + \endhead + \hline + \No & main track & \symbol{main_track.tikz} & \ref{sec:track} \\ + \hline + \No & secondary track & \symbol{secondary_track.tikz} & \ref{sec:track} \\ + \hline + \No & track number & \symbol{track_number.tikz} & \ref{sec:track} \\ + \hline + \No & bufferstop & \symbol{bufferstop_forward.tikz} & \ref{sec:track} \\ + \hline + \No & friction bufferstop & \symbol{friction_bufferstop_forward.tikz} & \ref{sec:track} \\ + \hline + \No & track closure & \symbol{track_closure.tikz} & \ref{sec:track} \\ + \hline + \No & turnout & \symbol{turnout_left_forward.tikz} & \ref{sec:turnout} \\ + \hline + \No & \parbox[c]{5cm}{turnout\\with fouling point indicator} + & \symbol{turnout_with_fouling_left_forward.tikz} & \ref{sec:turnout} \\ + \hline + \No & \parbox[c]{5cm}{turnout\\operated manually} + & \symbol{turnout_left_forward_manually.tikz} & \ref{sec:turnout} \\ + \hline + \No & double-slip turnout & \symbol{double-slip_turnout_left.tikz} & \ref{sec:turnout} \\ + \hline + \No & diamond crossing & \symbol{diamond_crossing_left.tikz} & \ref{sec:turnout} \\ + \hline + \No & \parbox[c]{5cm}{turnout\\with points in right position} + & \symbol{turnout_left_forward_right_position.tikz} & \ref{sec:turnout} \\ + \hline + \No & \parbox[c]{5cm}{turnout\\with points in left position} + & \symbol{turnout_left_forward_left_position.tikz} & \ref{sec:turnout} \\ + \hline + \No & \parbox[c]{5cm}{turnout\\with moving points} + & \symbol{turnout_left_forward_moving_points.tikz} & \ref{sec:turnout} \\ + \hline + \No & derailer & \symbol{derailer_left_forward.tikz} & \ref{sec:turnout} \\ + \hline + \No & parked vehicles & \symbol{parked_vehicles.tikz} & \ref{sec:parked} \\ + \hline + \No & train in shunting mode & \symbol{train_shunt_mode_forward.tikz} & \ref{sec:shunting} \\ + \hline + \No & train shunting & \symbol{train_shunting_forward.tikz} & \ref{sec:shunting} \\ + \hline + \No & train & \symbol{train_direction_forward.tikz} & \ref{sec:train} \\ + \hline + \No & train moving slow & \symbol{train_moving_slow_forward.tikz} & \ref{sec:train} \\ + \hline + \No & train moving & \symbol{train_moving_forward.tikz} & \ref{sec:train} \\ + \hline + \No & train moving fast & \symbol{train_moving_fast_forward.tikz} & \ref{sec:train} \\ + \hline + \No & train ghost & \symbol{train_ghost_direction_forward.tikz} & \ref{sec:train} \\ + \hline + \No & train operated automatic & \symbol{train_drive_automatic.tikz} & \ref{sec:train} \\ + \hline + \No & train operated by human & \symbol{train_drive_human.tikz} & \ref{sec:train} \\ + \hline + \No & distant signal & \symbol{distant_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & \parbox[c]{4cm}{distant signal\\with speed indicator} + & \symbol{distant_speed_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & speed signal & \symbol{speed_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & block signal & \symbol{block_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & route signal & \symbol{route_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & \parbox[c]{4cm}{combined signal\\(distant, block and route signal)} + & \symbol{combined_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & shunt signal & \symbol{shunt_signal_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & shunt signal locked & \symbol{shunt_signal_forward_locked.tikz} & \ref{sec:signals} \\ + \hline + \No & shunt limit & \symbol{shunt_limit_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & train berth sign & \symbol{train_berth_sign_forward.tikz} & \ref{sec:signals} \\ + \hline + \No & clearing point & \symbol{clearing_point.tikz} & \ref{sec:clearingpoints} \\ + \hline + \No & block clearing point & \symbol{block_clearing_point_forward.tikz} & \ref{sec:clearingpoints} \\ + \hline + \No & route clearing point & \symbol{route_clearing_point_forward.tikz} & \ref{sec:clearingpoints} \\ + \hline + \No & transmitter & \symbol{transmitter_right.tikz} & \ref{sec:transmitters} \\ + \hline + \No & transmitter effective forward & \symbol{transmitter_right_forward.tikz} & \ref{sec:transmitters} \\ + \hline + \No & transmitter bidirectional & \symbol{transmitter_right_bidirectional.tikz} & \ref{sec:transmitters} \\ + \hline + \No & loop transmitter & \symbol{loop_transmitter.tikz} & \ref{sec:transmitters} \\ + \hline + \No & view point & \symbol{view_point_forward.tikz} & \ref{sec:misc} \\ + \hline + \No & \parbox[c]{4.5cm}{block end marker\\(end of movement authority)} + & \symbol{block_end_marker_forward.tikz} & \ref{sec:misc} \\ + \hline + \No & route & \symbol{route.tikz} & \ref{sec:misc} \\ + \hline + \No & platform & \symbol{platform_left.tikz} & \ref{sec:constructions} \\ + \hline + \No & level crossing & \symbol{level_crossing_single.tikz} & \ref{sec:constructions} \\ + \hline + \No & bridge & \symbol{bridge.tikz} & \ref{sec:constructions} \\ + \hline + \No & hump & \symbol{hump.tikz} & \ref{sec:constructions} \\ + \hline + \No & interlocking & \symbol{interlocking.tikz} & \ref{sec:constructions} \\ + \hline + \No & track distance (in \si{\metre}) & \symbol{track_distance.tikz} & \ref{sec:messures} \\ + \hline + \No & train berth shape & \symbol{train_berth_shape.tikz} & \ref{sec:messures} \\ + \hline + \No & hectometer & \symbol{hectometer.tikz} & \ref{sec:messures} \\ + \hline + \No & Messure line & \symbol{messure_line.tikz} & \ref{sec:messures} \\ + \hline + \end{longtable} + +\input{versionhistory.tex} +\vhListAllAuthorsLongWithAbbrev + +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.code.tex new file mode 100644 index 0000000000..41e831304b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.code.tex @@ -0,0 +1,23 @@ +%% symbol library for TikZ track schematics +% +% 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. +% +\ProvidesFileRCS{tikzlibrarytrackschematic.code.tex}% +% +\RequirePackage{tikz,etoolbox,lmodern}% +% +%%%%%%%%%%%%%%% +% symbol definitions +%%%%%%%%%%%%%%% +\usetikzlibrary{trackschematic.topology}% +\usetikzlibrary{trackschematic.trafficcontrol}% +\usetikzlibrary{trackschematic.vehicles}% +\usetikzlibrary{trackschematic.constructions}% +\usetikzlibrary{trackschematic.messures}% +% \usetikzlibrary{trackschematic.i18n}% +% +%%%%%%%%%%%%%%% +\endinput% +%
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.constructions.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.constructions.code.tex new file mode 100644 index 0000000000..a8713de511 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.constructions.code.tex @@ -0,0 +1,389 @@ +%% symbol library for TikZ track schematics +% +% 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. +% +\ProvidesFileRCS{tikzlibrarytrackschematic.construction.code.tex}% +% +%%%%%%%%%%%%%%% +% global settings +%%%%%%%%%%%%%%% +\RequirePackage{tikz,etoolbox,lmodern}% +\usetikzlibrary{calc}% +% +\ifdeflength{\objectlength}{}{% Not defined, so define it! + \newlength{\objectlength}% +}% +\setlength{\objectlength}{4cm}% +% +%%%%%%%%%%%%%%% +% tikz keys for multiple use +%%%%%%%%%%%%%%% +\pgfkeys{% + /tikz/trackschematic/.is family,% + /tikz/trackschematic/.cd,% + %% color foreground + foreground/.store in=\foreground,% + foreground=black,% DEFAULT + /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% + %% color background + background/.store in=\background,% + background=white,% DEFAULT + /tikz/background/.forward to=/tikz/trackschematic/background,% + %% length + length/.store in=\objectlength,% default length 4cm + /tikz/length/.forward to=/tikz/trackschematic/length,% + %% traffic practice + traffic practice/.value required,% left OR right + traffic practice/.store in=\trafficpractice,% + traffic practice=right,% DEFAULT + /tikz/traffic practice/.forward to=/tikz/trackschematic/traffic practice,% + /tikz/position/.forward to=/tikz/trackschematic/traffic practice,% +}% +\newlength{\objectwidth}\setlength{\objectwidth}{0.5cm}% +\pgfkeys{% + /tikz/trackschematic/constructions/.is family,% + /tikz/trackschematic/constructions/.cd,% + %% side + side/.value required,% left, right OR both + side/.store in=\side,% left, right OR both + /tikz/side/.forward to=/tikz/trackschematic/constructions/side,% + %% width + width/.store in=\objectwidth,% default width 0.5cm + /tikz/width/.forward to=/tikz/trackschematic/constructions/width,% +}% +% +%%%%%%%%%%%%%%% +% symbol platform +%%%%%%%%%%%%%%% +% +%% command +\newcommand\platform{}% just for safety +\def\platform[#1]#2(#3){% \platform[options] at (coord); + \pic[#1] at (#3) {platform={#2}}% symbol +}% +%% symbol definition +\tikzset{% + pics/platform/.default=,% + pics/platform/.style args={#1}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + % + \ifdefstring{\side}{left}{% side + \pgfmathsetmacro{\sidefactor}{1}% + }{% + \ifdefstring{\side}{right}{% side + \pgfmathsetmacro{\sidefactor}{-1}% + }{% + \ifdefstring{\side}{both}{% side + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/constructions/side}{“left“, “right“ OR “both“ as key required}}% + }% + }% + }% end \ifdefstring{\side} + %% platform shape + \tikzset{every path/.style={draw=\foreground,line width=0.75pt}};% + \ifdefstring{\side}{both}{% double side + \path ($-0.5*(\objectlength,0) + (0, \objectwidth)$) --% + ($-0.5*(\objectlength,0) + (0, 0.2)$) --% + ($ 0.5*(\objectlength,0) + (0, 0.2)$) --% + ($ 0.5*(\objectlength,0) + (0, \objectwidth)$);% part 1 + \path ($-0.5*(\objectlength,0) + (0, 0.3)$) --% + ($ 0.5*(\objectlength,0) + (0, 0.3)$);% part 2 + \path ($-0.5*(\objectlength,0) + (0,-\objectwidth)$) --% + ($-0.5*(\objectlength,0) + (0,-0.2)$) --% + ($ 0.5*(\objectlength,0) + (0,-0.2)$) --% + ($ 0.5*(\objectlength,0) + (0,-\objectwidth)$);% part 3 + \path ($-0.5*(\objectlength,0) + (0,-0.3)$) --% + ($ 0.5*(\objectlength,0) + (0,-0.3)$);% part 4 + }{% single side + \path ($-0.5*(\objectlength,0) + \sidefactor*(0,\objectwidth)$) --% + ($-0.5*(\objectlength,0) + \sidefactor*(0,0.2)$) --% + ($ 0.5*(\objectlength,0) + \sidefactor*(0,0.2)$) --% + ($ 0.5*(\objectlength,0) + \sidefactor*(0,\objectwidth)$);% part 1 + \path ($-0.5*(\objectlength,0) + \sidefactor*(0,0.3)$) --% + ($ 0.5*(\objectlength,0) + \sidefactor*(0,0.3)$);% part 2 + }% + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol level crossing +%%%%%%%%%%%%%%% +% +%% command +\newcommand\levelcrossing{}% just for safety +\def\levelcrossing[#1]#2(#3){% \levelcrossing[options] at (coord); + \pic[side=both,#1] at (#3) {level_crossing={#2}}% symbol +}% +%% tikz keys +\newlength{\roadwidth}\setlength{\roadwidth}{0.4cm}% +\newtoggle{show_road}\settoggle{show_road}{true}% +\pgfkeys{% + /tikz/trackschematic/constructions/level crossing/.is family,% + /tikz/trackschematic/constructions/level crossing/.cd,% + %% barrier + barrier/.store in=\barrier,% full, semi OR none + barrier=none,% DEFAULT + /tikz/barrier/.forward to=/tikz/trackschematic/constructions/level crossing/barrier,% + /tikz/barrier side/.forward to=/tikz/trackschematic/constructions/side,% + %% show road + no road/.value forbidden,% + no road/.code={\settoggle{show_road}{false}},% + /tikz/no road/.forward to=/tikz/trackschematic/constructions/level crossing/no road,% + %% road width + road width/.store in=\roadwidth,% default width 0.4cm + /tikz/road width/.forward to=/tikz/trackschematic/constructions/level crossing/road width,% +}% +%% symbol definition +\tikzset{% + pics/level_crossing/.default=,% + pics/level_crossing/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + %% symbol + \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \iftoggle{show_road}{% true + \path ($0.5*(-\roadwidth,0) + (0,-0.1)$) --% + ++($(0,-\objectwidth)$);% road part 1 + \path ($0.5*( \roadwidth,0) + (0,-0.1)$) --% + ++($(0,-\objectwidth)$);% road part 2 + \path ($0.5*(-\roadwidth,0) + (0, 0.1)$) --% + ++($(0, \objectwidth)$);% road part 3 + \path ($0.5*( \roadwidth,0) + (0, 0.1)$) --% + ++($(0, \objectwidth)$);% road part 4 + }{}% END \iftoggle{show_road} + \ifdefstring{\barrier}{full}{% full barrier + \ifdefstring{\side}{both}{% + \filldraw[\foreground]% left barrier part 1 + ($(-0.5\roadwidth,0)+(-0.2,0)+(0,0.35)$) circle (0.05);% + \filldraw[\foreground]% left barrier part 2 + ($( 0.5\roadwidth,0)+( 0.2,0)+(0,0.35)$) circle (0.05);% + \path ($(-0.5\roadwidth,0)+(-0.2,0)+(0,0.35)$) --% + ++($( 0.45\roadwidth,0)+( 0.2,0)$);% left barrier part 3 + \path ($( 0.5\roadwidth,0)+( 0.2,0)+(0,0.35)$) --% + ++($(-0.45\roadwidth,0)+(-0.2,0)$);% left barrier part 4 + % + \filldraw[\foreground]% right barrier part 1 + ($( 0.5\roadwidth,0)+( 0.2,0)+(0,-0.35)$) circle (0.05);% + \filldraw[\foreground]% right barrier part 2 + ($(-0.5\roadwidth,0)+(-0.2,0)+(0,-0.35)$) circle (0.05);% + \path ($( 0.5\roadwidth,0)+( 0.2,0)+(0,-0.35)$) --% + ++($(-0.45\roadwidth,0)+(-0.2,0)$);% right barrier part 3 + \path ($(-0.5\roadwidth,0)+(-0.2,0)+(0,-0.35)$) --% + ++($( 0.45\roadwidth,0)+( 0.2,0)$);% right barrier part 4 + }{% + \ifdefstring{\side}{left}{% + \filldraw[\foreground]% left barrier part 1 + ($(-0.5\roadwidth,0)+(-0.2,0)+(0,0.35)$) circle (0.05);% + \filldraw[\foreground]% left barrier part 2 + ($( 0.5\roadwidth,0)+( 0.2,0)+(0,0.35)$) circle (0.05);% + \path ($(-0.5\roadwidth,0)+(-0.2,0)+(0,0.35)$) --% + ++($( 0.45\roadwidth,0)+( 0.2,0)$);% left barrier part 3 + \path ($( 0.5\roadwidth,0)+( 0.2,0)+(0,0.35)$) --% + ++($(-0.45\roadwidth,0)+(-0.2,0)$);% left barrier part 4 + }{% + \ifdefstring{\side}{right}{% + \filldraw[\foreground]% right barrier part 1 + ($( 0.5\roadwidth,0)+( 0.2,0)+(0,-0.35)$) circle (0.05);% + \filldraw[\foreground]% right barrier part 2 + ($(-0.5\roadwidth,0)+(-0.2,0)+(0,-0.35)$) circle (0.05);% + \path ($( 0.5\roadwidth,0)+( 0.2,0)+(0,-0.35)$) --% + ++($(-0.45\roadwidth,0)+(-0.2,0)$);% right barrier part 3 + \path ($(-0.5\roadwidth,0)+(-0.2,0)+(0,-0.35)$) --% + ++($( 0.45\roadwidth,0)+( 0.2,0)$);% right barrier part 4 + }{%% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/constructions/side}{“left“, “right“ OR “both“ as key required}}% + }% END \ifdefstring{\side}{right} + }% END \ifdefstring{\side}{left} + }% END \ifdefstring{\side}{both} + }{% + \ifdefstring{\barrier}{semi}{% semi barrier + \ifdefstring{\side}{both}{% + \filldraw[\foreground]% left barrier part 1 + ($\trafficfactor*(-0.5\roadwidth,0)+\trafficfactor*(-0.2,0)+(0,0.35)$) circle (0.05);% + \path ($\trafficfactor*(-0.5\roadwidth,0)+\trafficfactor*(-0.2,0)+(0,0.35)$) --% + ++($\trafficfactor*(0.5\roadwidth,0)+\trafficfactor*(0.2,0)$);% left barrier part 2 + % + \filldraw[\foreground]% right barrier part 1 + ($\trafficfactor*(0.5\roadwidth,0)+\trafficfactor*(0.2,0)+(0,-0.35)$) circle (0.05);% + \path ($\trafficfactor*(0.5\roadwidth,0)+\trafficfactor*(0.2,0)+(0,-0.35)$) --% + ++($\trafficfactor*(-0.5\roadwidth,0)+\trafficfactor*(-0.2,0)$);% right barrier part 2 + }{% + \ifdefstring{\side}{left}{% + \filldraw[\foreground]% left barrier part 1 + ($\trafficfactor*(-0.5\roadwidth,0)+\trafficfactor*(-0.2,0)+(0,0.35)$) circle (0.05);% + \path ($\trafficfactor*(-0.5\roadwidth,0)+\trafficfactor*(-0.2,0)+(0,0.35)$) --% + ++($\trafficfactor*(0.5\roadwidth,0)+\trafficfactor*(0.2,0)$);% left barrier part 2 + }{% + \ifdefstring{\side}{right}{% + \filldraw[\foreground]% right barrier part 1 + ($\trafficfactor*(0.5\roadwidth,0)+\trafficfactor*(0.2,0)+(0,-0.35)$) circle (0.05);% + \path ($\trafficfactor*(0.5\roadwidth,0)+\trafficfactor*(0.2,0)+(0,-0.35)$) --% + ++($\trafficfactor*(-0.5\roadwidth,0)+\trafficfactor*(-0.2,0)$);% right barrier part 2 + }{%% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/constructions/side}{“left“, “right“ OR “both“ as key required}}% + }% END \ifdefstring{\side}{right} + }% END \ifdefstring{\side}{left} + }% END \ifdefstring{\side}{both} + }{% + \ifdefstring{\barrier}{none}{% no barriers + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/constructions/level crossing/barrier}{“full“, “semi“ OR “none“ as key required}}% + }% + }% END \ifdefstring{\barrier}{semi} + }% END \ifdefstring{\barrier}{full} + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol bridge +%%%%%%%%%%%%%%% +% +%% command +\newcommand\bridge{}% just for safety +\def\bridge[#1]#2(#3){% \bridge[options] at (coord); + \pic[side=both,#1] at (#3) {bridge={#2}}% symbol +}% +\newlength{\shiftleft}\setlength{\shiftleft}{0cm}% +\newlength{\shiftright}\setlength{\shiftright}{0cm}% +\newtoggle{show_background}\settoggle{show_background}{true}% +%% tikz keys +\pgfkeys{% + /tikz/trackschematic/constructions/bridge/.is family,% + /tikz/trackschematic/constructions/bridge/.cd,% + % shift + shift left/.store in=\shiftleft,% default shift 0cm + /tikz/shift left/.forward to=/tikz/trackschematic/constructions/bridge/shift left,% + shift right/.store in=\shiftright,% default shift 0cm + /tikz/shift right/.forward to=/tikz/trackschematic/constructions/bridge/shift right,% + %% show road + no background/.value forbidden,% + no background/.code={\settoggle{show_background}{false}},% + /tikz/no background/.forward to=/tikz/trackschematic/constructions/bridge/no background,% +}% +%% symbol definition +\tikzset{% + pics/bridge/.default=,% + pics/bridge/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% symbol + \iftoggle{show_background}{% true + \fill[\background]% + ($(-0.5\objectlength,\objectwidth)+(0,-0.1)$) rectangle% + ($(0.5\objectlength,-\objectwidth)+(0,0.1)$);% + }{}% + \tikzset{every path/.style={draw=\foreground,line width=0.75pt}};% + \ifdefstring{\side}{both}{% + \path ($-0.5*(\objectlength,0)+(-0.1,0)+(\shiftleft,\objectwidth)$) --% + ++($(0.1,-0.1)$) --% + ++($(\objectlength,0)$) --% + ++($(0.1,0.1)$);% left bridge + \path ($-0.5*(\objectlength,0)+(-0.1,0)+(\shiftright,-\objectwidth)$) --% + ++($(0.1,0.1)$) --% + ++($(\objectlength,0)$) --% + ++($(0.1,-0.1)$);% right bridge + }{% + \ifdefstring{\side}{left}{% + \path ($-0.5*(\objectlength,0)+(-0.1,0)+(\shiftleft,\objectwidth)$) --% + ++($(0.1,-0.1)$) --% + ++($(\objectlength,0)$) --% + ++($(0.1,0.1)$);% left bridge + }{% + \ifdefstring{\side}{right}{% + \path ($-0.5*(\objectlength,0)+(-0.1,0)+(\shiftright,-\objectwidth)$) --% + ++($(0.1,0.1)$) --% + ++($(\objectlength,0)$) --% + ++($(0.1,-0.1)$);% right bridge + }{%% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/constructions/side}{“left“, “right“ OR “both“ as key required}}% + }% END \ifdefstring{\side}{right} + }% END \ifdefstring{\side}{left} + }% END \ifdefstring{\side}{both} + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol interlocking +%%%%%%%%%%%%%%% +% +%% command +\newcommand\interlocking{}% just for safety +\def\interlocking#1(#2){% \interlocking at (coord); + \pic at (#2) {interlocking={#1}}% symbol +}% +%% tikz keys +% \pgfkeys{% +% /tikz/trackschematic/.is family,% +% /tikz/trackschematic/.cd,% +% }% +%% symbol definition +\tikzset{% + pics/interlocking/.default=,% + pics/interlocking/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% symbol + \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \path (-0.6,-0.4 ) rectangle ++(1.2,0.8); % building + \path[fill=\foreground] (-0.5,-0.3 ) rectangle ++(1.0,0.2); % table + \path[fill=\foreground] ( 0 , 0.15) circle (0.15); % human dot + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol hump +%%%%%%%%%%%%%%% +% +%% command +\newcommand\hump{}% just for safety +\def\hump#1(#2){% \hump at (coord); + \pic at (#2) {hump={#1}}% symbol +}% +%% tikz keys +% \pgfkeys{% +% /tikz/trackschematic/.is family,% +% /tikz/trackschematic/.cd,% +% }% +%% symbol definition +\tikzset{% + pics/hump/.default=,% + pics/hump/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% symbol + \tikzset{every path/.style={draw=\foreground,line width=0.75pt}};% + % left side + \path (-0.3, 0.1) -- ++(0,0.05); + \path (-0.2, 0.1) -- ++(0,0.15); + \path (-0.1, 0.1) -- ++(0,0.25); + \path ( 0.0, 0.1) -- ++(0,0.35); + \path ( 0.1, 0.1) -- ++(0,0.25); + \path ( 0.2, 0.1) -- ++(0,0.15); + \path ( 0.3, 0.1) -- ++(0,0.05); + % right side + \path (-0.3,-0.1) -- ++(0,-0.05); + \path (-0.2,-0.1) -- ++(0,-0.15); + \path (-0.1,-0.1) -- ++(0,-0.25); + \path ( 0.0,-0.1) -- ++(0,-0.35); + \path ( 0.1,-0.1) -- ++(0,-0.25); + \path ( 0.2,-0.1) -- ++(0,-0.15); + \path ( 0.3,-0.1) -- ++(0,-0.05); + }},% +}% +% +%%%%%%%%%%%%%%% +\endinput% +%
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.messures.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.messures.code.tex new file mode 100644 index 0000000000..290701b919 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.messures.code.tex @@ -0,0 +1,253 @@ +%% symbol library for TikZ track schematics +% +% 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. +% +\ProvidesFileRCS{tikzlibrarytrackschematic.messures.code.tex}% +% +%%%%%%%%%%%%%%% +% global settings +%%%%%%%%%%%%%%% +\RequirePackage{tikz,etoolbox,lmodern}% +\usetikzlibrary{calc,intersections,arrows.meta}% +% +% https://tex.stackexchange.com/questions/56353/extract-x-y-coordinate-of-an-arbitrary-point-on-curve-in-tikz +\providecommand{\gettikzxy}[3]{% + \tikz@scan@one@point\pgfutil@firstofone#1\relax% + \edef#2{\the\pgf@x}% + \edef#3{\the\pgf@y}% +}% +% +%%%%%%%%%%%%%%% +% tikz keys for multiple use +%%%%%%%%%%%%%%% +\ifdeflength{\objectlength}{}{% Not defined, so define it! + \newlength{\objectlength}% +}% +\setlength{\objectlength}{4cm}% +% +\pgfkeys{% + /tikz/trackschematic/.is family,% + /tikz/trackschematic/.cd,% + %% color foreground + foreground/.store in=\foreground,% + foreground=black,% DEFAULT + /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% + %% color background + background/.store in=\background,% + background=white,% DEFAULT + /tikz/background/.forward to=/tikz/trackschematic/background,% + %% face + face/.value required,% forward, backward OR bidirectional + face/.store in=\face,% forward, backward OR bidirectional + /tikz/face/.forward to=/tikz/trackschematic/face,% + /tikz/forward/.code={\pgfkeys{/tikz/trackschematic/face=forward}},% + /tikz/backward/.code={\pgfkeys{/tikz/trackschematic/face=backward}},% + /tikz/bidirectional/.code={\pgfkeys{/tikz/trackschematic/face=bidirectional}},% + %% length + length/.store in=\objectlength,% default length 4cm + /tikz/length/.forward to=/tikz/trackschematic/length,% + %% traffic practice + traffic practice/.value required,% left OR right + traffic practice/.store in=\trafficpractice,% + /tikz/traffic practice/.forward to=/tikz/trackschematic/traffic practice,% + /tikz/position/.forward to=/tikz/trackschematic/traffic practice,% + %% label + shift label/.store in=\labelcoord,% (coord) + shift label=(none),% DEFAULT + /tikz/shift label/.forward to=/tikz/trackschematic/shift label,% +}% +\tikzset{traffic practice=right}% +% +% tikz keys +\pgfkeys{% + /tikz/trackschematic/messures/.is family,% + /tikz/trackschematic/messures/.cd,% + %% color hectometer + color/.store in=\hectometercolor,% + color=\foreground!50!\background,% DEFAULT + /tikz/hectometer color/.forward to=/tikz/trackschematic/messures/color,% +}% +%%%%%%%%%%%%%%%% +% symbol train berth +%%%%%%%%%%%%%%% +%% command +\newcommand\berth{}% just for safety +\def\berth[#1]#2(#3)#4(#5){% \berth[options] at (coord) length (usable length); + \pic[#1] at (#3) {train_berth={#2/#4/#5}}% symbol +}% +%% +%% symbol definition +\tikzset{% + pics/train_berth/.default=,% + pics/train_berth/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + %% face setup + \ifdefstring{\face}{bidirectional}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“, “backward“ OR “bidirectional“ as key required}}% + }% + }% + }% end \ifdefstring{\face} + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + % + \tikzset{every path/.style={draw=\foreground,line width=0.75pt,line cap=round,dash pattern=on 0pt off 2.4\pgflinewidth}};% + \path% berth shape forward + ($-0.5*(\objectlength,0) + (-0.05,0) + \trafficfactor*\facefactor*(0,-0.25)$) --% + ($-0.5*(\objectlength,0) + (-0.05,0) + \trafficfactor*\facefactor*(0,-0.35)$)% + ($-0.5*(\objectlength,0) + (-0.05,0) + \trafficfactor*\facefactor*(0,-0.35) + (\pgflinewidth,0)$) --% + ($ 0.5*(\objectlength,0) + ( 0.05,0) + \trafficfactor*\facefactor*(0,-0.35)$)% + ($ 0.5*(\objectlength,0) + ( 0.05,0) + \trafficfactor*\facefactor*(0,-0.25)$) --% + ($ 0.5*(\objectlength,0) + ( 0.05,0) + \trafficfactor*\facefactor*(0,-0.35)$);% berth shape forward + \path[draw=none,fill=\foreground]% arrow front + ($\facefactor*0.5*(\objectlength,0) + \facefactor*(-0.1,0) + \trafficfactor*\facefactor*(0,-0.35)$) --% + ++($(0,-0.04) + \facefactor*(-0.1,0)$) -- ++(0,0.08) -- cycle;% arrow + \path[draw=none,fill=\foreground]% arrow back + ($\facefactor*-0.5*(\objectlength,0) + \facefactor*(0.2,0) + \trafficfactor*\facefactor*(0,-0.35)$) --% + ++($(0,-0.04) + \facefactor*(-0.1,0)$) -- ++(0,0.08) -- cycle;% arrow + \ifdefstring{\face}{bidirectional}{% bidirectional + \pgfmathsetmacro{\facefactor}{-1}% + \path% berth shape forward + ($-0.5*(\objectlength,0) + (-0.05,0) + \trafficfactor*\facefactor*(0,-0.25)$) --% + ($-0.5*(\objectlength,0) + (-0.05,0) + \trafficfactor*\facefactor*(0,-0.35)$)% + ($-0.5*(\objectlength,0) + (-0.05,0) + \trafficfactor*\facefactor*(0,-0.35) + (\pgflinewidth,0)$) --% + ($ 0.5*(\objectlength,0) + ( 0.05,0) + \trafficfactor*\facefactor*(0,-0.35)$)% + ($ 0.5*(\objectlength,0) + ( 0.05,0) + \trafficfactor*\facefactor*(0,-0.25)$) --% + ($ 0.5*(\objectlength,0) + ( 0.05,0) + \trafficfactor*\facefactor*(0,-0.35)$);% berth shape forward + \path[draw=none,fill=\foreground]% arrow front + ($\facefactor*0.5*(\objectlength,0) + \facefactor*(-0.1,0) + \trafficfactor*\facefactor*(0,-0.35)$) --% + ++($(0,-0.04) + \facefactor*(-0.1,0)$) -- ++(0,0.08) -- cycle;% arrow + \path[draw=none,fill=\foreground]% arrow back + ($\facefactor*-0.5*(\objectlength,0) + \facefactor*(0.2,0) + \trafficfactor*\facefactor*(0,-0.35)$) --% + ++($(0,-0.04) + \facefactor*(-0.1,0)$) -- ++(0,0.08) -- cycle;% arrow + }{}% + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \node[fill=\background,text=\foreground,inner sep=1pt] at ($\facefactor*(0,-0.35)$) {\tiny \labelcontent};% + \ifdefstring{\face}{bidirectional}{% bidirectional + \pgfmathsetmacro{\facefactor}{1}% + \node[fill=\background,text=\foreground,inner sep=1pt] at ($\facefactor*(0,-0.35)$) {\tiny \labelcontent};% + }{}% + }% + }},% end pics/train_berth/.style args={#1/#2/#3} +}% +% +%%%%%%%%%%%%%%% +% symbol track distance +%%%%%%%%%%%%%%% +% +%% command +\newcommand\trackdistance{}% just for safety +\def\trackdistance#1(#2)#3(#4)#5(#6){% \trackdistance between (coord1) and (coord2) label (distance); + \path[draw=\background,<->,>={Stealth[\foreground,inset=0pt,angle=50:0.2cm]},shorten <=1pt,shorten >=1pt] (#2) -- (#4)% arrow tips + node[hectometer base=(current bounding box.center),text=\foreground,midway,sloped,rotate=90] {#6};% label +}% +% +%%%%%%%%%%%%%%% +% symbol hectometer posts +%%%%%%%%%%%%%%% +% +%% command +\newcommand\hectometer{}% just for safety +\def\hectometer[#1]#2(#3)#4(#5){% \hectometer[options] at (coord) label (name); + \pic[#1] at (#3) {hectometer_posts={#2/#4/#5}}% symbol +}% +% tikz keys +\pgfkeys{% + /tikz/trackschematic/messures/hectometer/.is family,% + /tikz/trackschematic/messures/hectometer/.cd,% + %% hectometer base + base/.value required,% + base/.store in=\basecoord,% + /tikz/hectometer base/.forward to=/tikz/trackschematic/messures/hectometer/base,% + %% hectometer base + orientation/.value required,% + orientation/.store in=\orientation,% + /tikz/orientation/.forward to=/tikz/trackschematic/messures/hectometer/orientation,% +}% +%% symbol definition +\tikzset{% + pics/hectometer_posts/.default=,% + pics/hectometer_posts/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + % + \gettikzxy{\basecoord}{\basecoordX}{\basecoordY}% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + } + %% orientation setup + \ifdefstring{\orientation}{left}{% orientation + \def\align{right}% + }{% + \ifdefstring{\orientation}{right}{% orientation + \def\align{left}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/messures/hectometer/orientation}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\orientation} + %% calculation of coordinates + %% + %% bend 1 bend 2 + %% (0,0.75) (ts-hm-b1) (ts-hm-b2) + %% (0,0)• • ------- • --------- • ----- •(ts-hm-l) label + %% + \coordinate (ts-hm-l) at (0,\basecoordY);% + \ifdefstring{\labelcoord}{(none)}{% + \coordinate (ts-hm-b1) at (ts-hm-l);% + \coordinate (ts-hm-b2) at (ts-hm-l);% + }{% initialize if NOT default + \coordinate (ts-hm-b1) at ($(ts-hm-l) + (0,0.5)$);% + \coordinate (ts-hm-b2) at ($(ts-hm-l) + (\labelcoordX,0.25)$);% + \coordinate (ts-hm-l) at ($(ts-hm-l) + (\labelcoordX,\labelcoordY)$);% + }% + %% symbol + \path[draw=\hectometercolor,dashed,shorten <=0.75cm]% + (0,0) -- (ts-hm-b1) -- (ts-hm-b2) -- (ts-hm-l);% + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \node[font=\sffamily,text=\hectometercolor,rotate=-90,\orientation,align=\align,fill=\background] at (ts-hm-l) {\labelcontent};% + }% + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol messureline +%%%%%%%%%%%%%%% +% +% command +\newcommand\messureline{}% just for safety +\def\messureline{\path[MessureLine]}% \maintrack (coord1) -- (coord2); +% +\tikzset{MessureLine/.style={draw=\hectometercolor,dashed,shorten <=0.75cm,shorten >=0.75cm}}% +% +%%%%%%%%%%%%%%% +% TODO: +% * platform length +% * direction of milage +% +%%%%%%%%%%%%%%% +\endinput% +%
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.topology.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.topology.code.tex new file mode 100644 index 0000000000..8ca7a66982 --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.topology.code.tex @@ -0,0 +1,595 @@ +%% symbol library for TikZ track schematics +% +% 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. +% +\ProvidesFileRCS{tikzlibrarytrackschematic.topology.code.tex}% +% +%%%%%%%%%%%%%%% +% Requirements +%%%%%%%%%%%%%%% +\RequirePackage{tikz,etoolbox,lmodern}% +\usetikzlibrary{calc,patterns}% +% +% https://tex.stackexchange.com/questions/56353/extract-x-y-coordinate-of-an-arbitrary-point-on-curve-in-tikz +\providecommand{\gettikzxy}[3]{% + \tikz@scan@one@point\pgfutil@firstofone#1\relax% + \edef#2{\the\pgf@x}% + \edef#3{\the\pgf@y}% +}% +% +%%%%%%%%%%%%%%% +% tikz keys for multiple use +%%%%%%%%%%%%%%% +\pgfkeys{% + /tikz/trackschematic/.is family,% + /tikz/trackschematic/.cd,% + %% color foreground + foreground/.store in=\foreground,% + foreground=black,% DEFAULT + /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% + %% color background + background/.store in=\background,% + background=white,% DEFAULT + /tikz/background/.forward to=/tikz/trackschematic/background,% + %% face + face/.value required,% forward OR backward + face/.store in=\face,% + /tikz/face/.forward to=/tikz/trackschematic/face,% + /tikz/forward/.code={\pgfkeys{/tikz/trackschematic/face=forward}},% + /tikz/backward/.code={\pgfkeys{/tikz/trackschematic/face=backward}},% + /tikz/bidirectional/.code={\pgfkeys{/tikz/trackschematic/face=bidirectional}},% + %% operation + operation mode/.store in=\operationmode,% manual, remote OR none + operation mode=none,% DEFAULT + /tikz/operation/.forward to=/tikz/trackschematic/operation mode,% + %% label + shift label/.store in=\labelcoord,% (coord) + shift label=(none),% DEFAULT + /tikz/shift label/.forward to=/tikz/trackschematic/shift label,% +}% +% +\pgfkeys{% + /tikz/trackschematic/topology/.is family,% + /tikz/trackschematic/topology/.cd,% + %% branch + branch/.value required,% left OR right + branch/.store in=\branch,% left OR right + /tikz/branch/.forward to=/tikz/trackschematic/topology/branch,% + %% fouling point + fouling point/.value forbidden,% + fouling point/.code={\settoggle{fouling_point}{true}},% + /tikz/fouling point/.forward to=/tikz/trackschematic/topology/fouling point,% + %% points + points/.store in=\points,% moving, left, right OR none + points=none,% DEFAULT + /tikz/points/.forward to=/tikz/trackschematic/topology/points,% +}% +% options +\newtoggle{fouling_point}\settoggle{fouling_point}{false}% +% +%%%%%%%%%%%%%%% +% symbol track +%%%%%%%%%%%%%%% +% +% tracks +\newcommand\maintrack{}% just for safety +\def\maintrack{\path[draw,MainTrack]}% \maintrack (coord1) -- (coord2); +\newcommand\secondarytrack{}% just for safety +\def\secondarytrack{\path[draw,SecondaryTrack]}% \secondarytrack (coord1) -- (coord2); +\newcommand\sidetrack{}% just for safety +\def\sidetrack{\path[draw,SecondaryTrack]}% alias for \secondarytrack +% +\tikzset{MainTrack/.style={line width=2pt,\foreground}}% +\tikzset{SecondaryTrack/.style={line width=0.7pt,\foreground}}% +% +%%%%%%%%%%%%%%% +% symbol track number +%%%%%%%%%%%%%%% +% +%% command +\newcommand\tracklabel{}% just for safety +\def\tracklabel#1(#2)#3(#4){% \tracklabel at (coord) label (name); + \pic at (#2) {track_label={#1/#3/#4}}% symbol +}% +%% tikz keys +% \pgfkeys{% +% /tikz/trackschematic/.is family,% +% /tikz/trackschematic/.cd,% +% }% +%% symbol definition +\tikzset{% + pics/track_label/.default=,% + pics/track_label/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + \def\labelcommand{#2} % beware of leading and tailing spaces! + \def\labelcontent{#3} + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={fill=\background,text=\foreground}};% + \coordinate (ts-tl-l) at (0,0);% + \ifdefstring{\labelcoord}{(none)}{% default coord + }{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-tl-l) at ($(ts-tl-l)+(\labelcoordX,\labelcoordY)$);% + }% + \node at (ts-tl-l) {\labelcontent};% + }% + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol buffer stop +%%%%%%%%%%%%%%% +% +% command +\newcommand\bufferstop{}% just for safety +\def\bufferstop[#1]#2(#3){% \bufferstop[options] at (coord); + \pic[#1] at (#3) {bufferstop={#2}}% symbol +}% +\newlength{\friction}\setlength{\friction}{0.5cm} +% tikz keys +\pgfkeys{% + /tikz/trackschematic/topology/bufferstop/.is family,% + /tikz/trackschematic/topology/bufferstop/.cd,% + %% friction + friction/.store in=\friction,% length OR none + friction=none,% length OR none + /tikz/friction/.forward to=/tikz/trackschematic/topology/bufferstop/friction,% +}% +% symbol definition +\tikzset{% + pics/bufferstop/.default=,% + pics/bufferstop/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + %% symbol + \ifdefstring{\friction}{none}{% friction + \path[draw=\foreground, line width=1pt] ($\facefactor*(-0.1,0) + (0,0.2)$) -- ++($\facefactor*( 0.1,0)$) -- ++(0,-0.4) -- ++ ($\facefactor*(-0.1,0)$); % bufferstop marker + }{ + \path[draw=\foreground, line width=1pt] ($\facefactor*(-\friction,0) + \facefactor*( 0.1,0) + (0,0.2)$) -- ++($\facefactor*(-0.1,0)$) -- ++(0,-0.4) -- ++ ($\facefactor*( 0.1,0)$); % bufferstop marker + \fill[\foreground] (0,0) circle (0.06);% track closure indicator + } + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol track closure +%%%%%%%%%%%%%%% +% +%% command +\newcommand\trackclosure{}% just for safety +\def\trackclosure#1(#2){% \trackclosure at (coord); + \pic at (#2) {track_closure={#1}}% symbol +}% +\tikzset{% + pics/track_closure/.default=,% + pics/track_closure/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% + \fill[\foreground] (0,0) circle (0.06);% track closure indicator + % \path[fill=\foreground] (0.04,0.02) -- (0.04,-0.02) -- (0.02,-0.04) -- (-0.02,-0.04) -- (-0.04,-0.02) -- (-0.04,0.02) -- (-0.02,0.04) -- (0.02,0.04) -- cycle;% label + }},% end pics/track_closure/.style args={#1} +}% +% +%%%%%%%%%%%%%%% +% symbol turnout +%%%%%%%%%%%%%%% +% +% command +\newcommand\turnout{}% just for safety +\def\turnout[#1]#2(#3)#4(#5){% \turnout[options] at (coord) label (name); + \pic[operation=remote,#1] at (#3) {turnout={#2/#4/#5}}% symbol +}% +% tikz keys +\pgfkeys{% + /tikz/trackschematic/topology/turnout/.is family,% + /tikz/trackschematic/topology/turnout/.cd,% + %% points + points/.store in=\points,% moving, left, right OR none + points=none,% moving, left, right OR none + /tikz/points/.forward to=/tikz/trackschematic/topology/turnout/points,% +}% +% symbol definition +\tikzset{% + pics/turnout/.default=,% + pics/turnout/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + %% branch setup + \ifdefstring{\branch}{left}{% branch + \pgfmathsetmacro{\branchfactor}{1}% + }{% + \ifdefstring{\branch}{right}{% branch + \pgfmathsetmacro{\branchfactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/branch}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\branch} + %% turnout marker + \ifdefstring{\operationmode}{manual}{% operation=manual + \ifdefstring{\face}{forward}{% + \ifdefstring{\branch}{left}{% branch + \def\patterntype{north west lines}% + }{% + \def\patterntype{north east lines}% + }% + }{% + \ifdefstring{\branch}{right}{% branch + \def\patterntype{north west lines}% + }{% + \def\patterntype{north east lines}% + }% + }% + \path[draw=\foreground,pattern=\patterntype, pattern color=\foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker + }{% + \ifdefstring{\operationmode}{remote}{% operation=remote + \path[fill=\foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker + }{% + \ifdefstring{\operationmode}{none}{ + \path[draw=\foreground] (0,0) -- ++($\facefactor*(0.4,0)$) -- ++($\branchfactor*(0,0.4)$) -- cycle;% turnout marker + }{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/operation}{“manual“, “remote“ OR “none“ as key required}}% + }% + } + }% + % + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={text=\foreground}};% + \coordinate (ts-y-l) at ($\branchfactor*(0,-8pt)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-y-l) at ($(ts-y-l)+(\labelcoordX,\labelcoordY)$);% + }% + \node at (ts-y-l) {\footnotesize \labelcontent};% + }% + % + %% fouling point indicator + \iftoggle{fouling_point}{% + \path[draw=\foreground] ($\facefactor*(0.7,0)$) -- ++($\branchfactor*(0,0.7)$);% fouling point indicator + }{}% + % + %% points + \ifdefstring{\points}{left}{% points left + \ifdefstring{\branch}{left}{% + \path[draw=\foreground,line width=1.5pt] ($\facefactor*(-0.035,0)+(0,0.1)$) -- ++($\facefactor*(0.2,0)+(0,0.2)$);% + }{% + \path[draw=\foreground,line width=1.5pt] ($\facefactor*( 0.035,0)+(0,0.1)$) -- ++($\facefactor*( 0.265,0 )$);% + }% + }{% + \ifdefstring{\points}{right}{% points right + \ifdefstring{\branch}{left}{% + \path[draw=\foreground,line width=1.5pt] ($\facefactor*( 0.035,0)+(0,-0.1)$) -- ++($\facefactor*( 0.265,0 )$);% + }{% + \path[draw=\foreground,line width=1.5pt] ($\facefactor*(-0.035,0)+(0,-0.1)$) -- ++($\facefactor*(0.2,0)+(0,-0.2)$);% + }% + }{% + \ifdefstring{\points}{moving}{% moving points + \fill[\foreground] ($\facefactor*(0.075,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[\foreground] ($\facefactor*(0.225,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[\foreground] ($\facefactor*(0.015,0) + \branchfactor*(0, 0.15)$) circle (0.05);% points indicator right + \fill[\foreground] ($\facefactor*(0.115,0) + \branchfactor*(0, 0.25)$) circle (0.05);% points indicator right + }{% error message + \ifdefstring{\points}{none}{% + }{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/turnout/points}{“left“, “right“ OR “moving“ as key required}}% + }% + }% + }% + }% end \ifdefstring{\points} + % + }},% end pics/turnout/.style args={#1/#2/#3} +}% +% +%%%%%%%%%%%%%%% +% symbol slip switch turnout - using parts of turnout +%%%%%%%%%%%%%%% +% +\newcommand\slipturnout{}% just for safety +\def\slipturnout[#1]#2(#3)#4(#5)(#6){% \slipturnout[options] at (coord) label (name1)(name2); + \pic[operation=remote,slip=double,#1] at (#3) {slipturnout={#2/#4/#5/#6}}% symbol +}% +% tikz keys +\pgfkeys{% + /tikz/trackschematic/topology/slipturnout/.is family,% + /tikz/trackschematic/topology/slipturnout/.cd,% + %% points + forward points/.store in=\forwardpoints,% moving, left, right OR none + forward points=none,% moving, left, right OR none + /tikz/forward points/.forward to=/tikz/trackschematic/topology/slipturnout/forward points,% + backward points/.store in=\backwardpoints,% moving, left, right OR none + backward points=none,% moving, left, right OR none + /tikz/backward points/.forward to=/tikz/trackschematic/topology/slipturnout/backward points,% + %% slips + slip/.store in=\slip,% double, left, right OR none + slip=none,% double, left, right OR none + /tikz/slip/.forward to=/tikz/trackschematic/topology/slipturnout/slip,% +}% +% symbol definition +\tikzset{% + pics/slipturnout/.default=,% + pics/slipturnout/.style args={#1/#2/#3/#4}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontentleft{#3}% + \def\labelcontentright{#4}% + %% branch setup + \ifdefstring{\branch}{left}{% branch + \pgfmathsetmacro{\branchfactor}{1}% + }{% + \ifdefstring{\branch}{right}{% branch + \pgfmathsetmacro{\branchfactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/branch}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\branch} + %% turnout marker + \ifdefstring{\operationmode}{manual}{% operation=manual + \ifdefstring{\branch}{left}{% branch + \def\patterntype{north west lines}% + }{% + \def\patterntype{north east lines}% + }% + \path[draw,pattern=\patterntype, pattern color=\foreground] (0,0) -- ++($( 0.4,0)$) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker + \path[draw,pattern=\patterntype, pattern color=\foreground] (0,0) -- ++($(-0.4,0)$) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker + }{% operated automaticly + \ifdefstring{\operationmode}{remote}{% operation=remote + \path[fill=\foreground] (0,0) -- ++($( 0.4,0)$) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker + \path[fill=\foreground] (0,0) -- ++($(-0.4,0)$) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker + }{% + \ifdefstring{\operationmode}{none}{}{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/operation}{“manual“, “remote“ OR “none“ as key required}}% + }% + }% + }% + % + %% label + \tikzset{every node/.style={text=\foreground}};% + \ifdefstring{\labelcontentleft}{}{}{% label NOT empty + \coordinate (ts-sy-l1) at ($(2pt,0) + \branchfactor*(0, 10pt)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-sy-l1) at ($(ts-sy-l1)+(\labelcoordX,\labelcoordY)$);% + }% + \node[left] at (ts-sy-l1) {\footnotesize \labelcontentleft};% + }% + \ifdefstring{\labelcontentright}{}{}{% label NOT empty + \coordinate (ts-sy-l2) at ($(2pt,0) + \branchfactor*(0,-10pt)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-sy-l2) at ($(ts-sy-l2)-(\labelcoordX,\labelcoordY)$);% + }% + \node[right] at (ts-sy-l2) {\footnotesize \labelcontentright};% + }% + % + %% fouling point indicator + \iftoggle{fouling_point}{% + \path[draw=\foreground] ( 0.7,0) -- ++($\branchfactor*(0, 0.7)$);% fouling point indicator + \path[draw=\foreground] (-0.7,0) -- ++($\branchfactor*(0,-0.7)$);% fouling point indicator + }{}% + % + %% points + \ifdefstring{\forwardpoints}{left}{% points left + \ifdefstring{\branch}{left}{% + \path[draw=\foreground,line width=1.5pt] (-0.035,0.1) -- ++(0.2,0.2);% + }{% + \path[draw=\foreground,line width=1.5pt] ( 0.035,0.1) -- ++(0.265,0);% + }% + }{% + \ifdefstring{\forwardpoints}{right}{% points right + \ifdefstring{\branch}{left}{% + \path[draw=\foreground,line width=1.5pt] ( 0.035,-0.1) -- ++(0.265,0); + }{% + \path[draw=\foreground,line width=1.5pt] (-0.035,-0.1) -- ++(0.2,-0.2);% + }% + }{% + \ifdefstring{\forwardpoints}{moving}{% moving points + \fill[\foreground] ($(0.075,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[\foreground] ($(0.225,0) + \branchfactor*(0,-0.1 )$) circle (0.05);% points indicator left + \fill[\foreground] ($(0.015,0) + \branchfactor*(0, 0.15)$) circle (0.05);% points indicator right + \fill[\foreground] ($(0.115,0) + \branchfactor*(0, 0.25)$) circle (0.05);% points indicator right + }{% error message + \ifdefstring{\forwardpoints}{none}{% + }{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/slipturnout/forward points}{“left“, “right“ OR “moving“ as key required}}% + }% + }% + }% + }% end of \ifdefstring{\forwardpoints} + \ifdefstring{\backwardpoints}{left}{% points left + \ifdefstring{\branch}{left}{% + \path[draw=\foreground,line width=1.5pt] (0.035,-0.1) -- ++(-0.2,-0.2);% + }{% + \path[draw=\foreground,line width=1.5pt] (-0.035,-0.1) -- ++(-0.265,0);% + }% + }{% + \ifdefstring{\backwardpoints}{right}{% points right + \ifdefstring{\branch}{left}{% + \path[draw=\foreground,line width=1.5pt] (-0.035,0.1) -- ++(-0.265,0); + }{% + \path[draw=\foreground,line width=1.5pt] (0.035,0.1) -- ++(-0.2,0.2);% + }% + }{% + \ifdefstring{\backwardpoints}{moving}{% moving points + \fill[\foreground] ($(-0.075,0) + \branchfactor*(0, 0.1 )$) circle (0.05);% points indicator left + \fill[\foreground] ($(-0.225,0) + \branchfactor*(0, 0.1 )$) circle (0.05);% points indicator left + \fill[\foreground] ($(-0.015,0) + \branchfactor*(0,-0.15)$) circle (0.05);% points indicator right + \fill[\foreground] ($(-0.115,0) + \branchfactor*(0,-0.25)$) circle (0.05);% points indicator right + }{% error message + \ifdefstring{\backwardpoints}{none}{% + }{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/slipturnout/forward points}{“left“, “right“ OR “moving“ as key required}}% + }% + }% + }% + }% end of \ifdefstring{\backwardpoints} + % + %% slips + \ifdefstring{\slip}{double}{% slip + \path[draw=\foreground,line width=0.75pt] ($\branchfactor*(-0.4,0) + (0, 0.1)$) -- ($\branchfactor*( 0.3,0) + (0, 0.4)$);% slip + \path[draw=\foreground,line width=0.75pt] ($\branchfactor*( 0.4,0) + (0,-0.1)$) -- ($\branchfactor*(-0.3,0) + (0,-0.4)$);% slip + }{% + \ifdefstring{\slip}{left}{% + \path[draw=\foreground,line width=0.75pt] ($\branchfactor*(-0.4,0) + (0,0.1)$) -- ($\branchfactor*(0.3,0) + (0,0.4)$);% slip + }{% + \ifdefstring{\slip}{right}{% + \path[draw=\foreground,line width=0.75pt] ($\branchfactor*(0.4,0) + (0,-0.1)$) -- ($\branchfactor*(-0.3,0) + (0,-0.4)$);% slip + }{% + \ifdefstring{\slip}{none}{% + % + }{%error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/slipturnout/slip}{“double“, “left“, “right“ OR “none“ as key required}}% + }% + }% + }% + }% + % + }},% end of pics/slipturnout/.style args={#1/#2/#3/#4}{ +}% +% +%%%%%%%%%%%%%%% +% symbol crossing - using parts of turnout +%%%%%%%%%%%%%%% +% +\newcommand\crossing{}% just for safety +\def\crossing[#1]#2(#3)#4(#5){% \crossing[options] at (coord) label (name); + \pic[#1] at (#3) {crossing={#2/#4/#5}}% symbol +}% +% symbol definition +\tikzset{% + pics/crossing/.default=,% + pics/crossing/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + %% face setup + %% branch setup + \ifdefstring{\branch}{left}{% branch + \pgfmathsetmacro{\branchfactor}{1}% + }{% + \ifdefstring{\branch}{right}{% branch + \pgfmathsetmacro{\branchfactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/branch}{“left“ OR “right“ as key required}}% + }% + }% + % + %% crossing marker + \path[draw=\foreground] (0,0) -- ++( 0.4,0) -- ++($\branchfactor*(0, 0.4)$) -- cycle;% turnout marker + \path[draw=\foreground] (0,0) -- ++(-0.4,0) -- ++($\branchfactor*(0,-0.4)$) -- cycle;% turnout marker + % + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={text=\foreground}};% + \coordinate (ts-x-l) at ($(2pt,0) + \branchfactor*(0,-9pt)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-x-l) at ($(ts-x-l)+(\labelcoordX,\labelcoordY)$);% + }% + \node[right] at (ts-x-l) {\footnotesize \labelcontent};% + }% + % + %% fouling point indicator + \iftoggle{fouling_point}{% + \path[draw=\foreground] ( 0.7,0) -- ++($\branchfactor*(0, 0.7)$);% fouling point indicator + \path[draw=\foreground] (-0.7,0) -- ++($\branchfactor*(0,-0.7)$);% fouling point indicator + }{}% + % + }},% end of pics/crossing/.style args={#1/#2/#3}{ +}% +% +%%%%%%%%%%%%%%% +% symbol derailer +%%%%%%%%%%%%%%% +% +% command +\newcommand\derailer{}% just for safety +\def\derailer[#1]#2(#3)#4(#5){% \derailer[options] at (coord) label (name); + \pic[#1] at (#3) {derailer={#2/#4/#5}}% symbol +}% +% symbol definition +\tikzset{% + pics/derailer/.default=,% + pics/derailer/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + %% branch setup + \ifdefstring{\branch}{left}{% branch + \ifdefstring{\face}{forward}{% + \pgfmathsetmacro{\branchfactor}{1}% + }{% + \pgfmathsetmacro{\branchfactor}{-1}% + }% + }{% + \ifdefstring{\branch}{right}{% branch + \ifdefstring{\face}{forward}{% + \pgfmathsetmacro{\branchfactor}{-1}% + }{% + \pgfmathsetmacro{\branchfactor}{1}% + }% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/topology/branch}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\branch} + % + %% symbol + \path[draw=\foreground, line width=1pt] (0,0.1) -- ++(0,-0.2);% derailer marker + \path[draw=\foreground,->,>=latex,line width=1pt,dashed] (0,0) -- ++($\facefactor*(0.4,0) + \branchfactor*(0,0.4)$);% derailer arrow + % + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={text=\foreground}};% + \coordinate (ts-dr-l) at ($\branchfactor*(0,-10pt)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-dr-l) at ($(ts-dr-l)+(\labelcoordX,\labelcoordY)$);% + }% + \node[right] at (ts-dr-l) {\footnotesize \labelcontent};% + }% + % + }},% +}% +% +%%%%%%%%%%%%%%% +\endinput% +%
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex new file mode 100644 index 0000000000..4d32c178aa --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex @@ -0,0 +1,606 @@ +%% symbol library for TikZ track schematics +% +% 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. +% +\ProvidesFileRCS{tikzlibrarytrackschematic.trafficcontrol.code.tex}% +% +%%%%%%%%%%%%%%% +% Requirements +%%%%%%%%%%%%%%% +\RequirePackage{tikz,etoolbox,lmodern}% +\usetikzlibrary{calc}% +% +% https://tex.stackexchange.com/questions/56353/extract-x-y-coordinate-of-an-arbitrary-point-on-curve-in-tikz +\providecommand{\gettikzxy}[3]{% + \tikz@scan@one@point\pgfutil@firstofone#1\relax% + \edef#2{\the\pgf@x}% + \edef#3{\the\pgf@y}% +}% +% +%%%%%%%%%%%%%%% +% tikz keys for multiple use +%%%%%%%%%%%%%%% +\pgfkeys{% + /tikz/trackschematic/.is family,% + /tikz/trackschematic/.cd,% + %% color \foreground + foreground/.store in=\foreground,% + foreground=black,% DEFAULT + /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% + %% color \background + background/.store in=\background,% + background=white,% DEFAULT + /tikz/background/.forward to=/tikz/trackschematic/background,% + %% face + face/.value required,% forward OR backward + face/.store in=\face,% forward OR backward + /tikz/face/.forward to=/tikz/trackschematic/face,% + /tikz/forward/.code={\pgfkeys{/tikz/trackschematic/face=forward}},% + /tikz/backward/.code={\pgfkeys{/tikz/trackschematic/face=backward}},% + /tikz/bidirectional/.code={\pgfkeys{/tikz/trackschematic/face=bidirectional}},% + %% traffic practice + traffic practice/.value required,% left OR right + traffic practice/.store in=\trafficpractice,% + traffic practice=right,% DEFAULT + /tikz/traffic practice/.forward to=/tikz/trackschematic/traffic practice,% + /tikz/position/.forward to=/tikz/trackschematic/traffic practice,% + %% label + shift label/.store in=\labelcoord,% (coord) + shift label=(none),% DEFAULT + /tikz/shift label/.forward to=/tikz/trackschematic/shift label,% +}% +% +\pgfkeys{% + /tikz/trackschematic/trafficcontrol/.is family,% + /tikz/trackschematic/trafficcontrol/.cd,% + %% type + type/.value required,% balise OR loop + type/.store in=\type,% balise OR loop + /tikz/type/.forward to=/tikz/trackschematic/trafficcontrol/type,% + %% block signal type + block type/.value forbidden,% + block type/.code={\settoggle{is_block_type}{true}},% + /tikz/block/.forward to=/tikz/trackschematic/trafficcontrol/block type,% + %% route signal type + route type/.value forbidden,% + route type/.code={\settoggle{is_route_type}{true}},% + /tikz/route/.forward to=/tikz/trackschematic/trafficcontrol/route type,% +}% +% options +\newtoggle{is_block_type}\settoggle{is_block_type}{false}% +\newtoggle{is_route_type}\settoggle{is_route_type}{false}% +%%%%%%%%%%%%%%% +% symbol signal +%%%%%%%%%%%%%%% +% command +\newcommand\signal{}% just for safety +\def\signal[#1]#2(#3)#4(#5){% \signal[options] at (coord) label (name); + \pic[#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\distantsignal{}% just for safety +\def\distantsignal[#1]#2(#3)#4(#5){% \distantsignal[options] at (coord) label (name); + \pic[distant,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\speedsign{}% just for safety +\def\speedsign[#1]#2(#3)#4(#5){% \speedsign[options] at (coord) label (name); + \pic[speed type,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\speedsignal{}% just for safety +\def\speedsignal[#1]#2(#3)#4(#5){% \speedsignal[options] at (coord) label (name); + \pic[speed type,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\speeddistantsignal{}% just for safety +\def\speeddistantsignal[#1]#2(#3)#4(#5){% \speedsignal[options] at (coord) label (name); + \pic[speed type,distant,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\blocksignal{}% just for safety +\def\blocksignal[#1]#2(#3)#4(#5){% \blocksignal[options] at (coord) label (name); + \pic[block,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\routesignal{}% just for safety +\def\routesignal[#1]#2(#3)#4(#5){% \routesignal[options] at (coord) label (name); + \pic[route,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\shuntsignal{}% just for safety +\def\shuntsignal[#1]#2(#3)#4(#5){% \shuntsignal[options] at (coord) label (name); + \pic[shunting,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\shuntlimit{}% just for safety +\def\shuntlimit[#1]#2(#3)#4(#5){% \shuntlimit[options] at (coord) label (name); + \pic[shunt limit,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\berthsignal{}% just for safety +\def\berthsignal[#1]#2(#3)#4(#5){% \berthsignal[options] at (coord) label (name); + \pic[berth,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +\newcommand\berthsign{}% just for safety +\def\berthsign[#1]#2(#3)#4(#5){% \berthsign[options] at (coord) label (name); + \pic[berth,#1] at (#3) {signal={#2/#4/#5}}% symbol +}% +% tikz keys +\pgfkeys{% + /tikz/trackschematic/trafficcontrol/signal/.is family,% + /tikz/trackschematic/trafficcontrol/signal/.cd,% + %% distant signal type + distant type/.value forbidden,% + distant type/.code={\settoggle{is_distant_type}{true}},% + /tikz/distant/.forward to=/tikz/trackschematic/trafficcontrol/signal/distant type,% + %% block signal type + speed type/.value forbidden,% + speed type/.code={\settoggle{is_speed_type}{true}},% + /tikz/speed type/.forward to=/tikz/trackschematic/trafficcontrol/signal/speed type,% + %% shunting signal type + shunting type/.value forbidden,% + shunting type/.code={\settoggle{is_shunting_type}{true}},% + /tikz/shunting/.forward to=/tikz/trackschematic/trafficcontrol/signal/shunting type,% + %% shunting signal type + shunt limit/.value forbidden,% + shunt limit/.code={\settoggle{is_shunt_limit}{true}},% + /tikz/shunt limit/.forward to=/tikz/trackschematic/trafficcontrol/signal/shunt limit,% + %% berth signal type + berth type/.value forbidden,% + berth type/.code={\settoggle{is_berth_type}{true}},% + /tikz/berth/.forward to=/tikz/trackschematic/trafficcontrol/signal/berth type,% + %% speed value + speed/.store in=\speed,% number + speed=,% number + /tikz/speed/.forward to=/tikz/trackschematic/trafficcontrol/signal/speed,% + %% speed value + distant speed/.store in=\distantspeed,% number + distant speed=,% number + /tikz/distant speed/.forward to=/tikz/trackschematic/trafficcontrol/signal/distant speed,% + %% locked signal + locked/.value forbidden,% + locked/.code={\settoggle{is_locked}{true}},% + /tikz/locked/.forward to=/tikz/trackschematic/trafficcontrol/signal/locked,% +}% +% options +\newtoggle{is_distant_type}\settoggle{is_distant_type}{false}% +\newtoggle{is_speed_type}\settoggle{is_speed_type}{false}% +\newtoggle{is_shunting_type}\settoggle{is_shunting_type}{false}% +\newtoggle{is_shunt_limit}\settoggle{is_shunt_limit}{false}% +\newtoggle{is_berth_type}\settoggle{is_berth_type}{false}% +\newtoggle{is_locked}\settoggle{is_locked}{false}% +% symbol definition +\tikzset{% generic symbol + pics/signal/.default=,% + pics/signal/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + % + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + \def\align{left}% + \def\rotate{-90}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + \def\align{right}% + \def\rotate{90}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + \tikzset{every node/.style={text=\foreground,inner sep=1pt}};% + %% signal pole + \path (0,0) -- ++($\trafficfactor*\facefactor*(0,-0.4)$) -- ++($\facefactor*(0.7,0)$);% signal pole + % + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \coordinate (ts-s-l) at ($\trafficfactor*\facefactor*(0,-0.4)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-s-l) at ($(ts-s-l)+(\labelcoordX,\labelcoordY)$);% + }% + \node[\align] at (ts-s-l) {\footnotesize \labelcontent};% + }% + \tikzset{every path/.style={draw=\foreground,line width=1pt,fill=\background},rounded corners=0.1pt};% + %% signal marker + \iftoggle{is_distant_type}{% marker for distant signal + \path ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.35,0)$) --% + ++($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(0.35,0)$) --% + ++($\trafficfactor*\facefactor*(0, 0.4)$) -- cycle;% signal marker + % + }{}% + \iftoggle{is_speed_type}{% marker for speed signal + \path ($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(0.35,0)$) --% + ++($\trafficfactor*\facefactor*(0,-0.4)$) --% + ++($\trafficfactor*\facefactor*(0, 0.2) + \facefactor*(0.35,0)$) -- cycle;% signal marker + % + }{}% + \iftoggle{is_block_type}{% marker for block signal + \path ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(0.7,0)$) rectangle% + ++($\trafficfactor*\facefactor*(0, 0.4) + \facefactor*(0.4,0)$);% signal marker + % + }{}% + \iftoggle{is_route_type}{% marker for route signal + \path ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.9,0)$) circle (0.2);% signal marker + % + }{}% + \iftoggle{is_shunting_type}{% marker for shunting signal + \path ($\trafficfactor*\facefactor*(0,-0.3) + \facefactor*(0.6,0)$) circle (0.1);% signal marker + % + }{}% + \iftoggle{is_shunt_limit}{% marker for shunting signal + \tikzset{semicircle/.pic={\path (0,0) arc (180:0:0.1) -- cycle;};}% + \pgfmathsetmacro{\trafficfactorTEST}{-1}% + \ifdefequal{\trafficfactor}{\trafficfactorTEST}{% + \pgfmathsetmacro{\trafficfactorX}{-2}% + }{% + \pgfmathsetmacro{\trafficfactorX}{1}% + }% + \pic[rotate=\rotate] at ($\trafficfactorX*\facefactor*(0,-0.2) + \facefactor*(0.6,0)$) {semicircle}; % signal marker + % + }{}% + \iftoggle{is_berth_type}{% marker for berth signal + \path ($\trafficfactor*\facefactor*(0,-0.575) + \facefactor*(0.3,0)$) rectangle% + ++($\trafficfactor*\facefactor*(0, 0.35 ) + \facefactor*(0.5,0)$);% % signal marker + \path[line width=0.75pt] ($\trafficfactor*\facefactor*(0,-0.3) + \facefactor*(0.375,0)$) -- ++($\facefactor*(0.35,0)$);% + \path[line width=0.75pt] ($\trafficfactor*\facefactor*(0,-0.5) + \facefactor*(0.55 ,0)$) -- ++($\trafficfactor*\facefactor*(0,0.2)$);% + \path[line width=0.75pt] ($\trafficfactor*\facefactor*(0,-0.5) + \facefactor*(0.375,0)$) -- ++($\facefactor*(0.35,0)$);% + % + }{}% + %% speed indicator + \ifdefstring{\speed}{}{}{% speed NOT empty + \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \iftoggle{is_speed_type}{% marker for speed signal + \node[rotate=\rotate] at ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.85,0)$) {\speed};% + }{% + \iftoggle{is_shunting_type}{}{% is NOT shunting tyoe + \node[rotate=\rotate] at ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(1.3,0)$) {\speed};% + }% + }% + }% + \ifdefstring{\distantspeed}{}{}{% distant speed NOT empty + \tikzset{every node/.style={font=\sffamily,text=\foreground,fill=\background,inner sep=0.5pt}};% + \node[rotate=\rotate] at ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.2,0)$) {\distantspeed};% + }% + %% locked + \iftoggle{is_locked}{% marker for route signal + \iftoggle{is_block_type}{% marker for block signal + \path ($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(0.9,0)$) --% + ++($\trafficfactor*\facefactor*(0,-0.4)$);% signal aspect + }{}% + \iftoggle{is_route_type}{% marker for route signal + \path ($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(0.9,0)$) --% + ++($\trafficfactor*\facefactor*(0,-0.4)$);% signal aspect + }{}% + \iftoggle{is_shunting_type}{% + \path ($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(0.6,0)$) --% + ++($\trafficfactor*\facefactor*(0,-0.2)$);% signal aspect + }{}% + }{}% + }},% end pics/signal/.style args={#1/#2/#3} +}% +% +%%%%%%%%%%%%%%% +% symbol clearing point +%%%%%%%%%%%%%%% +% command +\newcommand\clearingpoint{}% just for safety +\def\clearingpoint[#1]#2(#3)#4(#5){% \clearingpoint[options] at (coord) label (name); + \pic[standard,#1] at (#3) {clearing_point={#2/#4/#5}}% symbol +}% +\newcommand\blockclearing{}% just for safety +\def\blockclearing[#1]#2(#3)#4(#5){% \blockclearing[options] at (coord) label (name); + \pic[block,#1] at (#3) {clearing_point={#2/#4/#5}}% symbol +}% +\newcommand\routeclearing{}% just for safety +\def\routeclearing[#1]#2(#3)#4(#5){% \routeclearing[options] at (coord) label (name); + \pic[route,#1] at (#3) {clearing_point={#2/#4/#5}}% symbol +}% +\pgfkeys{% + /tikz/trackschematic/trafficcontrol/clearing point/.is family,% + /tikz/trackschematic/trafficcontrol/clearing point/.cd,% + %% standard type + standard type/.value forbidden,% + standard type/.code={\settoggle{is_standard_type}{true}},% + /tikz/standard/.forward to=/tikz/trackschematic/trafficcontrol/clearing point/standard type,% +}% +% options +\newtoggle{is_standard_type}\settoggle{is_standard_type}{false}% +% symbol definition +\tikzset{% + pics/clearing_point/.default=,% + pics/clearing_point/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + % + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + %% face setup + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% default case + \pgfmathsetmacro{\facefactor}{1}% + }% end \ifdefstring{\face} + \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + %% marker + \path ($\trafficfactor*\facefactor*(0,-0.1)$) -- ++($\trafficfactor*\facefactor*(0,0.2)$);% marker + %% sign + \iftoggle{is_standard_type}{% marker for block signal + \path ($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*(0.1,0)$) -- ++($\facefactor*(-0.2,0)$);% sign + }{}% + \iftoggle{is_block_type}{% marker for block signal + \path ($\trafficfactor*\facefactor*(0,-0.1)$) --% + ++($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*(-0.1,0)$) --% + ++($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*( 0.1,0)$) --% + ++($\trafficfactor*\facefactor*(0, 0.1) + \facefactor*( 0.1,0)$) -- cycle;% sign + }{}% + \iftoggle{is_route_type}{% marker for route signal + \path ($\trafficfactor*\facefactor*(0,-0.2)$) circle (0.1);% sign + }{}% + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \coordinate (ts-cp-l) at ($\trafficfactor*\facefactor*(0,0.25)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-cp-l) at ($(ts-cp-l)+(\labelcoordX,\labelcoordY)$);% + }% + \node at (ts-cp-l) {\footnotesize \labelcontent};% + }% + }},% end pics/clearing_point/.style args={#1/#2/#3} +}% +% +%%%%%%%%%%%%%%% +% symbol transmitter +%%%%%%%%%%%%%%% +% command +\newcommand\transmitter{}% just for safety +\def\transmitter[#1]#2(#3)#4(#5){% \transmitter[options] at (coord) label (name); + \pic[#1] at (#3) {transmitter={#2/#4/#5}}% symbol +}% +\newcommand\balise{}% just for safety +\def\balise[#1]#2(#3)#4(#5){% \balise[options] at (coord) label (name); + \pic[type=balise,#1] at (#3) {transmitter={#2/#4/#5}}% symbol +}% +\newcommand\trackloop{}% just for safety +\def\trackloop[#1]#2(#3)#4(#5){% \trackloop[options] at (coord) label (name); + \pic[type=loop,#1] at (#3) {transmitter={#2/#4/#5}}% symbol +}% +% symbol definition +\tikzset{% + pics/transmitter/.default=,% + pics/transmitter/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + %% marker + \tikzset{every path/.style={draw=\foreground}};% + \ifdefstring{\type}{balise}{% type balise + \path[line width=1pt,fill=\background] ($(-0.25,0)$) rectangle% + ($\trafficfactor*(0,-0.25) + (0.25,0)$);% balise marker + \ifdefstring{\face}{forward}{% face + \path ($\trafficfactor*(0,-0.05) + (0.1,0)$) -- ($\trafficfactor*(0,-0.125) + (0.2,0)$) --% + ($\trafficfactor*(0,-0.2) + (0.1,0)$) -- cycle;% arrow forward + }{% + \ifdefstring{\face}{backward}{% face + \path ($\trafficfactor*(0,-0.05) + (-0.1,0)$) -- ($\trafficfactor*(0,-0.125) + (-0.2,0)$) --% + ($\trafficfactor*(0,-0.2) + (-0.1,0)$) -- cycle;% arrow backward + }{ + \ifdefstring{\face}{bidirectional}{% face + \path ($\trafficfactor*(0,-0.05) + (0.1,0)$) -- ($\trafficfactor*(0,-0.125) + (0.2,0)$) --% + ($\trafficfactor*(0,-0.2) + (0.1,0)$) -- cycle;% arrow forward + \path ($\trafficfactor*(0,-0.05) + (-0.1,0)$) -- ($\trafficfactor*(0,-0.125) + (-0.2,0)$) --% + ($\trafficfactor*(0,-0.2) + (-0.1,0)$) -- cycle;% arrow backward + }{}% + }% + }% end \ifdefstring{\face} + }{% + \ifdefstring{\type}{loop}{% type loop + \path[line width=1pt] ($\trafficfactor*(0,-0.175)$) -- ++(-0.0625,-0.0625) -- ++(-0.2,0) -- ++(-0.125,0.125) -- ++(-0.1,0) -- ++(0,-0.125) -- ++(0.1,0) -- ++(0.125,0.125) -- ++(0.2,0) -- ++(0.125,-0.125) -- ++(0.2,0) -- ++(0.125,0.125) -- ++(0.1,0) -- ++(0,-0.125) -- ++(-0.1,0) -- ++(-0.125,0.125) -- ++(-0.2,0) -- cycle;% loop marker + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/transmitter/type}{“balise“ OR “loop“ as key required}}% + }% + }% end \ifdefstring{\type} + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \coordinate (ts-tm-l) at ($\trafficfactor*(0,0.25)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-tm-l) at ($(ts-tm-l) + (\labelcoordX,\labelcoordY)$);% + }% + \node at (ts-tm-l) {\footnotesize \labelcontent};% + }% + }},% end pics/transmitter/.style args={#1/#2/#3} +}% +% +%%%%%%%%%%%%%%% +% symbol view point +%%%%%%%%%%%%%%% +% command +\newcommand\viewpoint{}% just for safety +\def\viewpoint[#1]#2(#3){% \viewpoint[options] at (coord); + \pic[#1] at (#3) {view_point={#2}};% symbol +}% +% symbol definition +\tikzset{% + pics/view_point/.default=,% + pics/view_point/.style args={#1}{code={% + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + %% arrow + \path[draw=\foreground,<-,>=latex,line width=1pt]% + ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.3)$) -- ++($\facefactor*(0.2,0)$);% arrow + %% eye + \filldraw[\foreground] ($\facefactor*(0.4,0) + \facefactor*\trafficfactor*(0,-0.4)$) circle (0.1);% pupil + \path[draw=\foreground, line width=1pt]% eye contour + ($\facefactor*(0.4, 0) + \facefactor*\trafficfactor*(0,-0.15)$) .. controls% + ($\facefactor*(0.25,0) + \facefactor*\trafficfactor*(0,-0.25)$) and% + ($\facefactor*(0.25,0) + \facefactor*\trafficfactor*(0,-0.55)$) ..% + ($\facefactor*(0.4, 0) + \facefactor*\trafficfactor*(0,-0.65)$) .. controls% + ($\facefactor*(0.55,0) + \facefactor*\trafficfactor*(0,-0.55)$) and% + ($\facefactor*(0.55,0) + \facefactor*\trafficfactor*(0,-0.25)$) ..% + ($\facefactor*(0.4, 0) + \facefactor*\trafficfactor*(0,-0.15)$) --cycle;% eye contour + }},% +}% +% +%%%%%%%%%%%%%%% +% symbol end of authority marker +%%%%%%%%%%%%%%% +% command +\newcommand\movementauthority{}% just for safety +\def\movementauthority[#1]#2(#3)#4(#5){% \movementauthority[options] at (coord) label (name); + \pic[#1] at (#3) {movement_authority_marker={#2/#4/#5}}% symbol +}% +% tikz keys +\pgfkeys{% + /tikz/trackschematic/trafficcontrol/EoA/.is family,% + /tikz/trackschematic/trafficcontrol/EoA/.cd,% + %% option \directionarrow + direction arrow/.store in=\directionarrow,% true or false + direction arrow=true,% true or false + /tikz/direction arrow/.forward to=/tikz/trackschematic/trafficcontrol/EoA/direction arrow,% +}% +% symbol definition +\tikzset{% + pics/movement_authority_marker/.default=,% + pics/movement_authority_marker/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + % + %% traffic practice setup + \ifdefstring{\trafficpractice}{left}{% branch + \pgfmathsetmacro{\trafficfactor}{-1}% + }{% + \ifdefstring{\trafficpractice}{right}{% branch + \pgfmathsetmacro{\trafficfactor}{1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}% + }% + }% end \ifdefstring{\trafficpractice} + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + \def\align{left}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + \def\align{right}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + \tikzset{every path/.style={draw=\foreground,line width=1pt}};% + %% marker + \path (0,0) -- ++($\trafficfactor*\facefactor*(0,-0.5)$);% marker + \path ($\trafficfactor*\facefactor*(0,-0.7) + \facefactor*(-0.1,0)$) rectangle% + ++($\trafficfactor*\facefactor*(0, 0.2) + \facefactor*(0.2,0)$);% sign + %% arrow + \ifdefstring{\directionarrow}{true}{% + \path[line width=0.5pt] ($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(-0.2,0)$) --% + ++($\facefactor*(0.2,0)$);% arrow body + \path[draw=none,fill=\foreground]% arrow tip + ($\trafficfactor*\facefactor*(0,-0.2)$) --% + ++($\trafficfactor*\facefactor*(0,-0.04) + \facefactor*(-0.1,0)$) -- ++($\trafficfactor*\facefactor*(0,0.08)$) -- cycle;% + }{% error message + \ifdefstring{\directionarrow}{false}{}{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/EoA/direction arrow}{'true' OR 'false' as key required}}% + }% + }% + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \tikzset{every node/.style={font=\sffamily,text=\foreground}};% + \coordinate (ts-ma-l) at ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(-0.05,0)$);% + \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-ma-l) at ($(ts-ma-l) + (\labelcoordX,\labelcoordY)$);% + }% + \node[\align] at (ts-ma-l) {\footnotesize \labelcontent};% + }% + }},% end pics/movement_authority_marker/.style args={#1/#2/#3} +}% +% +%%%%%%%%%%%%%%% +% symbol route +%%%%%%%%%%%%%%% +% command +\newcommand\route{}% just for safety +\def\route[#1]#2(#3){% \route[options] at (coord); + \pic[#1] at (#3) {route={#2}}% symbol +}% +% symbol definition +\tikzset{% + pics/route/.default=,% + pics/route/.style args={#1}{code={% + %% settings + \def\coordcommand{#1} % beware of leading and tailing spaces! + %% face setup + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + %% symbol + \fill[\foreground] ($\facefactor*(-0.175,0)+(0,-0.15)$) --% + ($\facefactor*(-0.175,0)+(0, 0.15)$) --% + ($\facefactor*( 0.175,0)+(0, 0 )$) -- cycle;% + }},% +}% +% +%%%%%%%%%%%%%%% +\endinput% +%
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.vehicles.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.vehicles.code.tex new file mode 100644 index 0000000000..8ba0aeaa1b --- /dev/null +++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.vehicles.code.tex @@ -0,0 +1,457 @@ +%% symbol library for TikZ track schematics +% +% 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. +% +\ProvidesFileRCS{tikzlibrarytrackschematic.vehicles.code.tex}% +% +%%%%%%%%%%%%%%% +% Requirements +%%%%%%%%%%%%%%% +\RequirePackage{tikz,etoolbox,lmodern}% +\usetikzlibrary{calc}% +% +% https://tex.stackexchange.com/questions/56353/extract-x-y-coordinate-of-an-arbitrary-point-on-curve-in-tikz +\providecommand{\gettikzxy}[3]{% + \tikz@scan@one@point\pgfutil@firstofone#1\relax% + \edef#2{\the\pgf@x}% + \edef#3{\the\pgf@y}% +}% +% +\ifdeflength{\objectlength}{}{% Not defined, so define it! + \newlength{\objectlength}% +}% +\setlength{\objectlength}{4cm}% +% +%%%%%%%%%%%%%%% +% tikz keys for multiple use +%%%%%%%%%%%%%%% +\pgfkeys{% + /tikz/trackschematic/.is family,% + /tikz/trackschematic/.cd,% + %% color foreground + foreground/.store in=\foreground,% + foreground=black,% DEFAULT + /tikz/foreground/.forward to=/tikz/trackschematic/foreground,% + %% color background + background/.store in=\background,% + background=white,% DEFAULT + /tikz/background/.forward to=/tikz/trackschematic/background,% + %% face + face/.value required,% forward OR backward + face/.store in=\face,% + /tikz/face/.forward to=/tikz/trackschematic/face,% + /tikz/forward/.code={\pgfkeys{/tikz/trackschematic/face=forward}},% + /tikz/backward/.code={\pgfkeys{/tikz/trackschematic/face=backward}},% + /tikz/bidirectional/.code={\pgfkeys{/tikz/trackschematic/face=bidirectional}},% + %% operation + operation mode/.store in=\operationmode,% manual, automatic OR undefined + operation mode=none,% DEFAULT + /tikz/operation/.forward to=/tikz/trackschematic/operation mode,% + %% length + length/.store in=\objectlength,% default length 4cm + /tikz/length/.forward to=/tikz/trackschematic/length,% + %% label + shift label/.store in=\labelcoord,% (coord) + shift label=(none),% DEFAULT + /tikz/shift label/.forward to=/tikz/trackschematic/shift label,% +}% +% +%%%%%%%%%%%%%%% +% commands +%%%%%%%%%%%%%%% +% +%% command: parked vehicles +\newcommand\parkedvehicles{}% just for safety +\def\parkedvehicles[#1]#2(#3)#4(#5){% \parkedvehicles[options] at (coord) label (name); + \pic[parked,operation=undefined,#1] at (#3) {vehicles={#2/#4/#5}}% symbol +}% +%% command: shunting movements +\newcommand\shunting{}% just for safety +\def\shunting[#1]#2(#3)#4(#5){% \shunting[options] at (coord) label (name); + \pic[shunting mode,operation=undefined,#1] at (#3) {vehicles={#2/#4/#5}}% symbol +}% +%% command: train run +\newcommand\train{}% just for safety +\def\train[#1]#2(#3)#4(#5){% \train[options] at (coord) label (name); + \pic[train mode,operation=undefined,#1] at (#3) {vehicles={#2/#4/#5}}% symbol +}% +% +%%%%%%%%%%%%%%% +% tikz keys +%%%%%%%%%%%%%%% +\pgfkeys{% + /tikz/trackschematic/vehicles/.is family,% + /tikz/trackschematic/vehicles/.cd,% + %% parked vehicles + parked/.value forbidden,% + parked/.code={\settoggle{is_parked}{true}},% + /tikz/parked/.forward to=/tikz/trackschematic/vehicles/parked,% + %% shunting mode + shunting mode/.value forbidden,% + shunting mode/.code={\settoggle{in_shunting_mode}{true}},% + /tikz/shunting mode/.forward to=/tikz/trackschematic/vehicles/shunting mode,% + %% shunting movement + movement/.value forbidden,% + movement/.code={\settoggle{is_shunting}{true}},% + /tikz/movement/.forward to=/tikz/trackschematic/vehicles/movement,% + %% train mode + train mode/.value forbidden,% + train mode/.code={\settoggle{in_train_mode}{true}},% + /tikz/train mode/.forward to=/tikz/trackschematic/vehicles/train mode,% + %% ghost train + ghost train/.value forbidden,% + ghost train/.code={\settoggle{train_is_a_ghost}{true}},% + /tikz/ghost/.forward to=/tikz/trackschematic/vehicles/ghost train,% + %% train run + run/.store in=\trainrun,% slow, normal, fast OR none + run=none,% DEFAULT + /tikz/run/.forward to=/tikz/trackschematic/vehicles/run,% + %% label + label align/.store in=\labelalign,% (coord) + label align=center,% DEFAULT + /tikz/label align/.forward to=/tikz/trackschematic/vehicles/label align,% + %% train bend + bend right at/.store in=\bendrightcoord,% (coord) + bend right at=(none),% DEFAULT + /tikz/bend right at/.forward to=/tikz/trackschematic/vehicles/bend right at,% + bend left at/.store in=\bendleftcoord,% (coord) + bend left at=(none),% DEFAULT + /tikz/bend left at/.forward to=/tikz/trackschematic/vehicles/bend left at,% +}% +% options +\newtoggle{is_parked}\settoggle{is_parked}{false}% +\newtoggle{in_shunting_mode}\settoggle{in_shunting_mode}{false}% +\newtoggle{is_shunting}\settoggle{is_shunting}{false}% +\newtoggle{in_train_mode}\settoggle{in_train_mode}{false}% +\newtoggle{train_is_a_ghost}\settoggle{train_is_a_ghost}{false}% +\newtoggle{bend}\settoggle{bend}{false}% +\newtoggle{double_bend}\settoggle{double_bend}{false}% +% +%%%%%%%%%%%%%%% +% symbol definition +%%%%%%%%%%%%%%% +% +\tikzset{% + pics/vehicles/.default=,% + pics/vehicles/.style args={#1/#2/#3}{code={% + %% settings + \def\coordcommand{#1}% beware of leading and tailing spaces! + \def\labelcommand{#2}% beware of leading and tailing spaces! + \def\labelcontent{#3}% + %% bend + % determine number of bends and + % find front and back bend from head to tail + \ifdefstring{\bendrightcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\bendrightcoord}{\bendrightX}{\bendrightY}% + \settoggle{bend}{true}% + \ifdefstring{\face}{forward}{% + \pgfmathsetlengthmacro\forwardbendX{\bendrightX}% + \pgfmathsetlengthmacro\forwardbendY{\bendrightY}% + \pgfmathsetlengthmacro\bendlength{\objectlength + \bendrightX}% + \pgfmathsetmacro\forwardbendTYPE{1}% + }{% face backward + \pgfmathsetlengthmacro\backwardbendX{\bendrightX}% + \pgfmathsetlengthmacro\backwardbendY{\bendrightY}% + \pgfmathsetlengthmacro\bendlength{\objectlength - \bendrightX}% + \pgfmathsetmacro\backwardbendTYPE{1}% + }% END \ifdefstring{\face}{forward} + }% + \ifdefstring{\bendleftcoord}{(none)}{}{% initialize if NOT default + \gettikzxy{\bendleftcoord}{\bendleftX}{\bendleftY}% + \iftoggle{bend}{% + \settoggle{double_bend}{true}% + \ifdefstring{\face}{forward}{% + \ifdimcomp{\bendrightX}{>}{\bendleftX}{% + \pgfmathsetlengthmacro\forwardbendX{\bendrightX}% + \pgfmathsetmacro\forwardbendTYPE{1}% + \pgfmathsetlengthmacro\backwardbendX{\bendleftX}% + \pgfmathsetlengthmacro\backwardbendY{\bendleftY}% + \pgfmathsetmacro\backwardbendTYPE{-1}% + }{% {\bendrightX}{<}{\bendleftX} + \pgfmathsetlengthmacro\forwardbendX{\bendleftX}% + \pgfmathsetmacro\forwardbendTYPE{-1}% + \pgfmathsetlengthmacro\backwardbendX{\bendrightX}% + \pgfmathsetlengthmacro\backwardbendY{\bendrightY}% + \pgfmathsetmacro\backwardbendTYPE{1} + }% + }{% face backward + \ifdimcomp{\bendrightX}{<}{\bendleftX}{% + \pgfmathsetlengthmacro\backwardbendX{\bendrightX}% + \pgfmathsetmacro\backwardbendTYPE{-1}% + \pgfmathsetlengthmacro\forwardbendX{\bendleftX}% + \pgfmathsetlengthmacro\forwardbendY{\bendleftY}% + \pgfmathsetmacro\forwardbendTYPE{1}% + }{% {\bendrightX}{>}{\bendleftX} + \pgfmathsetlengthmacro\backwardbendX{\bendleftX}% + \pgfmathsetmacro\backwardbendTYPE{1}% + \pgfmathsetlengthmacro\forwardbendX{\bendrightX}% + \pgfmathsetlengthmacro\forwardbendY{\bendrightY}% + \pgfmathsetmacro\forwardbendTYPE{-1}% + }% + }% + }{% NOT double bend + \settoggle{bend}{true}% + \ifdefstring{\face}{forward}{% + \pgfmathsetlengthmacro\forwardbendX{\bendleftX}% + \pgfmathsetlengthmacro\forwardbendY{\bendleftY}% + \pgfmathsetlengthmacro\bendlength{\objectlength + \bendleftX}% + \pgfmathsetmacro\forwardbendTYPE{-1}% + }{% face backward + \pgfmathsetlengthmacro\backwardbendX{\bendleftX}% + \pgfmathsetlengthmacro\backwardbendY{\bendleftY}% + \pgfmathsetlengthmacro\bendlength{\objectlength - \bendleftX}% + \pgfmathsetmacro\backwardbendTYPE{-1}% + }% END \ifdefstring{\face}{forward} + }% + }% + %% + %% calculation of vehicle coordinates + %% + %% backward bend forward bend + %% (ts-b-b1) (ts-b-f1) + %% (ts-v-4)•_______•_______•_______•(ts-v-1) + %% / \ + %% backward (ts-v-r)• label•(ts-v-l) •(ts-v-f) forward + %% \_______ _______ _______/ + %% (ts-v-3)• • • •(ts-v-2) + %% (ts-b-b2) (ts-b-f2) + %% + \iftoggle{is_parked}{% vehicle parked + \coordinate (ts-v-1) at ($ 0.5*(\objectlength,0) + (0, 0.3)$);% + \coordinate (ts-v-2) at ($ 0.5*(\objectlength,0) + (0,-0.3)$);% + \coordinate (ts-v-3) at ($-0.5*(\objectlength,0) + (0,-0.3)$);% + \coordinate (ts-v-4) at ($-0.5*(\objectlength,0) + (0, 0.3)$);% + \coordinate (ts-v-f) at ($ 0.5*(\objectlength,0) + (0, 0 )$);% + \coordinate (ts-v-r) at ($-0.5*(\objectlength,0) + (0, 0 )$);% + \iftoggle{bend}{% currently not supported for parked vehicles + % \coordinate (ts-b-f1) at (ts-v-1);% + % \coordinate (ts-b-f2) at (ts-v-2);% + % \coordinate (ts-b-b1) at (ts-v-4);% + % \coordinate (ts-b-b2) at (ts-v-3);% + }{% NOT bend + \coordinate (ts-b-f1) at (ts-v-1);% + \coordinate (ts-b-f2) at (ts-v-2);% + \coordinate (ts-b-b1) at (ts-v-4);% + \coordinate (ts-b-b2) at (ts-v-3);% + }% + \ifdefstring{\labelcoord}{(none)}{% + \coordinate (ts-v-l) at (0,0);% + }{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-v-l) at (\labelcoordX,\labelcoordY);% + }% + }{% vehicle NOT parked + \ifdefstring{\face}{forward}{% face + \pgfmathsetmacro{\facefactor}{1}% + \coordinate (ts-v-1) at (-0.3, 0.3);% + \coordinate (ts-v-2) at (-0.3,-0.3);% + \coordinate (ts-v-f) at (0,0);% + \iftoggle{double_bend}{% + \coordinate (ts-v-3) at ($(-\objectlength,-0.3) + (0,\backwardbendY)$);% + \coordinate (ts-v-4) at ($(-\objectlength, 0.3) + (0,\backwardbendY)$);% + \coordinate (ts-v-r) at ($(-\objectlength, 0 ) + (0,\backwardbendY)$);% + \coordinate (ts-b-f1) at ($( \forwardbendX, 0.3) + \forwardbendTYPE*(-0.1,0)$);% + \coordinate (ts-b-f2) at ($( \forwardbendX,-0.3) + \forwardbendTYPE*( 0.1,0)$);% + \coordinate (ts-b-b1) at ($(\backwardbendX, 0.3) + \backwardbendTYPE*( 0.1,0) + (0,\backwardbendY)$);% + \coordinate (ts-b-b2) at ($(\backwardbendX,-0.3) + \backwardbendTYPE*(-0.1,0) + (0,\backwardbendY)$);% + }{% NOT double bend + \iftoggle{bend}{% + \coordinate (ts-b-f1) at ($( \forwardbendX, 0.3) + \forwardbendTYPE*(-0.1,0)$);% + \coordinate (ts-b-f2) at ($( \forwardbendX,-0.3) + \forwardbendTYPE*( 0.1,0)$);% + \coordinate (ts-b-b1) at (ts-b-f1);% + \coordinate (ts-b-b2) at (ts-b-f2);% + \coordinate (ts-v-3) at ($(-\objectlength,-0.2) + \forwardbendTYPE*(0,-\bendlength) + \forwardbendTYPE*( 0.2,0)$);% + \coordinate (ts-v-4) at ($(-\objectlength, 0.2) + \forwardbendTYPE*(0,-\bendlength) + \forwardbendTYPE*(-0.2,0)$);% + \coordinate (ts-v-r) at ($(-\objectlength, 0 ) + \forwardbendTYPE*(0,-\bendlength)$);% + }{% NOT bend + \coordinate (ts-b-f1) at (ts-v-1);% + \coordinate (ts-b-f2) at (ts-v-2);% + \coordinate (ts-v-3) at ($(-\objectlength,0) + (0,-0.3)$);% + \coordinate (ts-v-4) at ($(-\objectlength,0) + (0, 0.3)$);% + \coordinate (ts-b-b1) at (ts-v-4);% + \coordinate (ts-b-b2) at (ts-v-3);% + \coordinate (ts-v-r) at ($(-\objectlength,0)$);% + }% + }% + }{% + \ifdefstring{\face}{backward}{% face + \pgfmathsetmacro{\facefactor}{-1}% + \coordinate (ts-v-3) at (0.3,-0.3);% + \coordinate (ts-v-4) at (0.3, 0.3);% + \coordinate (ts-v-r) at (0,0);% + \iftoggle{double_bend}{% + \coordinate (ts-v-1) at ($( \objectlength, 0.3) + (0,\forwardbendY)$);% + \coordinate (ts-v-2) at ($( \objectlength,-0.3) + (0,\forwardbendY)$);% + \coordinate (ts-v-f) at ($( \objectlength, 0 ) + (0,\forwardbendY)$);% + \coordinate (ts-b-f1) at ($( \forwardbendX, 0.3) + \forwardbendTYPE*( 0.1,0) + (0,\forwardbendY)$);% + \coordinate (ts-b-f2) at ($( \forwardbendX,-0.3) + \forwardbendTYPE*(-0.1,0) + (0,\forwardbendY)$);% + \coordinate (ts-b-b1) at ($(\backwardbendX, 0.3) + \backwardbendTYPE*(-0.1,0)$);% + \coordinate (ts-b-b2) at ($(\backwardbendX,-0.3) + \backwardbendTYPE*( 0.1,0)$);% + }{% NOT double bend + \iftoggle{bend}{% + \coordinate (ts-b-b1) at ($( \backwardbendX, 0.3) + \backwardbendTYPE*( 0.1,0)$);% + \coordinate (ts-b-b2) at ($( \backwardbendX,-0.3) + \backwardbendTYPE*(-0.1,0)$);% + \coordinate (ts-b-f1) at (ts-b-b1);% + \coordinate (ts-b-f2) at (ts-b-b2);% + \coordinate (ts-v-1) at ($( \objectlength, 0.2) + \backwardbendTYPE*(0,-\bendlength) + \backwardbendTYPE*( 0.2,0)$);% + \coordinate (ts-v-2) at ($( \objectlength,-0.2) + \backwardbendTYPE*(0,-\bendlength) + \backwardbendTYPE*(-0.2,0)$);% + \coordinate (ts-v-f) at ($( \objectlength, 0 ) + \backwardbendTYPE*(0,-\bendlength)$);% + }{% NOT bend + \coordinate (ts-b-b1) at (ts-v-4);% + \coordinate (ts-b-b2) at (ts-v-3);% + \coordinate (ts-v-1) at ($(\objectlength,0) + (0, 0.3)$);% + \coordinate (ts-v-2) at ($(\objectlength,0) + (0,-0.3)$);% + \coordinate (ts-b-f1) at (ts-v-1);% + \coordinate (ts-b-f2) at (ts-v-2);% + \coordinate (ts-v-f) at ($(\objectlength,0)$);% + }% + }% + }{% error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}% + }% + }% end \ifdefstring{\face} + %% label coord for NOT parked + \ifdefstring{\labelcoord}{(none)}{% + \coordinate (ts-v-l) at ($\facefactor*-0.5*(\objectlength,0) + (0,0)$);% + }{% initialize if NOT default + \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}% + \coordinate (ts-v-l) at (\labelcoordX,\labelcoordY);% + }% + }% + % + %% vehicle style + \iftoggle{in_train_mode}{% train mode + \iftoggle{train_is_a_ghost}{% ghost train + \tikzset{every path/.style={draw=\foreground, line width=0.8pt, dashed}};% + \coordinate (ts-v-l) at ($(ts-v-l) + (0,0.16)$);% + }{% normal train + \tikzset{every path/.style={draw=\foreground, line width=1pt, fill=\background}};% + }% + }{% shunting mode + \tikzset{every path/.style={draw=\foreground, double, double distance=0.5mm, line width=0.3pt, fill=\background}};% + }% + % + %% arrow shapes + \iftoggle{is_shunting}{% arrow for shunting + \iftoggle{in_shunting_mode}{% shunting mode + \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + ($\facefactor*(-0.1, 0.3)$) --% + ($\facefactor*( 0.2, 0 )$) --% + ($\facefactor*(-0.1,-0.3)$) --% + ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + \path[line cap=rect,fill=none] ($\facefactor*(-0.1, 0.3)$) --% + ($\facefactor*( 0.2, 0 )$) --% + ($\facefactor*(-0.1,-0.3)$);% arrow shape + }{% train mode + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/vehicle/movement}{movement can only be combined with shunting}}% + }% + }{}% end \iftoggle{shunting_movement} + \ifdefstring{\trainrun}{none}{}{% arrow for train + \iftoggle{in_train_mode}{% train mode + \ifdefstring{\trainrun}{slow}{% + \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + ($\facefactor*(-0.1, 0.3)$) --% + ($\facefactor*( 0.2, 0 )$) --% + ($\facefactor*(-0.1,-0.3)$) --% + ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + \path[fill=none] ($\facefactor*(-0.15, 0.3)$) --% + ($\facefactor*(-0.1 , 0.3)$) --% + ($\facefactor*( 0.2 , 0 )$) --% + ($\facefactor*(-0.1 ,-0.3)$) --% + ($\facefactor*(-0.15,-0.3)$);% arrow shape + }{% + \ifdefstring{\trainrun}{normal}{% + \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + ($\facefactor*( 0.1, 0.3)$) --% + ($\facefactor*( 0.4, 0 )$) --% + ($\facefactor*( 0.1,-0.3)$) --% + ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + \path[fill=none] ($\facefactor*(-0.15, 0.3)$) --% + ($\facefactor*(-0.1 , 0.3)$) --% + ($\facefactor*( 0.2 , 0 )$) --% + ($\facefactor*(-0.1 ,-0.3)$) --% + ($\facefactor*(-0.15,-0.3)$);% arrow shape part 1 + \path[fill=none] ($\facefactor*( 0.05, 0.3)$) --% + ($\facefactor*( 0.1 , 0.3)$) --% + ($\facefactor*( 0.4 , 0 )$) --% + ($\facefactor*( 0.1 ,-0.3)$) --% + ($\facefactor*( 0.05,-0.3)$);% arrow shape part 2 + % + }{% + \ifdefstring{\trainrun}{fast}{% + \fill[draw=none,fill=\background] ($\facefactor*(-0.3, 0.3)$) --% + ($\facefactor*( 0.3, 0.3)$) --% + ($\facefactor*( 0.6, 0 )$) --% + ($\facefactor*( 0.3,-0.3)$) --% + ($\facefactor*(-0.3,-0.3)$) -- cycle;% \background fill + \path[fill=none] ($\facefactor*(-0.15, 0.3)$) --% + ($\facefactor*(-0.1 , 0.3)$) --% + ($\facefactor*( 0.2 , 0 )$) --% + ($\facefactor*(-0.1 ,-0.3)$) --% + ($\facefactor*(-0.15,-0.3)$);% arrow shape part 1 + \path[fill=none] ($\facefactor*( 0.05, 0.3)$) --% + ($\facefactor*( 0.1 , 0.3)$) --% + ($\facefactor*( 0.4 , 0 )$) --% + ($\facefactor*( 0.1 ,-0.3)$) --% + ($\facefactor*( 0.05,-0.3)$);% arrow shape part 2 + \path[fill=none] ($\facefactor*( 0.25, 0.3)$) --% + ($\facefactor*( 0.3 , 0.3)$) --% + ($\facefactor*( 0.6 , 0 )$) --% + ($\facefactor*( 0.3 ,-0.3)$) --% + ($\facefactor*( 0.25,-0.3)$);% arrow shape part 3 + % + }{%error message + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/vehicles/run}{“normal“, “slow“, “fast“ OR “none“ as key required}}% + }% + }% + }% + }{% shunting mode + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/vehicle/run}{run can only be combined with train}}% + }% end \iftoggle{in_train_mode} + }% end \ifdefstring{\trainrun}{none} % end arrow shapes + % + %% vehicle shape + \path (ts-v-1) -- (ts-v-f) -- (ts-v-2) -- (ts-b-f2) -- (ts-b-b2) -- (ts-v-3) -- (ts-v-r) -- (ts-v-4) -- (ts-b-b1) -- (ts-b-f1) -- cycle;% vehicle shape + % + %% operated + \iftoggle{is_parked}{}{% vehicle NOT parked + \ifdefstring{\operationmode}{manual}{% + \path[draw=none, fill=\foreground] ($\facefactor*(-0.4,0)$) circle (0.15);% dot + \coordinate (ts-v-l) at ($(ts-v-l) + \facefactor*(-0.25,0)$);% + }{ + \ifdefstring{\operationmode}{automatic}{% + \path[draw=none, fill=\foreground] ($\facefactor*(-0.15,0)$) -- ++($\facefactor*(-0.15,0) +(0,0.15)$) -- ++(0,-0.3) -- cycle;% triangle + \coordinate (ts-v-l) at ($(ts-v-l) + \facefactor*(-0.15,0)$);% + }{% + \ifdefstring{\operationmode}{undefined}{}{% + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/operation}{“manual“, “automatic“ OR “undefined“ as key required}}% + }% + }% end automatically_operated + }% end manually_operated + }% + % + %% label + \ifdefstring{\labelcontent}{}{}{% label NOT empty + \ifdefstring{\labelalign}{center}{% label align default + \def\labelanchor{center} + }{% label align NOT default + \ifdefstring{\labelalign}{left}{% label align left + \def\labelanchor{east} + }{% + \ifdefstring{\labelalign}{right}{% label align left + \def\labelanchor{west} + }{% NOT center, left, or right + \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/label align}{“center“, “left“ OR “right“ as key required}}% + }% \ifdefstring{\labelalign}{right} + }% \ifdefstring{\labelalign}{left} + }% \ifdefstring{\labelalign}{center} + \node[text=\foreground,anchor=\labelanchor,align=\labelalign] at (ts-v-l) {\footnotesize\emph{\labelcontent}};% label + }% + }},% +}% +% +%%%%%%%%%%%%%%% +\endinput% +%
\ No newline at end of file |