revised symbol and syntax for balises
|
@ -10,12 +10,12 @@ Categories: Added, Changed, Deprecated, Removed, Fixed, and Security.
|
|||
|
||||
### Added
|
||||
|
||||
* interlocking symbols for other than manual interlockings
|
||||
* i18n support
|
||||
* unified build script for development
|
||||
|
||||
### Changed
|
||||
|
||||
* transmitters for balises
|
||||
* revised symbol and syntax for balises
|
||||
* the track loop was separated from the balises
|
||||
* replaced "\gettikzxy" with "\path let" syntax
|
||||
* label placement for derailers
|
||||
|
||||
|
|
BIN
doc/manual.pdf
|
@ -221,6 +221,7 @@
|
|||
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{standalone}
|
||||
|
@ -1025,46 +1026,40 @@
|
|||
|
||||
\subsubsection{Transmitters}\label{sec:transmitters}
|
||||
|
||||
\symboldescription{Generic transmitter command}\label{sym:generictransmitter}
|
||||
\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}\label{sym:balise}
|
||||
\tsSymbol{transmitter_forward}
|
||||
\tsSymbol{balise_group}
|
||||
\tsSymbol{balise_individual}
|
||||
\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{forward}, or \texttt{backward} (mandatory)
|
||||
\item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
|
||||
\item \texttt{switched} (optional)
|
||||
\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}
|
||||
The basic state is one in which the individual balises are not shown. The direction of the balises is the same as the direction of action. The direction of the balises is indicated by the orientation of the label. The \texttt{switched} option changes the symbol over the entire length.
|
||||
\begin{itemize}[label={}]
|
||||
\item \texttt{along=\{\textit{comma separated list of integers}\}} (optional)
|
||||
\item \texttt{oppose=\{\textit{comma separated list of integers}\}} (optional)
|
||||
\item \texttt{along switched=\{\textit{comma separated list of integers}\}} (optional)
|
||||
\item \texttt{oppose switched=\{\textit{comma separated list of integers}\}} (optional)
|
||||
\item \texttt{index} (optional)
|
||||
\end{itemize}
|
||||
If individual balises are to be shown, they are indicated via the \texttt{along} or \texttt{along switched} with the direction of the balise and with \texttt{oppose} or \texttt{oppose switched} against the balise. A list with integer values is passed to the parameter. The list starts with 0. For example, three individual balises are drawn with the list \{0,1,3\} and the balise at position 2 is left out. With the option \texttt{index}, the index number can also be displayed. If one of the options \texttt{along}, \texttt{along switched}, \texttt{oppose}, or \texttt{oppose switched} is set, the \texttt{switched} option is ignored.
|
||||
|
||||
\mbox{}\\[0.2cm]
|
||||
Symbology entry as seen at top:
|
||||
\begin{lstlisting}[gobble=10]
|
||||
\tsSymbol{transmitter_forward}% TeX environment
|
||||
\tsSymbol{balise_group}% TeX environment
|
||||
\tsSymbol{balise_individual}% TeX environment
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
\symboldescription{Loop}\label{sym:loop}
|
||||
\tsSymbol{loop_transmitter}
|
||||
\tsSymbol{trackloop}
|
||||
\begin{lstlisting}[gobble=10]
|
||||
\trackloop[options] at (coord) label (name);
|
||||
\end{lstlisting}
|
||||
|
@ -1074,15 +1069,11 @@
|
|||
\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}
|
||||
|
||||
\mbox{}\\[0.2cm]
|
||||
Symbology entry as seen at top:
|
||||
\begin{lstlisting}[gobble=10]
|
||||
\tsSymbol{loop_transmitter}% TeX environment
|
||||
\tsSymbol{trackloop}% TeX environment
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
|
@ -1590,13 +1581,11 @@
|
|||
\hline
|
||||
\No & direction control & \tsSymbol{direction_control} & \ref{sec:routes} \\
|
||||
\hline
|
||||
\No & transmitter & \tsSymbol{transmitter} & \ref{sec:transmitters} \\
|
||||
\No & balise group & \tsSymbol{balise_group} & \ref{sec:transmitters} \\
|
||||
\hline
|
||||
\No & transmitter effective forward & \tsSymbol{transmitter_forward} & \ref{sec:transmitters} \\
|
||||
\No & balise individual & \tsSymbol{balise_individual} & \ref{sec:transmitters} \\
|
||||
\hline
|
||||
\No & transmitter bidirectional & \tsSymbol{transmitter_bidirectional} & \ref{sec:transmitters} \\
|
||||
\hline
|
||||
\No & loop transmitter & \tsSymbol{loop_transmitter} & \ref{sec:transmitters} \\
|
||||
\No & track loop & \tsSymbol{trackloop} & \ref{sec:transmitters} \\
|
||||
\hline
|
||||
\No & platform & \tsSymbol[1.4]{platform} & \ref{sec:constructions} \\
|
||||
\hline
|
||||
|
|
BIN
doc/snippets.pdf
|
@ -569,33 +569,33 @@ No. & Name & Clip & Code & Manual reference\\
|
|||
%% transmitter %%
|
||||
|
||||
\hline
|
||||
\No & transmitter (right \& left) &
|
||||
\symbol{transmitter.tikz} & \code{transmitter.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:generictransmitter} p. \pageref{sym:generictransmitter}} \\
|
||||
|
||||
\hline
|
||||
\No & \parbox[c]{5cm}{transmitter (right)\\with signal} &
|
||||
\symbol{transmitter_right_with_signal.tikz} & \code{transmitter_right_with_signal.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:generictransmitter} p. \pageref{sym:generictransmitter} \\ \& \\ Section \ref{sym:routesignal} p. \pageref{sym:routesignal}} \\
|
||||
|
||||
\hline
|
||||
\No & \parbox[c]{5cm}{transmitter (right \& left)\\ effective forward} &
|
||||
\symbol{transmitter_forward.tikz} & \code{transmitter_forward.tikz} &
|
||||
\No & balise (forward \& backward) &
|
||||
\symbol{balises.tikz} & \code{balises.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:balise} p. \pageref{sym:balise}} \\
|
||||
|
||||
\hline
|
||||
\No & \parbox[c]{5cm}{transmitter (right \& left)\\ effective backward} &
|
||||
\symbol{transmitter_backward.tikz} & \code{transmitter_backward.tikz} &
|
||||
\No & \parbox[c]{5cm}{balise (forward)\\with signal} &
|
||||
\symbol{balise_forward_with_signal.tikz} & \code{balise_forward_with_signal.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:balise} p. \pageref{sym:balise} \\ \& \\ Section \ref{sym:routesignal} p. \pageref{sym:routesignal}} \\
|
||||
|
||||
\hline
|
||||
\No & \parbox[c]{5cm}{balise (forward \& backward)\\ switched} &
|
||||
\symbol{balise_switched.tikz} & \code{balise_switched.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:balise} p. \pageref{sym:balise}} \\
|
||||
|
||||
\hline
|
||||
\No & \parbox[c]{5cm}{transmitter (right \& left)\\ effective bidirectional} &
|
||||
\symbol{transmitter_bidirectional.tikz} & \code{transmitter_bidirectional.tikz} &
|
||||
\No & \parbox[c]{5cm}{individual balises\\ (forward \& backward)} &
|
||||
\symbol{individual_balises.tikz} & \code{individual_balises.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:balise} p. \pageref{sym:balise}} \\
|
||||
|
||||
\hline
|
||||
\No & loop transmitter&
|
||||
\symbol{loop_transmitter.tikz} & \code{loop_transmitter.tikz} &
|
||||
\No & \parbox[c]{5cm}{individual balises\\ (forward \& backward) mixed} &
|
||||
\symbol{individual_balises_mixed.tikz} & \code{individual_balises_mixed.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:balise} p. \pageref{sym:balise}} \\
|
||||
|
||||
\hline
|
||||
\No & track loop &
|
||||
\symbol{trackloop.tikz} & \code{trackloop.tikz} &
|
||||
\parbox[c]{4cm}{\centering\texttt{trafficcontrol} \\ Section \ref{sym:loop} p. \pageref{sym:loop}} \\
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
\maintrack (A) -- (B);
|
||||
|
||||
\routesignal[forward] at (S) label ();
|
||||
\balise[] at (S) label ();
|
||||
\balise[forward] at (S) label ();
|
|
@ -11,5 +11,5 @@
|
|||
|
||||
\maintrack (A) -- (B);
|
||||
|
||||
\balise[forward] at (T1) label ();
|
||||
\balise[forward,position=left] at (T2) label ();
|
||||
\balise[forward,switched] at (T1) label ();
|
||||
\balise[backward,switched] at (T2) label ();
|
|
@ -11,5 +11,5 @@
|
|||
|
||||
\maintrack (A) -- (B);
|
||||
|
||||
\balise[] at (T1) label ();
|
||||
\balise[position=left] at (T2) label ();
|
||||
\balise[forward] at (T1) label ();
|
||||
\balise[backward] at (T2) label ();
|
|
@ -11,5 +11,5 @@
|
|||
|
||||
\maintrack (A) -- (B);
|
||||
|
||||
\balise[backward] at (T1) label ();
|
||||
\balise[backward,position=left] at (T2) label ();
|
||||
\balise[forward,along={0,1,2,3}] at (T1) label (A);
|
||||
\balise[backward,along={0,1,2,3}] at (T2) label (B);
|
|
@ -11,5 +11,17 @@
|
|||
|
||||
\maintrack (A) -- (B);
|
||||
|
||||
\balise[bidirectional] at (T1) label ();
|
||||
\balise[bidirectional,position=left] at (T2) label ();
|
||||
\balise[
|
||||
forward,
|
||||
along={0,1,3},
|
||||
along switched={2},
|
||||
oppose={0,2},
|
||||
] at (T1) label (A);
|
||||
\balise[
|
||||
backward,
|
||||
along={0,1,3},
|
||||
along switched={2},
|
||||
oppose={0,2,3},
|
||||
oppose switched={1},
|
||||
index % show index number
|
||||
] at (T2) label (B);
|
|
@ -1,13 +0,0 @@
|
|||
%!TEX TS-program = pdflatexmk
|
||||
%!TEX root = ../snippets.tex
|
||||
|
||||
% Copyright (c) 2018 - 2022, 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 ();
|
|
@ -10,4 +10,4 @@
|
|||
|
||||
\maintrack (A) -- (B);
|
||||
|
||||
\balise[] at (T) label ();
|
||||
\trackloop[] at (T) label ();
|
|
@ -1,13 +0,0 @@
|
|||
%!TEX TS-program = pdflatexmk
|
||||
%!TEX root = ../snippets.tex
|
||||
|
||||
% Copyright (c) 2018 - 2022, 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 ();
|
|
@ -1,13 +0,0 @@
|
|||
%!TEX TS-program = pdflatexmk
|
||||
%!TEX root = ../snippets.tex
|
||||
|
||||
% Copyright (c) 2018 - 2022, 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 ();
|
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB |
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 0 0 L 11 0 L 11 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 7.585938 L 0.5 0.5 L 14.671875 0.5 L 14.671875 7.585938 Z M 0.5 7.585938 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 -0.0009375 L -7.085 7.085 L 7.086875 7.085 L 7.086875 -0.0009375 Z M -7.085 -0.0009375 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.835 1.417031 L -5.670937 3.542031 L -2.835 5.670937 Z M -2.835 1.417031 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 7.585938 C 7.699219 7.523438 7.648438 7.472656 7.585938 7.472656 C 7.523438 7.472656 7.472656 7.523438 7.472656 7.585938 C 7.472656 7.648438 7.523438 7.699219 7.585938 7.699219 C 7.648438 7.699219 7.699219 7.648438 7.699219 7.585938 Z M 7.699219 7.585938 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 0 0 L 11 0 L 11 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 0.496094 L 0.5 7.585938 L 14.671875 7.585938 L 14.671875 0.496094 Z M 0.5 0.496094 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 0.00190625 L -7.085 -7.087937 L 7.086875 -7.087937 L 7.086875 0.00190625 Z M -7.085 0.00190625 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.835 -1.416062 L -5.670937 -3.544969 L -2.835 -5.669969 Z M -2.835 -1.416062 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 0.496094 C 7.699219 0.433594 7.648438 0.382812 7.585938 0.382812 C 7.523438 0.382812 7.472656 0.433594 7.472656 0.496094 C 7.472656 0.5625 7.523438 0.609375 7.585938 0.609375 C 7.648438 0.609375 7.699219 0.5625 7.699219 0.496094 Z M 7.699219 0.496094 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,27 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 4 0 L 15.167969 0 L 15.167969 8.082031 L 4 8.082031 Z M 4 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3">
|
||||
<path d="M 0 0 L 11 0 L 11 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 7.585938 L 0.5 0.5 L 14.671875 0.5 L 14.671875 7.585938 Z M 0.5 7.585938 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 -0.0009375 L -7.085 7.085 L 7.086875 7.085 L 7.086875 -0.0009375 Z M -7.085 -0.0009375 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2.832969 1.417031 L 5.668906 3.542031 L 2.832969 5.670937 Z M 2.832969 1.417031 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.835 1.417031 L -5.670937 3.542031 L -2.835 5.670937 Z M -2.835 1.417031 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 7.585938 C 7.699219 7.523438 7.648438 7.472656 7.585938 7.472656 C 7.523438 7.472656 7.472656 7.523438 7.472656 7.585938 C 7.472656 7.648438 7.523438 7.699219 7.585938 7.699219 C 7.648438 7.699219 7.699219 7.648438 7.699219 7.585938 Z M 7.699219 7.585938 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
|
@ -1,27 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 4 0 L 15.167969 0 L 15.167969 8.082031 L 4 8.082031 Z M 4 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3">
|
||||
<path d="M 0 0 L 11 0 L 11 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 0.496094 L 0.5 7.585938 L 14.671875 7.585938 L 14.671875 0.496094 Z M 0.5 0.496094 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 0.00190625 L -7.085 -7.087937 L 7.086875 -7.087937 L 7.086875 0.00190625 Z M -7.085 0.00190625 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2.832969 -1.416062 L 5.668906 -3.544969 L 2.832969 -5.669969 Z M 2.832969 -1.416062 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.835 -1.416062 L -5.670937 -3.544969 L -2.835 -5.669969 Z M -2.835 -1.416062 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 0.496094 C 7.699219 0.433594 7.648438 0.382812 7.585938 0.382812 C 7.523438 0.382812 7.472656 0.433594 7.472656 0.496094 C 7.472656 0.5625 7.523438 0.609375 7.585938 0.609375 C 7.648438 0.609375 7.699219 0.5625 7.699219 0.496094 Z M 7.699219 0.496094 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 4 0 L 15.167969 0 L 15.167969 8.082031 L 4 8.082031 Z M 4 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 7.585938 L 0.5 0.5 L 14.671875 0.5 L 14.671875 7.585938 Z M 0.5 7.585938 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 -0.0009375 L -7.085 7.085 L 7.086875 7.085 L 7.086875 -0.0009375 Z M -7.085 -0.0009375 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2.832969 1.417031 L 5.668906 3.542031 L 2.832969 5.670937 Z M 2.832969 1.417031 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 7.585938 C 7.699219 7.523438 7.648438 7.472656 7.585938 7.472656 C 7.523438 7.472656 7.472656 7.523438 7.472656 7.585938 C 7.472656 7.648438 7.523438 7.699219 7.585938 7.699219 C 7.648438 7.699219 7.699219 7.648438 7.699219 7.585938 Z M 7.699219 7.585938 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 4 0 L 15.167969 0 L 15.167969 8.082031 L 4 8.082031 Z M 4 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 0.496094 L 0.5 7.585938 L 14.671875 7.585938 L 14.671875 0.496094 Z M 0.5 0.496094 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 0.00190625 L -7.085 -7.087937 L 7.086875 -7.087937 L 7.086875 0.00190625 Z M -7.085 0.00190625 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 2.832969 -1.416062 L 5.668906 -3.544969 L 2.832969 -5.669969 Z M 2.832969 -1.416062 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 0.496094 C 7.699219 0.433594 7.648438 0.382812 7.585938 0.382812 C 7.523438 0.382812 7.472656 0.433594 7.472656 0.496094 C 7.472656 0.5625 7.523438 0.609375 7.585938 0.609375 C 7.648438 0.609375 7.699219 0.5625 7.699219 0.496094 Z M 7.699219 0.496094 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.7 KiB |
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 7.585938 L 0.5 0.5 L 14.671875 0.5 L 14.671875 7.585938 Z M 0.5 7.585938 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 -0.0009375 L -7.085 7.085 L 7.086875 7.085 L 7.086875 -0.0009375 Z M -7.085 -0.0009375 " transform="matrix(1,0,0,-1,7.585,7.585)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 7.585938 C 7.699219 7.523438 7.648438 7.472656 7.585938 7.472656 C 7.523438 7.472656 7.472656 7.523438 7.472656 7.585938 C 7.472656 7.648438 7.523438 7.699219 7.585938 7.699219 C 7.648438 7.699219 7.699219 7.648438 7.699219 7.585938 Z M 7.699219 7.585938 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15.169pt" height="8.083pt" viewBox="0 0 15.169 8.083" version="1.1">
|
||||
<defs>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 15.167969 0 L 15.167969 8.082031 L 0 8.082031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 0.5 0.496094 L 0.5 7.585938 L 14.671875 7.585938 L 14.671875 0.496094 Z M 0.5 0.496094 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -7.085 0.00190625 L -7.085 -7.087937 L 7.086875 -7.087937 L 7.086875 0.00190625 Z M -7.085 0.00190625 " transform="matrix(1,0,0,-1,7.585,0.498)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:1;" d="M 7.699219 0.496094 C 7.699219 0.433594 7.648438 0.382812 7.585938 0.382812 C 7.523438 0.382812 7.472656 0.433594 7.472656 0.496094 C 7.472656 0.5625 7.523438 0.609375 7.585938 0.609375 C 7.648438 0.609375 7.699219 0.5625 7.699219 0.496094 Z M 7.699219 0.496094 "/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
|
@ -3,7 +3,7 @@
|
|||
|
||||
\coordinate (A) at (0,0);
|
||||
|
||||
\balise[position=left] at (A) label ();
|
||||
\balise[backward] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
\coordinate (A) at (0,0);
|
||||
|
||||
\balise[forward,position=left] at (A) label ();
|
||||
\balise[backward,switched] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
\coordinate (A) at (0,0);
|
||||
|
||||
\balise[forward,position=right] at (A) label ();
|
||||
\balise[backward,along={0}] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
\coordinate (A) at (0,0);
|
||||
|
||||
\balise[bidirectional,position=left] at (A) label ();
|
||||
\balise[backward,along switched={0}] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
\coordinate (A) at (0,0);
|
||||
|
||||
\balise[position=right] at (A) label ();
|
||||
\balise[forward] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -0,0 +1,9 @@
|
|||
% Copyright (c) 2018 - 2022, 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);
|
||||
|
||||
\balise[forward,switched] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -0,0 +1,9 @@
|
|||
% Copyright (c) 2018 - 2022, 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);
|
||||
|
||||
\balise[forward,along={0}] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
\coordinate (A) at (0,0);
|
||||
|
||||
\balise[backward,position=left] at (A) label ();
|
||||
\balise[forward,along switched={0}] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -0,0 +1,9 @@
|
|||
% Copyright (c) 2018 - 2022, 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);
|
||||
|
||||
\trackloop[] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -1,9 +0,0 @@
|
|||
% Copyright (c) 2018 - 2022, 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);
|
||||
|
||||
\balise[backward,position=right] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -1,9 +0,0 @@
|
|||
% Copyright (c) 2018 - 2022, 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);
|
||||
|
||||
\balise[bidirectional,position=right] at (A) label ();
|
||||
|
||||
% anchor
|
||||
\anchor at (A);
|
|
@ -94,10 +94,9 @@
|
|||
\tsSymbol{clearing_point} & clearing point \\%
|
||||
\tsSymbol{block_clearing_point} & block clearing point \\%
|
||||
\tsSymbol{route_clearing_point} & route clearing point \\%
|
||||
\tsSymbol{transmitter} & transmitter \\%
|
||||
\tsSymbol{transmitter_forward} & transmitter effective forward \\%
|
||||
\tsSymbol{transmitter_bidirectional}& transmitter bidirectional \\%
|
||||
\tsSymbol{loop_transmitter} & loop transmitter \\%
|
||||
\tsSymbol{balise_group} & unenumerated balise group (switchable) \\%
|
||||
\tsSymbol{balise_individual} & individual balises (switchable) \\%
|
||||
\tsSymbol{trackloop} & track loop transmitter \\%
|
||||
\tsSymbol{route} & route \\%
|
||||
\tsSymbol{direction_control} & direction control \\%
|
||||
\tsSymbol{platform} & platform \\%
|
||||
|
|
|
@ -426,25 +426,17 @@
|
|||
}%
|
||||
%
|
||||
%%%%%%%%%%%%%%%
|
||||
% symbol transmitter
|
||||
% symbol trackloop
|
||||
%%%%%%%%%%%%%%%
|
||||
% 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
|
||||
\pic[#1] at (#3) {trackloop={#2/#4/#5}}% symbol
|
||||
}%
|
||||
% symbol definition
|
||||
\tikzset{%
|
||||
pics/transmitter/.default=,%
|
||||
pics/transmitter/.style args={#1/#2/#3}{code={%
|
||||
pics/trackloop/.default=,%
|
||||
pics/trackloop/.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!
|
||||
|
@ -461,32 +453,7 @@
|
|||
}% 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}};%
|
||||
|
@ -498,24 +465,200 @@
|
|||
}%
|
||||
}},% end pics/transmitter/.style args={#1/#2/#3}
|
||||
% symbology entry
|
||||
symbology_transmitter/.pic = {%
|
||||
symbology_trackloop/.pic = {%
|
||||
\maintrack (0,0) -- (6,0);%
|
||||
\balise[] at (3,0) label ();%
|
||||
\trackloop[forward] at (3,0) label ();%
|
||||
},%
|
||||
}%
|
||||
%
|
||||
%%%%%%%%%%%%%%%
|
||||
% symbol balise
|
||||
%%%%%%%%%%%%%%%
|
||||
% command
|
||||
\newcommand\balise{}% just for safety
|
||||
\def\balise[#1]#2(#3)#4(#5){% \balise[options] at (coord) label (name);
|
||||
\pic[#1] at (#3) {balise={#2/#4/#5}}% symbol
|
||||
}%
|
||||
\pgfkeys{%
|
||||
/tikz/trackschematic/trafficcontrol/.is family,%
|
||||
/tikz/trackschematic/trafficcontrol/.cd,%
|
||||
%% route signal type
|
||||
switched/.value forbidden,%
|
||||
switched/.code={\settoggle{switched}{true}},%
|
||||
/tikz/switched/.forward to=/tikz/trackschematic/trafficcontrol/switched,%
|
||||
%% balises along the direction
|
||||
along/.store in=\along,% array of integer
|
||||
along=none,% DEFAULT
|
||||
/tikz/along/.forward to=/tikz/trackschematic/trafficcontrol/along,%
|
||||
%% balises oppose the direction
|
||||
oppose/.store in=\oppose,% array of integer
|
||||
oppose=none,% DEFAULT
|
||||
/tikz/oppose/.forward to=/tikz/trackschematic/trafficcontrol/oppose,%
|
||||
%% balises along the direction
|
||||
along switched/.store in=\alongswitched,% array of integer
|
||||
along switched=none,% DEFAULT
|
||||
/tikz/along switched/.forward to=/tikz/trackschematic/trafficcontrol/along switched,%
|
||||
%% balises oppose the direction
|
||||
oppose switched/.store in=\opposeswitched,% array of integer
|
||||
oppose switched=none,% DEFAULT
|
||||
/tikz/oppose switched/.forward to=/tikz/trackschematic/trafficcontrol/oppose switched,%
|
||||
%% display index number
|
||||
index number/.value forbidden,%
|
||||
index number/.code={\settoggle{index_number}{true}},%
|
||||
/tikz/index/.forward to=/tikz/trackschematic/trafficcontrol/index number,%
|
||||
}%
|
||||
% options
|
||||
\newtoggle{unnumberd}\settoggle{unnumberd}{true}% DEFAULT
|
||||
\newtoggle{switched}\settoggle{switched}{false}%
|
||||
\newtoggle{index_number}\settoggle{index_number}{false}%
|
||||
% symbol definition
|
||||
\tikzset{%
|
||||
pics/balise/.default=,%
|
||||
pics/balise/.style args={#1/#2/#3}{code={%
|
||||
%%
|
||||
%%%%%%%[steps]%%%%%%
|
||||
%% 0. setup settings
|
||||
%% 1. draw marker
|
||||
%% 2. draw label
|
||||
%%%%%%%%%%%%%%%%%%%%
|
||||
%% 0. 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}
|
||||
%%
|
||||
%% 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}
|
||||
%%
|
||||
%% number of balises known?
|
||||
\ifdefstring{\along}{none}{}{% a number has been set
|
||||
\settoggle{unnumberd}{false}%
|
||||
}%
|
||||
%% number of balises known?
|
||||
\ifdefstring{\oppose}{none}{}{% a number has been set
|
||||
\settoggle{unnumberd}{false}%
|
||||
}%
|
||||
%% number of balises known?
|
||||
\ifdefstring{\alongswitched}{none}{}{% a number has been set
|
||||
\settoggle{unnumberd}{false}%
|
||||
}%
|
||||
%% number of balises known?
|
||||
\ifdefstring{\opposeswitched}{none}{}{% a number has been set
|
||||
\settoggle{unnumberd}{false}%
|
||||
}%
|
||||
%%
|
||||
%%%%%%%%%%%%%%%%%%%%
|
||||
%% 1. marker
|
||||
\tikzset{every path/.style={draw=\foreground,line width=0.75pt,rounded corners=0.2pt}};%
|
||||
%%
|
||||
\iftoggle{unnumberd}{% no number has been set
|
||||
%% marker for undefined balises
|
||||
\path[fill=\background] ($(-0.3,0)$) rectangle ($\trafficfactor*\facefactor*(0,-0.25) + (0.3,0)$);% balise marker
|
||||
\iftoggle{switched}{% balises can be switched
|
||||
\path[fill=\foreground] ($\trafficfactor*\facefactor*(0,-0.075) + (-0.225,0)$) rectangle%
|
||||
($\trafficfactor*\facefactor*(0,-0.175) + ( 0.225,0)$);% switch marker
|
||||
}{}%
|
||||
}{% a number has been set
|
||||
%% marker for numbered balises
|
||||
\ifdefstring{\along}{none}{}{
|
||||
\foreach \n in \along{%
|
||||
\path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle%
|
||||
($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,-0.25)$);% balise marker
|
||||
\iftoggle{index_number}{%
|
||||
\node[text=\foreground] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,-0.125)$) {\tiny\n};%
|
||||
}{}%
|
||||
}%
|
||||
}%
|
||||
\ifdefstring{\oppose}{none}{}{
|
||||
\foreach \n in \oppose{%
|
||||
\path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle%
|
||||
($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,0.25)$);% balise marker
|
||||
\iftoggle{index_number}{%
|
||||
\node[text=\foreground] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,0.125)$) {\tiny\n};%
|
||||
}{}%
|
||||
}%
|
||||
}%
|
||||
\ifdefstring{\alongswitched}{none}{}{
|
||||
\foreach \n in \alongswitched{%
|
||||
\path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle%
|
||||
($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,-0.25)$);% balise marker
|
||||
\path[fill=\foreground] ($\n*\facefactor*(0.2,0) + (0.05,0) + \trafficfactor*\facefactor*(0,-0.05)$) rectangle%
|
||||
($\n*\facefactor*(0.2,0) + (0.15,0) + \trafficfactor*\facefactor*(0,-0.2)$);% switch marker
|
||||
\iftoggle{index_number}{%
|
||||
\node[text=\background] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,-0.125)$) {\tiny\n};%
|
||||
}{}%
|
||||
}%
|
||||
}%
|
||||
\ifdefstring{\opposeswitched}{none}{}{
|
||||
\foreach \n in \opposeswitched{%
|
||||
\path[fill=\background] ($\n*\facefactor*(0.2,0)$) rectangle%
|
||||
($\n*\facefactor*(0.2,0) + (0.2 ,0) + \trafficfactor*\facefactor*(0,0.25)$);% balise marker
|
||||
\path[fill=\foreground] ($\n*\facefactor*(0.2,0) + (0.05,0) + \trafficfactor*\facefactor*(0,0.05)$) rectangle%
|
||||
($\n*\facefactor*(0.2,0) + (0.15,0) + \trafficfactor*\facefactor*(0,0.2)$);% switch marker
|
||||
\iftoggle{index_number}{%
|
||||
\node[text=\background] at ($\n*\facefactor*(0.2,0) + (0.1,0) + \trafficfactor*\facefactor*(0,0.125)$) {\tiny\n};%
|
||||
}{}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
%%
|
||||
%%%%%%%%%%%%%%%%%%%%
|
||||
%% 2. label
|
||||
\ifdefstring{\labelcontent}{}{}{% label NOT empty
|
||||
%% coord
|
||||
\iftoggle{unnumberd}{% no number has been set
|
||||
\coordinate (label-coord) at ($\trafficfactor*\facefactor*(0,-0.25)$);%
|
||||
}{%
|
||||
\coordinate (label-coord) at ($\trafficfactor*\facefactor*(0,-0.25) + (0.1,0)$);%
|
||||
}%
|
||||
\ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default
|
||||
\path let \p1=\labelcoord in coordinate (label-coord) at ($(label-coord)+(\x1,\y1)$);%
|
||||
}%
|
||||
%% label style
|
||||
\tikzset{every node/.style={font=\sffamily,text=\foreground}};%
|
||||
%
|
||||
\ifdefstring{\trafficpractice}{left}{%
|
||||
\tikzset{every node/.append style={left,align=right}};%
|
||||
}{%
|
||||
\tikzset{every node/.append style={right,align=left}};%
|
||||
}%
|
||||
\ifdefstring{\face}{forward}{%
|
||||
\tikzset{every node/.append style={rotate=270}};%
|
||||
}{%
|
||||
\tikzset{every node/.append style={rotate=90}};%
|
||||
}%
|
||||
%% label
|
||||
\node at (label-coord) {\footnotesize \labelcontent};%
|
||||
}%
|
||||
}},% end pics/balise/.style args={#1/#2/#3}
|
||||
% symbology entry
|
||||
symbology_transmitter_forward/.pic = {%
|
||||
symbology_balise_group/.pic = {%
|
||||
\maintrack (0,0) -- (6,0);%
|
||||
\balise[forward] at (3,0) label ();%
|
||||
\balise[forward] at (2,0) label (A);%
|
||||
\balise[forward,switched] at (4,0) label (B);%
|
||||
},%
|
||||
% symbology entry
|
||||
symbology_transmitter_bidirectional/.pic = {%
|
||||
symbology_balise_individual/.pic = {%
|
||||
\maintrack (0,0) -- (6,0);%
|
||||
\balise[bidirectional] at (3,0) label ();%
|
||||
},%
|
||||
% symbology entry
|
||||
symbology_loop_transmitter/.pic = {%
|
||||
\maintrack (0,0) -- (6,0);%
|
||||
\transmitter[type=loop] at (3,0) label ();%
|
||||
\balise[forward,along={0,1,2}] at (2,0) label (A);%
|
||||
\balise[forward,along switched={0,1,2}] at (4,0) label (B);%
|
||||
},%
|
||||
}%
|
||||
%
|
||||
|
|
|
@ -10,34 +10,57 @@
|
|||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
|
||||
\foreach \i in {1,2,...,3}{% base coordinate
|
||||
\foreach \i in {1,...,8}{% base coordinate
|
||||
\coordinate (A\i) at ($(0,0) + 2*(0,-\i)$);% base coordinate
|
||||
\coordinate (B\i) at ($(8,0) + 2*(0,-\i)$);% base coordinate
|
||||
}
|
||||
|
||||
\foreach \i in {1,2,...,3}{% draw main tracks on base coordinate
|
||||
\foreach \i in {1,...,8}{% draw main tracks on base coordinate
|
||||
\maintrack (A\i) -- (B\i);
|
||||
}
|
||||
|
||||
\foreach \i in {1,2,...,3}{% coordinates for testing symbols
|
||||
\foreach \i in {1,...,8}{% coordinates for testing symbols
|
||||
\coordinate (X\i-1) at ($(1,0) + 2*(0,-\i)$);
|
||||
\coordinate (X\i-2) at ($(3,0) + 2*(0,-\i)$);
|
||||
\coordinate (X\i-3) at ($(5,0) + 2*(0,-\i)$);
|
||||
\coordinate (X\i-4) at ($(7,0) + 2*(0,-\i)$);
|
||||
}
|
||||
|
||||
\balise[] at (X1-1) label (X1-1);
|
||||
\balise[position=left] at (X1-2) label (X1-2);
|
||||
\balise[forward] at (X1-3) label (X1-3);
|
||||
\balise[forward,position=left] at (X1-4) label (X1-4);
|
||||
\balise[forward] at (X1-1) label (X1-1);
|
||||
\balise[forward,position=left] at (X1-2) label (X1-2);
|
||||
\balise[backward] at (X1-3) label (X1-3);
|
||||
\balise[backward,position=left] at (X1-4) label (X1-4);
|
||||
|
||||
\balise[backward] at (X2-1) label (X2-1);
|
||||
\balise[backward,position=left] at (X2-2) label (X2-2);
|
||||
\balise[bidirectional] at (X2-3) label (X2-3);
|
||||
\balise[bidirectional,position=left] at (X2-4) label (X2-4);
|
||||
\balise[forward,switched] at (X2-1) label (X2-1);
|
||||
\balise[forward,position=left,switched] at (X2-2) label (X2-2);
|
||||
\balise[backward,switched] at (X2-3) label (X2-3);
|
||||
\balise[backward,position=left,switched] at (X2-4) label (X2-4);
|
||||
|
||||
\trackloop[] at (X3-1) label (X3-1);
|
||||
\trackloop[position=left] at (X3-2) label (X3-2);
|
||||
\balise[forward,along={0,1,2,3}] at (X3-1) label (X3-1);
|
||||
\balise[forward,oppose={0,1,2,3}] at (X3-2) label (X3-2);
|
||||
\balise[backward,along={0,1,2,3}] at (X3-3) label (X3-3);
|
||||
\balise[backward,oppose={0,1,2,3}] at (X3-4) label (X3-4);
|
||||
|
||||
\balise[forward,along={0,1,2,3},index] at (X4-1) label (X4-1);
|
||||
\balise[forward,oppose={0,1,2,3},index] at (X4-2) label (X4-2);
|
||||
\balise[backward,along={0,1,2,3},index] at (X4-3) label (X4-3);
|
||||
\balise[backward,oppose={0,1,2,3},index] at (X4-4) label (X4-4);
|
||||
|
||||
\balise[forward,along={0,3,4,5,7,8,9},oppose={0,1,2,3,6,10,11,12,13},index] at (X5-1) label (X5-1);
|
||||
\balise[backward,along={0,1,2,3,5,6,10,11,12,13},oppose={0,1,2,3,4,7,8,9},index] at (X5-4) label (X5-4);
|
||||
|
||||
\balise[forward,along switched={0,1,2,3}] at (X6-1) label (X6-1);
|
||||
\balise[forward,oppose switched={0,1,2,3}] at (X6-2) label (X6-2);
|
||||
\balise[backward,along switched={0,1,2,3}] at (X6-3) label (X6-3);
|
||||
\balise[backward,oppose switched={0,1,2,3}] at (X6-4) label (X6-4);
|
||||
|
||||
\balise[forward,along switched={0,1,2,3},index] at (X7-1) label (X7-1);
|
||||
\balise[forward,oppose switched={0,1,2,3},index] at (X7-2) label (X7-2);
|
||||
\balise[backward,along switched={0,1,2,3},index] at (X7-3) label (X7-3);
|
||||
\balise[backward,oppose switched={0,1,2,3},index] at (X7-4) label (X7-4);
|
||||
|
||||
\trackloop[] at (X8-1) label (X8-1);
|
||||
\trackloop[position=left] at (X8-2) label (X8-2);
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|