aboutsummaryrefslogtreecommitdiff
path: root/assets/manual/preamble.tex
diff options
context:
space:
mode:
Diffstat (limited to 'assets/manual/preamble.tex')
-rw-r--r--assets/manual/preamble.tex202
1 files changed, 202 insertions, 0 deletions
diff --git a/assets/manual/preamble.tex b/assets/manual/preamble.tex
new file mode 100644
index 0000000..aaee8c8
--- /dev/null
+++ b/assets/manual/preamble.tex
@@ -0,0 +1,202 @@
+\ifdefined\HCode
+ \def\pgfsysdriver{pgfsys-dvisvgm4ht.def} % for HTML output
+\fi
+
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\ifx\HCode\undefined
+\usepackage{beton}
+\usepackage{eulervm}
+\fi
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{1ex}
+\usepackage{listings}
+\usepackage{hyperref}
+\usepackage{amsmath,amssymb,siunitx}
+\usepackage[x11names,svgnames]{xcolor}
+\usepackage{tikz}
+\usetikzlibrary{arrows,backgrounds,calc,patterns,shapes.geometric}
+
+\usepackage{imakeidx}
+\makeindex[columns=1,title=Alphabetical Index,intoc]
+
+% Font substitution: taken from https://ctan.org/tex-archive/macros/latex/contrib/beton/beton.pdf
+\ifx\HCode\undefined
+\AtBeginDocument{
+ \DeclareFontShape\encodingdefault{ccr}{bx}{n}{<->sub*cmss/sbc/n}{}
+ \DeclareFontShape\encodingdefault{ccr}{bx}{it}{<->sub*cmss/sbc/it}{}
+ \DeclareFontShape\encodingdefault{ccr}{bx}{sl}{<->sub*cmss/sbc/sl}{}
+ \DeclareFontShape\encodingdefault{ccr}{bx}{sc}{<->sub*cmss/sbc/sc}{}
+}
+\fi
+
+\lstdefinestyle{luastyle}{
+ language=[5.1]Lua,
+ basicstyle=\ttfamily,
+ columns=spaceflexible,
+ tabsize=2
+}
+
+\ifdefined\HCode
+\newcommand{\var}[1]{$\langle$\texttt{#1}$\rangle$}
+\newcommand{\varnth}[2]{\var{#1\HCode{<sub>}#2\HCode{</sub>}}}
+\newcommand{\ovar}[1]{$[\langle$\texttt{#1}$\rangle]$}
+\else
+\newcommand{\var}[1]{$\mathit{\langle}$\textrm{\textmd{\textit{#1}}}$\mathit{\rangle}$}
+\newcommand{\varnth}[2]{\var{#1$_{#2}$}}
+\newcommand{\ovar}[1]{$\mathit{[\langle}$\textrm{\textmd{\textit{#1}}}$\mathit{\rangle]}$}
+\fi
+
+\newcommand{\varzero}[1]{\varnth{#1}{0}}
+\newcommand{\vari}[1]{\varnth{#1}{1}}
+\newcommand{\varii}[1]{\varnth{#1}{2}}
+
+\def\luatrue{\texttt{true}}
+\def\luafalse{\texttt{false}}
+\def\luanil{\texttt{nil}}
+\def\luanan{\texttt{nan}}
+\def\advtrains{\textsc{advtrains}}
+
+\newenvironment{centeredtikzpicture}[1][]{
+ \begin{center}
+ \begin{tikzpicture}[#1]
+ }{
+ \end{tikzpicture}
+ \end{center}
+}
+
+\newenvironment{apidoc}[1]{
+ \begin{list}{}{
+ \setlength{\labelwidth}{0pt}
+ \setlength{\labelsep}{0pt}
+ \setlength{\leftmargin}{0pt}
+ \setlength{\listparindent}{1em}
+}
+\index{#1}
+\ifdefined\HCode
+\providecommand{\apientp}[2]{\HCode{<br/>}##1\HCode{<span style="float:right">}##2\HCode{</span><br/>}}
+\else
+\providecommand{\apientp}[2]{##1\hfill {##2}\par}
+\fi
+\providecommand{\apient}[2]{\apientp{##1}{##2}\index{##1}}
+\providecommand{\apip}[2]{\apientp{\texttt{##1}}{##2}}
+\providecommand{\api}[2]{\apient{\texttt{##1}}{##2}}
+\providecommand{\apiasp}[1]{\apientp{##1}{signal aspect}\index{#1!##1}}
+\providecommand{\apicmd}[1]{\api{##1}{command}}
+\providecommand{\apienum}[1]{\apip{##1}{enumeration}}
+\providecommand{\apifield}[1]{\apip{##1}{field}}
+\providecommand{\apiitem}[1]{\apient{##1}{item}}
+\providecommand{\apivar}[1]{\apip{##1}{variable}\index{#1!\texttt{##1}}}
+\providecommand{\apifunc}[2]{\apip{##1(##2)}{function}\index{#1!\texttt{##1}}}
+\providecommand{\apilex}[1]{\apip{##1}{lexical syntax}}
+\providecommand{\apipat}[1]{\apip{##1}{pattern}}
+\providecommand{\apiterm}[1]{\apient{##1}{term}}
+\providecommand{\apitrainmode}[1]{\apient{##1}{train mode}}
+\providecommand{\apiui}[1]{\apientp{##1}{UI element}}
+}{\end{list}}
+
+\tikzset{
+ signal/.pic = {
+ \draw (0,0) -- (0,0.2) -- (0.15,0.2);
+ \draw [fill=#1] (0.15,0.2) circle [radius=0.05];
+ },
+ tcb/.pic = {
+ \draw (0,0) -- (0,0.2);
+ \draw [<->] (-0.15,0.2) -- (0.15,0.2);
+ },
+ Ks signal/.pic = {
+ \fill[black] (-1,-1.3) rectangle (1,1.6);
+ \fill[gray] (-0.7,1.3) circle [radius=0.1];
+ \fill[gray] (0,1) circle [radius=0.2];
+ \fill[gray] (-0.4,0.2) circle [radius=0.2];
+ \fill[gray] (0.4,0.2) circle [radius=0.2];
+ \foreach \x in {-0.3,0,0.3} {
+ \fill[gray] (\x,-0.5) circle [radius=0.1];
+ }
+ \foreach \x in {-0.3,0} {
+ \fill[gray] (\x,-0.8) circle [radius=0.1];
+ }
+ },
+ Ks signal Hp 0/.pic = {
+ \pic at (0,0) {Ks signal};
+ \fill[red] (0,1) circle [radius=0.2];
+ },
+ Ks signal Hp 0 with Sh 1/.pic = {
+ \pic at (0,0) {Ks signal Hp 0};
+ \foreach \x/\y in {0/-0.5,-0.3/-0.8} {
+ \fill[white] (\x,\y) circle [radius=0.1];
+ }
+ },
+ Ks signal Ks 1/.pic = {
+ \pic at (0,0) {Ks signal};
+ \fill[green] (-0.4,0.2) circle [radius=0.2];
+ },
+ Ks signal Ks 2/.pic = {
+ \pic at (0,0) {Ks signal};
+ \fill[orange] (0.4,0.2) circle [radius=0.2];
+ },
+ shunt signal/.pic = {
+ \fill[black] (-1,0) -- (-1,-1) -- (1,-1) -- (1,0) -- (0.5,0.5) -- (-0.5,0.5) -- cycle;
+ \fill[gray] (-0.5,0) circle [radius=0.1];
+ \fill[gray] (0.5,0) circle [radius=0.1];
+ \fill[gray] (-0.5,-0.7) circle [radius=0.1];
+ \fill[gray] (0.2,0) circle [radius=0.1];
+ },
+ shunt signal Sh 0/.pic = {
+ \pic at (0,0) {shunt signal};
+ \fill[red] (-0.5,0) circle [radius=0.1];
+ \fill[red] (0.5,0) circle [radius=0.1];
+ },
+ shunt signal Sh 1/.pic = {
+ \pic at (0,0) {shunt signal};
+ \fill[white] (-0.5,-0.7) circle [radius=0.1];
+ \fill[white] (0.2,0) circle [radius=0.1];
+ },
+ signal sign Zs 3/.pic = {
+ \node[fill=black,text=white,regular polygon,regular polygon sides=3,inner sep=0.5ex,shape border rotate=180] at (0,0) {\Huge #1};
+ },
+ signal sign Zs 10/.pic = {
+ \fill[black] (-1,-1) -- (0,0) -- (1,-1) -- (1,4) -- (0,5) -- (-1,4) -- cycle;
+ \fill[white] (-0.8,-0.6) -- (0,0.2) -- (0.8,-0.6) -- (0.8,4) -- (0,4.8) -- (-0.8,4) -- cycle;
+ \fill[black] (-0.6,-0.2) -- (0,0.4) -- (0.6,-0.2) -- (0.6,4) -- (0,4.6) -- (-0.6,4) -- cycle;
+ },
+ signal sign Lf 1 and 2/.pic = {
+ \draw[fill=orange] (-0.5,-0.75) rectangle (0.5,0.75);
+ \node at (0,0) {\Huge #1};
+ },
+ signal sign Lf 3/.pic = {
+ \draw (-0.5,-0.75) rectangle (0.5,0.75);
+ \node at (0,0) {\Huge E};
+ },
+ signal sign Lf 7/.pic = {
+ \draw (-0.5,-0.75) rectangle (0.5,0.75);
+ \node at (0,0) {\Huge #1};
+ },
+ signal sign Ra 10/.pic = {
+ \draw (-1.5,0) -- (1.5,0) arc [start angle=0, end angle=180, radius=1.5];
+ \node [above] at ($(0,0)+(0,2.4em)$) {\large Halt};
+ \node [above] at ($(0,0)+(0,1.2em)$) {für};
+ \node [above] at (0,0) {Rangierfahrten};
+ },
+ signal sign PAM/.pic = {
+ \draw (-0.5,-0.5) rectangle (0.5,1);
+ \node at (0,0) {\huge S};
+ \draw [green,->,very thick,line width=2pt] (0,0.4) -- (0,0.8);
+ }
+}
+\ifdefined\HCode
+\tikzset{
+ pattern or line fill/.style={fill=cyan}
+}
+\else
+\tikzset{
+ pattern or line fill/.style={pattern=north west lines,pattern color=gray}
+}
+\fi
+
+\title{The \advtrains{} mod for Minetest}
+\author{}
+
+%%% Local Variables:
+%%% TeX-master: "a4manual"
+%%% End: \ No newline at end of file