revised symbol and syntax for balises

master
Martin Scheidt 2022-03-22 15:11:03 +01:00
parent 876c8907e5
commit d1ff03de71
54 changed files with 329 additions and 361 deletions

View File

@ -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

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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}} \\
%%%%%%%%%%%%%%%%%%%%%

View File

@ -11,4 +11,4 @@
\maintrack (A) -- (B);
\routesignal[forward] at (S) label ();
\balise[] at (S) label ();
\balise[forward] at (S) label ();

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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);

View File

@ -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);

View File

@ -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 ();

View File

@ -10,4 +10,4 @@
\maintrack (A) -- (B);
\balise[] at (T) label ();
\trackloop[] at (T) label ();

View File

@ -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 ();

View File

@ -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 ();

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -3,7 +3,7 @@
\coordinate (A) at (0,0);
\balise[position=left] at (A) label ();
\balise[backward] at (A) label ();
% anchor
\anchor at (A);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -3,7 +3,7 @@
\coordinate (A) at (0,0);
\balise[position=right] at (A) label ();
\balise[forward] at (A) label ();
% anchor
\anchor at (A);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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 \\%

View File

@ -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}
\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
%% 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);%
},%
}%
%

View File

@ -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}

Binary file not shown.