tikz-trackschematic/doc/manual.tex

1112 lines
51 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

%% 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 Unions 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}