diff --git a/.gitignore b/.gitignore index e6598ba..d6de4d6 100644 --- a/.gitignore +++ b/.gitignore @@ -124,7 +124,7 @@ acs-*.bib # knitr *-concordance.tex # TODO Comment the next line if you want to keep your tikz graphics files -*.tikz +# *.tikz *-tikzDictionary # listings @@ -240,3 +240,22 @@ TSWLatexianTemp* # generated if using elsarticle.cls *.spl + +# sublime text with LaTeX +Output + +# OS X temporary files that should never be committed +# +Desktop DF +Desktop DB +.Spotlight-V100 +.DS_Store +.Trashes +.com.apple.timemachine.supported +.fseventsd +.syncinfo +.TemporaryItems +*.swp +*.lock +profile +._* \ No newline at end of file diff --git a/backmatter/versionhistory.tex b/backmatter/versionhistory.tex new file mode 100644 index 0000000..d5450e1 --- /dev/null +++ b/backmatter/versionhistory.tex @@ -0,0 +1,34 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\newcommand{\MS}{Martin Scheidt} +\newcommand{\FN}{Felix Nebel} +\newcommand{\LG}{Lukas Gruber} +\newcommand{\SZ}{Stephan Zieger} +\begin{versionhistory} + %\vhEntry{}{}{||...}{} + \vhEntry{0.1}{2018-04-17}{MS|FN|LG}{ + \IfLanguage{ngerman}{Ersten Prototyp mit Fahrdynamik erstellt} + \IfLanguage{english}{First prototype created with driving dynamics} + } + \vhEntry{0.2}{2018-05-15}{MS|LG}{ + \IfLanguage{ngerman}{Lehrspiel mit Blocklogik erweitert} + \IfLanguage{english}{Educational game with block logic extended} + } + \vhEntry{0.3}{2018-09-03}{MS}{ + \IfLanguage{ngerman}{Handbuch erstellt} + \IfLanguage{english}{Handbook created} + } + \vhEntry{0.3.1}{2018-10-17}{MS}{ + \IfLanguage{ngerman}{Handbuch mit neutralem Design} + \IfLanguage{english}{Handbook with neutral design} + } + \vhEntry{0.4}{2018-11-16}{MS|SZ}{ + \IfLanguage{ngerman}{Übersetzung ins Englische} + \IfLanguage{english}{Translation into english} + } +\end{versionhistory} +\vhListAllAuthorsLongWithAbbrev diff --git a/figures/composition.tex b/figures/composition.tex new file mode 100644 index 0000000..56aec5e --- /dev/null +++ b/figures/composition.tex @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 Martin Scheidt (ISC license) +% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{composition.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/composition.tikz b/figures/composition.tikz new file mode 100644 index 0000000..0c03dd3 --- /dev/null +++ b/figures/composition.tikz @@ -0,0 +1,50 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = composition.tex + +% Copyright 2018 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. + +\begin{scope}[>=latex] + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 0,0) rectangle ++(1,0.5); + \draw [dashed] ([shift={(base)}] 15,0) rectangle ++(1,0.5); + \foreach \x in {1,...,14} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5); + \draw [<->] ([shift={(base)}] 10.5,0.9) -- ++ (4,0) node [fill=white,midway] { + \IfLanguage{english}{train movement} + \IfLanguage{ngerman}{Zugbewegung} + }; + \draw ([shift={(base)}] 5,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); + \draw ([shift={(base)}] 5,0.8) -- ++ (3,0) node [above,midway] { + \IfLanguage{english}{platform} + \IfLanguage{ngerman}{Bahnsteig} + }; + % distant signal + \draw [dashed] ([shift={(base)}] 2,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2); + \path[draw, line width=1pt] ([shift={(base)}] 2,-0.5) -- ++(0,-0.2); + \path[draw, line width=1pt] ([shift={(base)}] 2,-0.6) -- ++(0.5,0); + \path[draw, fill] ([shift={(base)}] 2.5,-0.75) rectangle ++(0.2,0.3); + \path[draw, fill] ([shift={(base)}] 2.5,-0.45) arc (90:270:0.15); + \draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.6) node [near start,align=right,fill=white] { + \IfLanguage{english}{distant signal} + \IfLanguage{ngerman}{Vorsignal} + }; + % main signal + \draw [dashed] ([shift={(base)}] 9,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2); + \path[draw, line width=1pt] ([shift={(base)}] 9,-0.5) -- ++(0,-0.2); + \path[draw, line width=1pt] ([shift={(base)}] 9,-0.6) -- ++(0.5,0); + \path[draw, fill] ([shift={(base)}] 9.5,-0.75) rectangle ++(0.2,0.3); + \path[draw, fill] ([shift={(base)}] 9.7,-0.75) arc (90:270:-0.15); + \draw [->] ([shift={(base)}] 6.5,-1.2) -- ([shift={(base)}] 8.9,-0.6) node [near start,align=right,fill=white] { + \IfLanguage{english}{main signal} + \IfLanguage{ngerman}{Hauptsignal} + }; + % axle counter + \path[draw, line width=1pt] ([shift={(base)}] 9.85,-0.4) -- ++(0.3,0); + \path[draw, line width=1pt, fill] ([shift={(base)}] 9.94,-0.4) circle (0.04); + \path[draw, line width=1pt, fill] ([shift={(base)}] 10.06,-0.4) circle (0.04); + \draw [->] ([shift={(base)}] 13.5,-0.8) -- ([shift={(base)}] 10.2,-0.45) node [near start,align=right,fill=white] { + \IfLanguage{english}{track vacancy detector} + \IfLanguage{ngerman}{Gleisfreimeldegrenze} + }; +\end{scope} diff --git a/figures/control_lever.tex b/figures/control_lever.tex new file mode 100644 index 0000000..ca981dc --- /dev/null +++ b/figures/control_lever.tex @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 Martin Scheidt (ISC license) +% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{control_lever.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/control_lever.tikz b/figures/control_lever.tikz new file mode 100644 index 0000000..30d8d66 --- /dev/null +++ b/figures/control_lever.tikz @@ -0,0 +1,42 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = control_lever.tex + +% Copyright 2018 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. + +\begin{scope} + \coordinate (base) at (0,0); + % arrows + \draw [->,>=latex,line width=1.5pt,green] (1.5,0) .. controls ( 2,-0.5) and ( 4,-0.5) .. ( 4.5,0); + \draw [->,>=latex,line width=1.5pt,green] (5.5,0) .. controls ( 6,-0.5) and ( 8,-0.5) .. ( 8.5,0); + \draw [->,>=latex,line width=1.5pt,green] (9.5,0) .. controls (10,-0.5) and (12,-0.5) .. (12.5,0); + \draw [<-,>=latex,line width=1.5pt,green] (1.5,2) .. controls ( 2,2.5) and ( 4,2.5) .. ( 4.5,2); + \draw [<-,>=latex,line width=1.5pt,green] (5.5,2) .. controls ( 6,2.5) and ( 8,2.5) .. ( 8.5,2); + \draw [<-,>=latex,line width=1.5pt,green] (9.5,2) .. controls (10,2.5) and (12,2.5) .. (12.5,2); + \foreach \x in {0,4,8,12} + \draw [fill=white] ([shift={(base)}] \x,0) rectangle ++(2,2); + \node [align=center] at ( 1,1.6) {\si{\kilo\metre\per\hour}}; + \node [align=center] at ( 1,1 ) {\Large $0$}; + \node [align=center] at ( 1,0.3) {\color{blue} $0$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + }; + \node [align=center] at ( 5,1.6) {\si{\kilo\metre\per\hour}}; + \node [align=center] at ( 5,1 ) {\Large $40$}; + \node [align=center] at ( 5,0.3) {\color{blue} $1$ + \IfLanguage{english}{field} + \IfLanguage{ngerman}{Feld} + }; + \node [align=center] at ( 9,1.6) {\si{\kilo\metre\per\hour}}; + \node [align=center] at ( 9,1 ) {\Large $80$}; + \node [align=center] at ( 9,0.3) {\color{blue} $2$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + }; + \node [align=center] at (13,1.6) {\si{\kilo\metre\per\hour}}; + \node [align=center] at (13,1 ) {\Large $120$}; + \node [align=center] at (13,0.3) {\color{blue} $3$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + }; +\end{scope} diff --git a/figures/initial_setup.tex b/figures/initial_setup.tex new file mode 100644 index 0000000..d8d6f0e --- /dev/null +++ b/figures/initial_setup.tex @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 Martin Scheidt (ISC license) +% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{initial_setup.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/initial_setup.tikz b/figures/initial_setup.tikz new file mode 100644 index 0000000..ad1eef2 --- /dev/null +++ b/figures/initial_setup.tikz @@ -0,0 +1,22 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = initial_setup.tex + +% Copyright 2018 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. + +\begin{scope}[>=latex] + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \foreach \x in {-2,...,9} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [below=18pt,left,align=right] {\tiny \x}; + \draw ([shift={(base)}] -2,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); + \draw ([shift={(base)}] -2,0.8) -- ++ (3,0) node [above,midway] { + \IfLanguage{english}{Stn. A} + \IfLanguage{ngerman}{Bf A} + }; + \path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train + \draw [->] ([shift={(base)}] 5,1.4) -- ([shift={(base)}] 0.85,0.35) node [near start,align=right,fill=white] { + \IfLanguage{english}{Train (direction of travel to the right)} + \IfLanguage{ngerman}{Zug (Fahrtrichtung rechts)} + }; +\end{scope} diff --git a/figures/movement_example1.tikz b/figures/movement_example1.tikz new file mode 100644 index 0000000..1a89325 --- /dev/null +++ b/figures/movement_example1.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 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. + +\begin{scope} + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \foreach \x in {-2,...,9} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; + \path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/movement_example2.tikz b/figures/movement_example2.tikz new file mode 100644 index 0000000..2f21b56 --- /dev/null +++ b/figures/movement_example2.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 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. + +\begin{scope} + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \foreach \x in {-2,...,9} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; + \path[draw, line width=1pt, fill=white] (1.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/movement_example3.tikz b/figures/movement_example3.tikz new file mode 100644 index 0000000..a4c336c --- /dev/null +++ b/figures/movement_example3.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 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. + +\begin{scope} + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \foreach \x in {-2,...,9} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; + \path[draw, line width=1pt, fill=white] (3.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/movement_example4.tikz b/figures/movement_example4.tikz new file mode 100644 index 0000000..97e5ca7 --- /dev/null +++ b/figures/movement_example4.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 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. + +\begin{scope} + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \foreach \x in {-2,...,9} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; + \path[draw, line width=1pt, fill=white] (6.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/movement_example5.tikz b/figures/movement_example5.tikz new file mode 100644 index 0000000..f26c56f --- /dev/null +++ b/figures/movement_example5.tikz @@ -0,0 +1,12 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 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. + +\begin{scope} + \coordinate (base) at (0,0); + \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); + \foreach \x in {-2,...,9} + \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; + \path[draw, line width=1pt, fill=white] (9.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train +\end{scope} \ No newline at end of file diff --git a/figures/sketch.pdf b/figures/sketch.pdf new file mode 100644 index 0000000..34993e1 Binary files /dev/null and b/figures/sketch.pdf differ diff --git a/figures/sketch.tex b/figures/sketch.tex new file mode 100644 index 0000000..5221db5 --- /dev/null +++ b/figures/sketch.tex @@ -0,0 +1,14 @@ +%!TEX TS-program = pdflatexmk + +% Copyright 2018 Martin Scheidt (ISC license) +% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +\documentclass[tikz,border=2,preview=true]{standalone} + +\usepackage[prefix=]{xcolor-solarized} + +\begin{document} + \begin{tikzpicture}[font=\sffamily] + \input{sketch.tikz} + \end{tikzpicture} +\end{document} diff --git a/figures/sketch.tikz b/figures/sketch.tikz new file mode 100644 index 0000000..1ed4748 --- /dev/null +++ b/figures/sketch.tikz @@ -0,0 +1,91 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = sketch.tex + +% Copyright 2018 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. + +% dimensons for signal construction +\def\length{2.0} +\def\height{1.5} +\def\thick{0.4} +\def\gap{0.05} +\def\depth{2.0} + +\tikzset{ + block_signal/.pic={ + % frame + \draw [thick] ( -1.5,-2.0) -- ( 1.5,-2.0) -- (1.5,-4.0) -- (-1.5,-4.0) --cycle; + }; +} +\tikzset{ + block_signal_cross_section/.pic={ + % lever + \draw [thick] (0,0) -- ++( 0,\height) -- ++(\thick,0) -- ++(0,-\height) + -- ++(\length,0) -- ++(0,-\thick) -- ++(-\length,0) -- ++(-\thick,0) -- ++(-\length,0) + -- ++(0,\thick,0) -- cycle; + % frame + \draw [thick] (-\gap,\gap) -- ++(-\length,0) + -- ++(0,-\gap) -- ++(0,-\thick) -- ++(0,-\gap) % inner height + -- ++(\gap,0) -- ++(\length,0) -- ++(\length,0) -- ++(\length,0) -- ++(\gap,0) % inner bottom + -- ++(0,\gap) -- ++(0,\thick) -- ++(0,\gap) % inner height + -- ++(-\length,0) + -- ++(0,\thick) + -- ++(\length,0) -- ++(\thick,0) + -- ++(0,-\thick) -- ++(0,-\gap) -- ++(0,-\thick) -- ++(0,-\gap) -- ++(0,-\thick) % outer height + -- ++(-\thick,0) -- ++(-\gap,0) -- ++(-\length,0) -- ++(-\length,0) -- ++(-\length,0) -- ++(-\gap,0) -- ++(-\thick,0) % outer bottom + -- ++(0,\thick) -- ++(0,\gap) -- ++(0,\thick) -- ++(0,\gap) -- ++(0,\thick) % outer height + -- ++(\length,0) -- ++(\thick,0) + -- cycle; + }; +} +\tikzset{ + block_signal_top_view/.pic={ + % lever + \draw [thick] (0,0) rectangle ++(\thick,\depth); + % frame + \draw [thick] (-\gap,0) -- ++(-\length,0) -- ++(-\thick,0) + -- ++(0,\depth) + -- ++(\length,0) -- ++(\thick,0) + -- cycle; + \draw [thick] (\length,0) -- ++(\length,0) -- ++(\thick,0) + -- ++(0,\depth) + -- ++(-\length,0) -- ++(-\thick,0) + -- cycle; + }; +} +\tikzset{ + track_straight/.pic={ + % rails + \filldraw [base1!60] (0, 1.0) rectangle ++ (14.5, 0.5); + \filldraw [base1!60] (0,-1.0) rectangle ++ (14.5,-0.5); + % frame + \draw [thick] ( 0.0,-2.0) -- ( 0.0,-0.3) -- + ( 0.7,-0.3) arc[start angle=36.6, end angle=323.4, radius=-0.5] -- + ( 0.0,0.3) -- ( 0.0,2.0) -- + (14.5,2.0) -- (14.5,0.3) -- + (15.2,0.3) arc[start angle=323.4, end angle=36.6, radius=-0.5] -- + (14.5,-0.3) -- (14.5,-2.0) -- cycle; + }; +} +\tikzset{ + track_curved/.pic={ + % % rails + % \filldraw [base1!60] (0,3.0) rectangle ++ (14.5,0.5); + % \filldraw [base1!60] (0,0.5) rectangle ++ (14.5,0.5); + % % frame: radius (center) 20,5 cm + % \draw [thick] ( 0.0,0.0) -- ( 0.0,1.7) -- + % ( 0.7,1.7) arc[start angle=36.6, end angle=323.4, radius=-0.5] -- + % ( 0.0,2.3) -- ( 0.0,4.0) -- + % (14.5,4.0) -- (14.5,2.3) -- + % (15.2,2.3) arc[start angle=323.4, end angle=36.6, radius=-0.5] -- + % (14.5,1.7) -- (14.5,0.0) -- cycle; + }; +} + +\begin{tikzpicture} + % \pic at ( 0.0,0) {track_straight}; + % \pic at (14.5,0) {track_straight}; + % \pic at (14.5,0) {block_signal}; + \pic at (14.5,4) {block_signal_cross_section}; + \pic at (14.5,0) {block_signal_top_view}; +\end{tikzpicture} diff --git a/frontmatter/preambel.tex b/frontmatter/preambel.tex new file mode 100644 index 0000000..270b35d --- /dev/null +++ b/frontmatter/preambel.tex @@ -0,0 +1,41 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. +\chapter*{\IfLanguage{english}{Aim and Materials}\IfLanguage{ngerman}{Ziel und Materialien}} + +\noindent +\IfLanguage{english}{The aim of the learning game is to simulate and experience the driving dynamics of trains in the context of block division. This requires:} +\IfLanguage{ngerman}{Ziel des Lernspieles ist die Fahrdynamik von Zügen im Zusammenhang mit Blockteilung zu simulieren und zu erfahren. Dafür wird benötigt:} +\begin{itemize} + \IfLanguage{english}{ + \item two trains with different driving dynamics + \item a track consisting of spaces + \item train berths + \item signals for block division + \item if necessary, turnouts + } + \IfLanguage{ngerman}{ + \item zwei Züge mit unterschiedlicher Fahrdynamik + \item eine Strecke, bestehend aus Spielfeldern + \item Halteplätze für die Züge + \item Signale für die Blockteilung + \item ggf. Weichen + } +\end{itemize} +\IfLanguage{english}{Real continuous dimensions time ($t$) and distance ($s$) are assigned to discrete units of rounds ($t$) and spaces ($s$). +Thus, the simulation is round-based in order to imitate the steps of a computer.} +\IfLanguage{ngerman}{Reale kontinuierliche Größen Zeit ($t$) und Strecke ($s$) werden dabei in diskrete Einheiten von Runden ($t$) und Felder ($s$) eingeteilt. +Die Simulation erfolgt also Rundenbasiert, um im Schrittverfahren einen Computer nachzuahmen.} + +\vspace*{\fill} + +\IfLanguage{english}{ + {\noindent\large Version \vhCurrentVersion\ from \vhCurrentDate } \\[0.3cm] + \ccLogo \ccAttribution ~This work is licensed under a Creative Commons License (CC BY 4.0). +} +\IfLanguage{ngerman}{ + {\noindent\large Version \vhCurrentVersion\ vom \vhCurrentDate } \\[0.3cm] + \ccLogo \ccAttribution ~Dieses Werk steht unter der Creative Commons Lizens (CC BY 4.0). +} \ No newline at end of file diff --git a/frontmatter/titlepage.tex b/frontmatter/titlepage.tex new file mode 100644 index 0000000..66150e0 --- /dev/null +++ b/frontmatter/titlepage.tex @@ -0,0 +1,24 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\begin{titlepage} +%-------------------------------------------- + \thispagestyle{empty} + + \vspace*{\fill} + + \begin{center} + \bfseries\Huge + \IfLanguage{english}{Traffic Flow in Railway Systems} + \IfLanguage{ngerman}{Verkehrsfluss bei Bahnsystemen} + \end{center} + + \vspace*{\fill} + \vspace*{\fill} + \vspace*{\fill} + +%-------------------------------------------- +\end{titlepage} diff --git a/handbook.pdf b/handbook.pdf index 3367c55..efbc497 100644 Binary files a/handbook.pdf and b/handbook.pdf differ diff --git a/handbook.tex b/handbook.tex index 78e8412..4319e3b 100755 --- a/handbook.tex +++ b/handbook.tex @@ -1,328 +1,41 @@ -% Hinweis: -% Alle Einstellungen, die dem Briefschreiber und seinem Institut zugeordnet sind, -% stehen jeweils in einer eigenen .lco-Datei. -% Der Brief lädt dann die Autorendatei, welche wiederum die Institutsdatei lädt +%!TEX TS-program = pdflatexmk + +% Copyright 2018 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[ - nexus, % Schriftart Arial wählen - % mono , % Darstellung in schwarz -weiß - 10pt, % gewählte Schriftgröße (standard) - oneside, - draft=true, - green, - % paper=a5, paper=landscape, -]{tubsbook} % class from http://tubslatex.ejoerns.de/ + draft, + paper=a4, + version=3.25, + pagesize=pdftex, + twoside=false, + DIV=12, + headinclude=true, + footinclude=false, + toc=listof, +]{scrbook} \input{header.tex} -\logo{\includegraphics[height=\tubslogoHeight]{instituts_logo.pdf}} - -\title{Verkehrsfluss bei Bahnsystemen} -\subtitle{Lernspiel} -\author{} -\date{} - \begin{document} -\maketitle[image,logo=right] -\section*{Ziel und Materialien} - \noindent Ziel des Lernspieles ist die Fahrdynamik von Zügen im Zusammenhang mit Blockteilung zu simulieren und zu erfahren. - Dafür wird benötigt: - \begin{itemize} - \item zwei Züge mit unterschiedlicher Fahrdynamik - \item eine Strecke, bestehend aus Spielfeldern - \item Halteplätze für die Züge - \item Signale für die Blockteilung - \item ggf. Weichen - \end{itemize} - Reale kontinuierliche Größen Zeit ($t$) und Strecke ($s$) werden dabei in diskrete Einheiten von Runden ($t$) und Felder ($s$) eingeteilt. - Die Simulation erfolgt also Rundenbasiert, um im Schrittverfahren einen Computer nachzuahmen. - % Eine Runde ist eine Zeiteinheit, in der sich Züge um eine Distanz/Felder fortbewegen. - \vfill - {\noindent\large Version \vhCurrentVersion\ vom \vhCurrentDate } \\[0.5cm] - \ccLogo \ccAttribution ~Dieses Werk steht unter der Creative Commons Lizens (CC BY 4.0). + \selectlanguage{english} % currently supported: english, ngerman + + \input{frontmatter/titlepage.tex} -\newpage - \newcommand{\MS}{Martin Scheidt} - \newcommand{\FN}{Felix Nebel} - \newcommand{\LG}{Lukas Gruber} - \begin{versionhistory} - %\vhEntry{}{}{}{} - \vhEntry{0.1}{17.04.2018}{MS|FN|LG}{ersten Prototyp mit Fahrdynamik erstellt} - \vhEntry{0.2}{15.05.2018}{MS|LG}{Lehrspiel mit Blocklogik erweitert} - \vhEntry{0.3}{03.09.2018}{MS}{Handbuch erstellt} - \end{versionhistory} - \vhListAllAuthorsLongWithAbbrev - \vfill \tableofcontents + \cleardoublepage -\part{Anleitung} -\chapter{Aufbau der Strecke} - \noindent Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.\\[0.5cm] - \begin{center} - \begin{tikzpicture}[>=latex] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 0,0) rectangle ++(1,0.5); - \draw [dashed] ([shift={(base)}] 15,0) rectangle ++(1,0.5); - \foreach \x in {1,...,14} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5); - \draw [<->] ([shift={(base)}] 10.5,0.9) -- ++ (4,0) node [fill=white,midway] {Zugbewegung}; - \draw ([shift={(base)}] 5,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); - \draw ([shift={(base)}] 5,0.8) -- ++ (3,0) node [above,midway] {Bahnsteig}; - % distant signal - \draw [dashed] ([shift={(base)}] 2,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2); - \path[draw, line width=1pt] ([shift={(base)}] 2,-0.5) -- ++(0,-0.2); - \path[draw, line width=1pt] ([shift={(base)}] 2,-0.6) -- ++(0.5,0); - \path[draw, fill] ([shift={(base)}] 2.5,-0.75) rectangle ++(0.2,0.3); - \path[draw, fill] ([shift={(base)}] 2.5,-0.45) arc (90:270:0.15); - \draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.6) node [near start,align=right,fill=white] {Vorsignal}; - % main signal - \draw [dashed] ([shift={(base)}] 9,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2); - \path[draw, line width=1pt] ([shift={(base)}] 9,-0.5) -- ++(0,-0.2); - \path[draw, line width=1pt] ([shift={(base)}] 9,-0.6) -- ++(0.5,0); - \path[draw, fill] ([shift={(base)}] 9.5,-0.75) rectangle ++(0.2,0.3); - \path[draw, fill] ([shift={(base)}] 9.7,-0.75) arc (90:270:-0.15); - \draw [->] ([shift={(base)}] 6.5,-1.2) -- ([shift={(base)}] 8.9,-0.6) node [near start,align=right,fill=white] {Hauptsignal}; - % axle counter - \path[draw, line width=1pt] ([shift={(base)}] 9.85,-0.4) -- ++(0.3,0); - \path[draw, line width=1pt, fill] ([shift={(base)}] 9.94,-0.4) circle (0.04); - \path[draw, line width=1pt, fill] ([shift={(base)}] 10.06,-0.4) circle (0.04); - \draw [->] ([shift={(base)}] 13.5,-0.8) -- ([shift={(base)}] 10.2,-0.45) node [near start,align=right,fill=white] {Gleisfreimeldegrenze}; - \end{tikzpicture} - \end{center} + \input{frontmatter/preambel.tex} -\chapter{Signalbegriffe} + \cleardoublepage - \noindent Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist. - Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal. - - \begin{center} - \begin{tabular}{rcc} - \toprule - & Halt & Fahrt \\ - \hline - Hauptsignal & - \begin{tikzpicture}[anchor=base,baseline=-3] - \draw [fill=red] (0,0) circle (0.3); - \draw (-0.3,0) -- (0.3,0); - \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol - \end{tikzpicture} & - \begin{tikzpicture}[anchor=base,baseline=-3] - \draw [fill=green] (0,0) circle (0.3); - \draw (0,-0.3) -- (0,0.3); - \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol - \end{tikzpicture} \\ - Vorsignal & - \begin{tikzpicture}[anchor=base,baseline=-3] - \draw [fill=yellow] (0,0) circle (0.3); - \draw (-0.22,-0.22) -- ++(0.44,0.44); - \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol - \end{tikzpicture} & - \begin{tikzpicture}[anchor=base,baseline=-3] - \draw [fill=green] (0,0) circle (0.3); - \draw (0,-0.3) -- (0,0.3); - \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol - \end{tikzpicture} \\ - \bottomrule - \end{tabular} - \end{center} + \input{mainmatter/manual.tex} -\chapter{Simulation der Fahrdynamik} - \noindent Die Simulation erfolgt Rundenbasiert.\\ Jede Runde besteht aus mindestens zwei aufeinanderfolgenden Schritten: - \begin{enumerate} - \item Der Zug macht die Bewegung, die in der vorhergehenden Runde gesetzt wurde. - \item Alle Signale werden entsprechend der Gleisbelegung eingestellt. - \item (optional) Eine neue Schalthebelposition kann gewählt werden. - \end{enumerate} - Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''. - Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet. + \input{mainmatter/challenges.tex} -\newpage -\chapter{Beispiel} - Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug: - \begin{center} - \begin{tikzpicture}[scale=0.8] - \coordinate (base) at (0,0); - % arrows - \draw [->,>=latex,line width=1.5pt,green] (1.5,0) .. controls ( 2,-0.5) and ( 4,-0.5) .. ( 4.5,0); - \draw [->,>=latex,line width=1.5pt,green] (5.5,0) .. controls ( 6,-0.5) and ( 8,-0.5) .. ( 8.5,0); - \draw [->,>=latex,line width=1.5pt,green] (9.5,0) .. controls (10,-0.5) and (12,-0.5) .. (12.5,0); - \draw [<-,>=latex,line width=1.5pt,green] (1.5,2) .. controls ( 2,2.5) and ( 4,2.5) .. ( 4.5,2); - \draw [<-,>=latex,line width=1.5pt,green] (5.5,2) .. controls ( 6,2.5) and ( 8,2.5) .. ( 8.5,2); - \draw [<-,>=latex,line width=1.5pt,green] (9.5,2) .. controls (10,2.5) and (12,2.5) .. (12.5,2); - \foreach \x in {0,4,8,12} - \draw [fill=white] ([shift={(base)}] \x,0) rectangle ++(2,2); - \node [align=center] at ( 1,1.6) {\si{\kilo\metre\per\hour}}; - \node [align=center] at ( 1,1 ) {\Large $0$}; - \node [align=center] at ( 1,0.3) {\color{blue} $0$ Felder}; - \node [align=center] at ( 5,1.6) {\si{\kilo\metre\per\hour}}; - \node [align=center] at ( 5,1 ) {\Large $40$}; - \node [align=center] at ( 5,0.3) {\color{blue} $1$ Feld}; - \node [align=center] at ( 9,1.6) {\si{\kilo\metre\per\hour}}; - \node [align=center] at ( 9,1 ) {\Large $80$}; - \node [align=center] at ( 9,0.3) {\color{blue} $2$ Felder}; - \node [align=center] at (13,1.6) {\si{\kilo\metre\per\hour}}; - \node [align=center] at (13,1 ) {\Large $120$}; - \node [align=center] at (13,0.3) {\color{blue} $3$ Felder}; - \end{tikzpicture} - \end{center} - Ein Zug soll auf folgender Strecke beschleunigen: - \begin{center} - \begin{tikzpicture}[>=latex] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); - \foreach \x in {-2,...,9} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [below=18pt,left,align=right] {\tiny \x}; - \draw ([shift={(base)}] -2,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4); - \draw ([shift={(base)}] -2,0.8) -- ++ (3,0) node [above,midway] {Bf A}; - \path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \draw [->] ([shift={(base)}] 5,1.4) -- ([shift={(base)}] 0.85,0.35) node [near start,align=right,fill=white] {Zug (Fahrtrichtung rechts)}; - \end{tikzpicture} - \end{center} - Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{Simulation der Fahrdynamik}. - In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können. - Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet. - - Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts. - Der Schalthebel kann wieder weiterbewegt und die Runde ist damit beendent. - Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts. - Der Schalthebel kann wieder weiterbewegt und die Runde ist damit beendent. - Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.\\[0.5cm] - \begin{tabular}{rcccl} - \toprule - Runde & aktuelle & 1.Schritt & 2.Schritt & \\ - & Geschwind- & Bewegen & Schalthebel & \\ - & igkeit & um & auf & \\ - \hline - $1$ & \SI{0}{\kilo\metre\per\hour} & $0$ Felder & \SI{40}{\kilo\metre\per\hour} & - \begin{tikzpicture}[scale=0.6] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); - \foreach \x in {-2,...,9} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; - \path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \end{tikzpicture} \\ - $2$ & \SI{40}{\kilo\metre\per\hour} & $1$ Felder & \SI{80}{\kilo\metre\per\hour} & - \begin{tikzpicture}[scale=0.6] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); - \foreach \x in {-2,...,9} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; - \path[draw, line width=1pt, fill=white] (1.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \end{tikzpicture} \\ - $3$ & \SI{80}{\kilo\metre\per\hour} & $2$ Felder & \SI{120}{\kilo\metre\per\hour} & - \begin{tikzpicture}[scale=0.6] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); - \foreach \x in {-2,...,9} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; - \path[draw, line width=1pt, fill=white] (3.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \end{tikzpicture} \\ - $4$ & \SI{120}{\kilo\metre\per\hour} & $3$ Felder & \SI{120}{\kilo\metre\per\hour} & - \begin{tikzpicture}[scale=0.6] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); - \foreach \x in {-2,...,9} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; - \path[draw, line width=1pt, fill=white] (6.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \end{tikzpicture} \\ - $5$ & \SI{120}{\kilo\metre\per\hour} & $3$ Felder & \SI{120}{\kilo\metre\per\hour} & - \begin{tikzpicture}[scale=0.6] - \coordinate (base) at (0,0); - \draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5); - \foreach \x in {-2,...,9} - \draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x}; - \path[draw, line width=1pt, fill=white] (9.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train - \end{tikzpicture} \\ - etc. & & & & \\ - \bottomrule - \end{tabular} - -\part{Ablauf} - \chapter{Stufe} - \section{Einführung Fahrdynamik} - \subsection*{Ausgangssituation} - \begin{itemize} - \item ein Zug, - \item Strecke mit Feldern $-2$ bis $37$, - \item Bahnsteig A am Feld $-2$ bis $0$, - \item Bahnsteig B am Feld $14$ bis $16$, - \item Bahnsteig C am Feld $35$ bis $37$. - \end{itemize} - \aufgabe - Der Zug (auf Feld $0$ in Richtung $37$) steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}. - \begin{enumerate}[a)] - \item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden? - \item Wie viele Runden benötigt man minimal, wenn der Zug in jedem Bahnhof halten soll? - \end{enumerate} - Notiere die Lösungschritte in einem Protokoll! - \begin{center} - Beispiel für ein Protokoll:\\ - \begin{tabular}{cccc|c} - \toprule - Runde & aktuelle & (1. Schritt)& aktuelle & (2. Schritt) \\ - & Geschwindigkeit & Bewegen um & Position Zugspitze& Schalthebel auf \\ - \hline - $1$ & \SI{0}{\kilo\metre\per\hour}& $0$ Felder & Feld $0$ & \SI{40}{\kilo\metre\per\hour} \\ - \hline - $2$ & $\cdots$ & & & \\ - \hline - $\vdots$& & & & \\ - \hline - & & & & \\ - \bottomrule - \end{tabular} - \end{center} - \aufgabe - Der Zug (auf Feld $0$ in Richtung $37$) fährt gerade durch den ersten Bahnhof durch und hat seinen Schalthebel auf der maximalen Geschwindigkeit. - \begin{enumerate}[a)] - \item Wie viele Felder braucht der Zug, bis er zum Stehen gekommen ist? - \item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll? - \end{enumerate} - - \newpage - \section{Sicht- und Bremsweg} - \subsection*{Ausgangssituation} - - Unbekannte Strecke mit verschiedenen Sichtverhältnissen:\\[0.5cm] - \begin{tabular}{rl} - \toprule - Sichtverhältnis & Sicht in Feldern \\ - \hline - Sehr gut & 3 \\ - Normal & 2 \\ - Schlecht & 1 \\ - \bottomrule - \end{tabular} - \aufgabe - \begin{enumerate}[a)] - \item Wie schnell kann der Zug bei sehr gutem Sichtverhältnis maximal Fahren um vor einem Hindernis rechtzeitig anzuhalten? - \item Wie viele Runden benötigt man minimal, um gefahrlos bei normalen Sichtverhältnissen in einem $14$ Felder entfernten Bahnhof zu gelangen? - \item Wie viele Felder weit müsste man sehen können, um \SI{160}{\kilo\metre\per\hour} fahren zu können? - \end{enumerate} - - \chapter{Stufe} - \section{Blockteilung} - \subsection*{Ausgangssituation} - Ein Zug und eine beliebig lange Strecke, mit mindestens 3 vollständigen Blöcken. - Ein Block besteht aus: Sichtpunkt, Vorsignal, Hauptsignal, Signalzugschlussstelle und Räumweg. - \aufgabe - \begin{enumerate}[a)] - \item Platziere die Vor- und Hauptsignale mindestens so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt! - \item Wie viele Runden ist ein Block mit einer Zugfahrt belegt (vollständige Sperrzeit)? - \end{enumerate} - - \newpage - \section{Verkehrsfluss} - \subsection*{Ausgangssituation} - \begin{itemize} - \item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik. - \item Beliebige Länge der Strecke, mit mindestens 3 vollständigen Blöcken. - \item Am Anfang und Ende der Strecke kann jeweils ein Bahnhof mit Weichen angeordnet werden oder die Strecke im Kreis geführt werden. - \end{itemize} - \aufgabe - \begin{enumerate}[a)] - \item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der schnelle vor dem langsamen Zug fährt? - \item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der langsame vor dem schnellen Zug fährt? - \end{enumerate} + \cleardoublepage + \appendix + \input{backmatter/versionhistory.tex} \end{document} \ No newline at end of file diff --git a/header.tex b/header.tex old mode 100755 new mode 100644 index cc90720..5a48e02 --- a/header.tex +++ b/header.tex @@ -1,44 +1,125 @@ -%!tex root=handbook.tex -% =============================== -% Kodierung und Sprache -% =============================== -% \usepackage[T1]{fontenc} % ermoeglicht die Silbentrennung von Woertern mit Umlauten -\usepackage{ucs} -\usepackage[utf8x]{inputenc} -\usepackage[ngerman]{babel} -\usepackage[ngerman]{translator} +%!TEX TS-program = pdflatexmk +%!TEX root = handbook.tex -% -----[ revision history ]---------- +% Copyright 2018 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. + +% --------[ Coding and Language ]---------- +\usepackage{scrhack} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[main=english,ngerman]{babel} +\usepackage{iflang} + +% % --------[ revision history ]---------- \usepackage{vhistory} -% -----[ Creative Commons License ]---------- +% % --------[ Creative Commons License ]------- \usepackage[scale=1.5]{ccicons} -% =============================== -% Tabellen und Abbildungen -% =============================== -\usepackage{graphicx} % ermoeglicht einbinden von Graphiken -\usepackage{subfigure} % ermoeglicht Bilder nebeneinander aufzureihen -\usepackage{tabularx} % ermoeglicht seitenbreite Tabellen -\usepackage{booktabs} % schoenere Tabellen -\usepackage{multirow} -%\usepackage{longtable} % ermoeglicht Tabellen mit Seitenumbruch -\usepackage{amsmath} -\usepackage{xfrac} % ermoeglich schräg gestellte Brüche mit \sfrac{}{} -\usepackage[locale=DE]{siunitx} % for SI-Units +% --------[ drafting ]---------- +\usepackage{ifdraft} +\ifdraft{% + \usepackage{draftwatermark} + \SetWatermarkColor{solarized-base1!10} +}{} +% +\setlength{\marginparwidth }{2cm} +\usepackage[obeyDraft,textsize=footnotesize]{todonotes} + +% --------[ Layout ]----------- +\pretolerance=8000 +\tolerance=9500 +\hbadness=8000 +\vbadness=10000 +\displaywidowpenalty=10000 +\clubpenalty=10000 +\widowpenalty=10000 +\usepackage{microtype} +\usepackage{lmodern} +\usepackage{mathptmx,courier} +\usepackage[scaled=0.92]{helvet} + +\usepackage[ + automark, + headsepline, + draft=false +]{scrlayer-scrpage} + +\pagestyle{scrheadings} + +\usepackage{etoolbox} +\makeatletter +% \@addtoreset{chapter}{part} % reset chapter numbering for each part +\patchcmd{\scr@startchapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{} % remove page break after chapter +\makeatother + +% -----------[ PDF linking ]---------------- +\usepackage[ + pdftex, + pdfpagelabels, % modify PDF page labels + hyperindex, + hyperfigures, + bookmarksopen, + bookmarksnumbered, + draft=false, + pageanchor=true, % Determines whether every page is given an implicit anchor at the top left corner + %pagebackref, % Adds ‘backlink’ text to the end of each item in the bibliography, as a list of page numbers + %linktocpage, % make page number, not text, be link on TOC, LOF and LOT + breaklinks=true, % allow links to break over lines by making links over multiple lines into PDF links to the same target + colorlinks=true, % Colors the text of links and anchors + citecolor=solarized-violet, % Color for bibliographical citations in text + linkcolor=solarized-base01, % Color for normal internal links + urlcolor=solarized-blue, % Color for web links +]{hyperref} % PDF with a linked TableOfContent +\usepackage{bookmark} % Adding package bookmark improves bookmarks handling. +\usepackage{url} + +% -------[ PDF Informations ]--------- +\hypersetup{ + pdftitle={Traffic Flow in Railway Systems}, + pdfsubject={game based learning}, + pdfauthor={Martin Scheidt and contributers}, + pdfkeywords={railway, railroad, infrastructure, serious game}, +} + +% -------[ Symbols ]--------- +\usepackage{amsmath,amsthm} +\usepackage{xfrac} % provides slanted fractures with \sfrac{}{} +\usepackage{wasysym} % \permil +\usepackage{siunitx} % for SI-Units \sisetup{ per-mode=fraction, fraction-function=\sfrac } -\usepackage{wasysym} % \permil -\usepackage{enumerate} % Nummeriung aendern -\usepackage{listings} -\usepackage{rotating} -\usepackage{tikz} -% \usepackage{framed} % Rahmen zeichnen -% =============================== -% chapter/section numbering -% =============================== -\newcounter{question} -\newcommand{\aufgabe}{\stepcounter{question}\bigskip\par\noindent{\normalfont\large\bfseries Aufgabe \arabic{question}}\medskip\par\noindent} -\makeatletter\@addtoreset{chapter}{part}\makeatother% +% -------[ Tables and Figures ]--------- +\usepackage{graphicx} +\setkeys{Gin}{draft=false} % disable draft for graphicx to see pictures in draft-mode + +\usepackage{booktabs,longtable,tabularx,ltxtable} +% \usepackage{multirow} + +\usepackage{enumerate} +\usepackage{enumitem} % change numbering +\usepackage{tikz,adjustbox} + +\usepackage[prefix=solarized-]{xcolor-solarized} + +% -------[ costum commands ]--------- +\newcommand{\TODO}[1]{\todo[linecolor=orange,backgroundcolor=orange!20,bordercolor=orange,inline,]{\textcolor{orange}{Todo:~}#1}} +\newcommand{\REWRITE}[1]{\todo[linecolor=magenta,backgroundcolor=magenta!20,bordercolor=magenta,noline]{\textcolor{magenta}{Rewrite:~}#1}} +\newcommand{\ADDFIGURE}[1]{\missingfigure[figcolor=white]{#1}} + +\newcounter{task} +\DeclareRobustCommand{\task}{\stepcounter{task}\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Task~}\IfLanguage{ngerman}{Aufgabe~}\arabic{task}}\medskip\par\noindent} +\DeclareRobustCommand{\setup}{\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Setup}\IfLanguage{ngerman}{Ausgangssituation}}\medskip\par\noindent} + +\DeclareRobustCommand{\tikzfigure}[2][\textwidth]{ + \begin{adjustbox}{width=#1} + \begin{tikzpicture}[font=\sffamily] + \input{figures/#2} + \end{tikzpicture} + \end{adjustbox} +} + +\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}} diff --git a/instituts_logo.pdf b/instituts_logo.pdf deleted file mode 100755 index 6fd6bea..0000000 Binary files a/instituts_logo.pdf and /dev/null differ diff --git a/mainmatter/challenges.tex b/mainmatter/challenges.tex new file mode 100644 index 0000000..ce7fd80 --- /dev/null +++ b/mainmatter/challenges.tex @@ -0,0 +1,126 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\part{\IfLanguage{english}{Challenges}\IfLanguage{ngerman}{Aufgaben}} + +\chapter{\IfLanguage{english}{First Stage}\IfLanguage{ngerman}{Erste Stufe}} + \section{\IfLanguage{english}{Introduction to Driving Dynamics}\IfLanguage{ngerman}{Einführung Fahrdynamik}} + \setup + \begin{itemize} + \IfLanguage{english}{ + \item A single train, + \item Line with fields $-2$ to $37$, + \item Platform A at field $-2$ to $0$, + \item Platform B at field $14$ to $16$, + \item Platform C at field $35$ to $37$. + } + \IfLanguage{ngerman}{ + \item ein Zug, + \item Strecke mit Feldern $-2$ bis $37$, + \item Bahnsteig A am Feld $-2$ bis $0$, + \item Bahnsteig B am Feld $14$ bis $16$, + \item Bahnsteig C am Feld $35$ bis $37$. + } + \end{itemize} + \task + \IfLanguage{english}{ The train (on field $0$ towards $37$) stands still and has its shift lever at \SI{0}{\kilo\metre\per\hour}.} + \IfLanguage{ngerman}{Der Zug (auf Feld $0$ in Richtung $37$) steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.} + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item If the train accelerates as much as possible, which field can it get to in \emph{nine} rounds? + \item How many rounds are minimally needed, if the train stops at every station? + } + \IfLanguage{ngerman}{ + \item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden? + \item Wie viele Runden benötigt man minimal, wenn der Zug in jedem Bahnhof halten soll? + } + \end{enumerate} + \IfLanguage{english}{Note the solution steps in a protocol!} + \IfLanguage{ngerman}{Notiere die Lösungschritte in einem Protokoll!} + \begin{center} + \IfLanguage{english}{Example for a protocol:} + \IfLanguage{ngerman}{Beispiel für ein Protokoll:} + \\ + \input{tables/example_protocol.tex} + \end{center} + \task + \IfLanguage{english}{ The train (on field $0$ towards $37$) just passes through the first station and has its shift lever on maximum speed.} + \IfLanguage{ngerman}{Der Zug (auf Feld $0$ in Richtung $37$) fährt gerade durch den ersten Bahnhof durch und hat seinen Schalthebel auf der maximalen Geschwindigkeit.} + \begin{enumerate}[label=a)] + \IfLanguage{english}{ + \item How many fields does the train need to come to a stop? + \item How many rounds are needed if the train shall leave the track completely without stopping? + } + \IfLanguage{ngerman}{ + \item Wie viele Felder braucht der Zug, bis er zum Stehen gekommen ist? + \item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll? + } + \end{enumerate} + + \section{\IfLanguage{english}{Sight and Braking Distance}\IfLanguage{ngerman}{Sicht- und Bremsweg}} + \setup + \IfLanguage{english}{Unknown line with different visibility conditions:} + \IfLanguage{ngerman}{Unbekannte Strecke mit verschiedenen Sichtverhältnissen:} + \\[0.5cm] + \input{tables/visibility_conditions.tex} + \task + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item What is the maximum speed for the train with very good visibility in order to stop in front of an obstacle in time? + \item How many rounds are minimally needed, to arrive safely with normal visibility in a $14$ fields away station? + \item How many fields far would you have to be able to see in order to drive \SI{160}{\kilo\metre\per\hour}? + } + \IfLanguage{ngerman}{ + \item Wie schnell kann der Zug bei sehr gutem Sichtverhältnis maximal Fahren um vor einem Hindernis rechtzeitig anzuhalten? + \item Wie viele Runden benötigt man minimal, um gefahrlos bei normalen Sichtverhältnissen in einem $14$ Felder entfernten Bahnhof zu gelangen? + \item Wie viele Felder weit müsste man sehen können, um \SI{160}{\kilo\metre\per\hour} fahren zu können? + } + \end{enumerate} + +\chapter{\IfLanguage{english}{Second Stage}\IfLanguage{ngerman}{Zweite Stufe}} + \section{\IfLanguage{english}{Block Segmentation}\IfLanguage{ngerman}{Blockteilung}} + \setup + \IfLanguage{english}{One train and any length of line, with at least 3 complete blocks. + A block consists of: visual point, distant signal, main signal, signal clearing point and clearing distance.} + \IfLanguage{ngerman}{Ein Zug und eine beliebig lange Strecke, mit mindestens 3 vollständigen Blöcken. + Ein Block besteht aus: Sichtpunkt, Vorsignal, Hauptsignal, Signalzugschlussstelle und Räumweg.} + \task + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item Place the distant and main signals so that \SI{160}{\kilo\metre\per\hour} can be driven and bad visibility does not lead to impairment! + \item How many rounds is a block occupied with a train running (complete blocking time)? + } + \IfLanguage{ngerman}{ + \item Platziere die Vor- und Hauptsignale mindestens so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt! + \item Wie viele Runden ist ein Block mit einer Zugfahrt belegt (vollständige Sperrzeit)? + } + \end{enumerate} + + \section{\IfLanguage{english}{Traffic Flow}\IfLanguage{ngerman}{Verkehrsfluss}} + \setup + \begin{itemize} + \IfLanguage{english}{ + \item Two different trains with different train dynamics. + \item Any length of the track, with at least 3 complete blocks. + \item At the beginning and the end of the track, a station with switches can be arranged or the track can be lead in a circle. + } + \IfLanguage{ngerman}{ + \item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik. + \item Beliebige Länge der Strecke, mit mindestens 3 vollständigen Blöcken. + \item Am Anfang und Ende der Strecke kann jeweils ein Bahnhof mit Weichen angeordnet werden oder die Strecke im Kreis geführt werden. + } + \end{itemize} + \task + \begin{enumerate}[label=\alph*)] + \IfLanguage{english}{ + \item How many rounds are needed if both trains shall run unimpeded and the fast train runs in front of the slow train? + \item How many rounds are needed if both trains shall run unimpeded and the slow train runs in front of the fast train? + } + \IfLanguage{ngerman}{ + \item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der \emph{schnelle} vor dem \emph{langsamen} Zug fährt? + \item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der \emph{langsame} vor dem \emph{schnellen} Zug fährt? + } + \end{enumerate} \ No newline at end of file diff --git a/mainmatter/manual.tex b/mainmatter/manual.tex new file mode 100644 index 0000000..e812d7c --- /dev/null +++ b/mainmatter/manual.tex @@ -0,0 +1,79 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\part{\IfLanguage{english}{Manual}\IfLanguage{ngerman}{Anleitung}} + +\chapter{\IfLanguage{english}{Setup of a Line}\IfLanguage{ngerman}{Aufbau der Strecke}} + \noindent + \IfLanguage{english}{The line consists of any number of spaces. Signals or platforms can be arranged along the line.} + \IfLanguage{ngerman}{Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.} + \\[0.5cm] + \tikzfigure{composition.tikz} + +\chapter{\IfLanguage{english}{Signal Aspects}\IfLanguage{ngerman}{Signalbegriffe}} + \noindent + \IfLanguage{english}{The main signal may only show the proceed aspect if there is no train in the following block section (from track vacancy detector to track vacancy detector). + The distant signal is located in front of the main signal in braking distance and reflects the signal aspect of the main signal.} + \IfLanguage{ngerman}{Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist. + Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal.} + \begin{center} + \input{tables/signal_aspects.tex} + \end{center} + +\chapter{\IfLanguage{english}{Simulation of Driving Dynamics}\IfLanguage{ngerman}{Simulation der Fahrdynamik}}\label{sec:Simulation_Driving_Dynamics} + \noindent + \IfLanguage{english}{The simulation is based on rounds.\\ Each round consists of at least two consecutive steps:} + \IfLanguage{ngerman}{Die Simulation erfolgt Rundenbasiert.\\ Jede Runde besteht aus mindestens zwei aufeinanderfolgenden Schritten:} + \begin{enumerate} + \IfLanguage{english}{ + \item The train makes the movement set in the previous round. + \item All signals are set according to the track occupancy. + \item (optional) A new shift lever position can be chosen. + } + \IfLanguage{ngerman}{ + \item Der Zug macht die Bewegung, die in der vorhergehenden Runde gesetzt wurde. + \item Alle Signale werden entsprechend der Gleisbelegung eingestellt. + \item (optional) Eine neue Schalthebelposition kann gewählt werden. + } + \end{enumerate} + \IfLanguage{english}{At the start of the game, the train stands still. Shift lever positions start at the ``$0$'' field. + The different train dynamics are depicted by different possible movements of the shift lever.} + \IfLanguage{ngerman}{Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''. + Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet.} + +\chapter{\IfLanguage{english}{Example}\IfLanguage{ngerman}{Beispiel}} + \IfLanguage{english}{The shift lever is moved along the green arrows. Shift lever positions for a passenger train:} + \IfLanguage{ngerman}{Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug:} + \begin{center} + \tikzfigure[0.8\textwidth]{control_lever.tikz} + \end{center} + \vspace*{0.5cm} + \IfLanguage{english}{A train is supposed to accelerate on the following track:} + \IfLanguage{ngerman}{Ein Zug soll auf folgender Strecke beschleunigen:} + \\ + \tikzfigure{initial_setup.tikz} + \\[0.5cm] + \IfLanguage{english}{ For the course of the learning game, we start with the first round and follow the process from the previous section \emph{\nameref{sec:Simulation_Driving_Dynamics}}. + In the first round, the train from the initial condition stands still. In the example there are no signals that can be set. + We can move the shift lever by one position to \SI{40}{\kilo\metre\per\hour} forward. The round is over.} + \IfLanguage{ngerman}{Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{\nameref{sec:Simulation_Driving_Dynamics}}. + In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können. + Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet.} + + \IfLanguage{english}{ The second round begins with the execution of the movement one field to the right. + The shift lever can be moved on and the round is over. + The third round begins with the execution of the movement by \emph{two} fields to the right. + The shift lever can be moved on again and the round is over. + Continue until the position of \SI{120}{\kilo\metre\per\hour} is reached and the train moves evenly with three fields per round.} + \IfLanguage{ngerman}{Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts. + Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet. + Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts. + Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet. + Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.} + \\[0.5cm] + \input{tables/example_movement.tex} + + diff --git a/tables/example_movement.tex b/tables/example_movement.tex new file mode 100644 index 0000000..56c1346 --- /dev/null +++ b/tables/example_movement.tex @@ -0,0 +1,52 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\begin{tabularx}{0.95\textwidth}{rcccX} + \toprule + \IfLanguage{english}{ + Round & current & 1.Step & 2.Step & \\ + & speed & Move & shift lever & \\ + & & & on & \\ + } + \IfLanguage{ngerman}{ + Runde & aktuelle & 1.Schritt & 2.Schritt & \\ + & Geschwin- & Bewegen & Schalthebel & \\ + & digkeit & um & auf & \\ + } + \hline + $1$ & \SI{0}{\kilo\metre\per\hour} & + $0$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + & \SI{40}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example1.tikz} + \\ + $2$ & \SI{40}{\kilo\metre\per\hour} & + $1$ + \IfLanguage{english}{field} + \IfLanguage{ngerman}{Feld} + & \SI{80}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example2.tikz} + \\ + $3$ & \SI{80}{\kilo\metre\per\hour} & + $2$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + & \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example3.tikz} + \\ + $4$ & \SI{120}{\kilo\metre\per\hour} & + $3$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + & \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example4.tikz} + \\ + $5$ & \SI{120}{\kilo\metre\per\hour} & + $3$ + \IfLanguage{english}{fields} + \IfLanguage{ngerman}{Felder} + & \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example5.tikz} + \\ + etc. & & & & \\ + \bottomrule +\end{tabularx} diff --git a/tables/example_protocol.tex b/tables/example_protocol.tex new file mode 100644 index 0000000..9cc83dd --- /dev/null +++ b/tables/example_protocol.tex @@ -0,0 +1,32 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\begin{tabular}{cccc|c} + \toprule + \IfLanguage{english}{ + Round & curent & (1. Step) & current position & (2. Step) \\ + & speed & Move by & head of train & shift lever at \\ + + } + \IfLanguage{ngerman}{ + Runde & aktuelle & (1. Schritt)& aktuelle & (2. Schritt) \\ + & Geschwindigkeit & Bewegen um & Position Zugspitze& Schalthebel auf \\ + } + \hline + \IfLanguage{english}{ + $1$ & \SI{0}{\kilo\metre\per\hour}& $0$ fields & field $0$ & \SI{40}{\kilo\metre\per\hour} \\ + } + \IfLanguage{ngerman}{ + $1$ & \SI{0}{\kilo\metre\per\hour}& $0$ Felder & Feld $0$ & \SI{40}{\kilo\metre\per\hour} \\ + } + \hline + $2$ & $\cdots$ & & & \\ + \hline + $\vdots$& & & & \\ + \hline + & & & & \\ + \bottomrule +\end{tabular} diff --git a/tables/signal_aspects.tex b/tables/signal_aspects.tex new file mode 100644 index 0000000..e2646e6 --- /dev/null +++ b/tables/signal_aspects.tex @@ -0,0 +1,45 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\begin{tabular}{rcc} + \toprule + & + \IfLanguage{english}{halt} + \IfLanguage{ngerman}{Halt} + & + \IfLanguage{english}{proceed} + \IfLanguage{ngerman}{Fahrt} + \\ + \hline + \IfLanguage{english}{main signal} + \IfLanguage{ngerman}{Hauptsignal} + & + \begin{tikzpicture}[anchor=base,baseline=-3] + \draw [fill=red] (0,0) circle (0.3); + \draw (-0.3,0) -- (0.3,0); + \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol + \end{tikzpicture} & + \begin{tikzpicture}[anchor=base,baseline=-3] + \draw [fill=green] (0,0) circle (0.3); + \draw (0,-0.3) -- (0,0.3); + \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol + \end{tikzpicture} + \\ + \IfLanguage{english}{distant signal} + \IfLanguage{ngerman}{Vorsignal} + & + \begin{tikzpicture}[anchor=base,baseline=-3] + \draw [fill=yellow] (0,0) circle (0.3); + \draw (-0.22,-0.22) -- ++(0.44,0.44); + \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol + \end{tikzpicture} & + \begin{tikzpicture}[anchor=base,baseline=-3] + \draw [fill=green] (0,0) circle (0.3); + \draw (0,-0.3) -- (0,0.3); + \path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol + \end{tikzpicture} \\ + \bottomrule +\end{tabular} diff --git a/tables/visibility_conditions.tex b/tables/visibility_conditions.tex new file mode 100644 index 0000000..f62752a --- /dev/null +++ b/tables/visibility_conditions.tex @@ -0,0 +1,27 @@ +%!TEX TS-program = pdflatexmk +%!TEX root = ../handbook.tex + +% Copyright 2018 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. + +\begin{tabular}{rl} + \toprule + \IfLanguage{english}{ + Visibility & Sight in fields \\ + } + \IfLanguage{ngerman}{ + Sichtverhältnis & Sicht in Feldern \\ + } + \hline + \IfLanguage{english}{ + Very good & 3 \\ + Normal & 2 \\ + Bad & 1 \\ + } + \IfLanguage{ngerman}{ + Sehr gut & 3 \\ + Normal & 2 \\ + Schlecht & 1 \\ + } + \bottomrule +\end{tabular}