tikz-trackschematic/doc/manual.tex

1112 lines
51 KiB
TeX
Raw Normal View History

%% 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}
2020-01-16 21:49:53 +01:00
\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{Stationary 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{Non-stationary points}\label{sec:points}
\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{Braking point}
\symbol{braking_point_forward.tikz}
\begin{lstlisting}[gobble=10]
\brakingpoint[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{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{End of movement authority}
\symbol{end_of_movement_authority_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{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{Danger point}
\symbol{danger_point_forward.tikz}
\begin{lstlisting}[gobble=10]
\dangerpoint[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{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}
\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{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 & view point & \symbol{view_point_forward.tikz} & \ref{sec:points} \\
\hline
\No & braking point & \symbol{braking_point_forward.tikz} & \ref{sec:points} \\
\hline
\No & end of movement authority & \symbol{end_of_movement_authority_forward.tikz} & \ref{sec:points} \\
\hline
\No & danger point & \symbol{danger_point_forward.tikz} & \ref{sec:points} \\
\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 & 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}