Verified Commit 454ee4f6 authored by Sebastian Endres's avatar Sebastian Endres
Browse files

Initial git commit - extract template from my thesis

parents
Pipeline #79165 passed with stage
in 54 seconds
# Created by https://www.toptal.com/developers/gitignore/api/latex
# Edit at https://www.toptal.com/developers/gitignore?templates=latex
### LaTeX ###
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
### LaTeX Patch ###
# LIPIcs / OASIcs
*.vtc
# glossaries
*.glstex
# End of https://www.toptal.com/developers/gitignore/api/latex
thesis*.pdf
.vscode
__pycache__/
---
variables:
GIT_SUBMODULE_STRATEGY: recursive
# image: aergus/latex
image: laurenss/texlive-full:rolling
before_script:
- apt-get update
- apt-get install librsvg2-bin
render-paper:
script:
- make -j || true
- make -j
artifacts:
paths:
- thesis.pdf
expire_in: 4 days
release-paper:
script:
- make -j || true
- make -j
artifacts:
paths:
- thesis.pdf
expire_in: 2 years
only:
- tags
...
%! TEX root = thesis.tex
\chapter*{Abstract}
\addcontentsline{toc}{chapter}{Abstract}
\begin{otherlanguage*}{american}
about 1/2 page: \\
(1) Motivation (Why do we care?) \\
(2) Problem statement (What problem are we trying to solve?) \\
(3) Approach (How did we go about it) \\
(4) Results (What's the answer?) \\
(5) Conclusion (What are the implications of the answer?)
\end{otherlanguage*}
\chapter*{Kurzfassung}
\addcontentsline{toc}{chapter}{Kurzfassung}
\begin{otherlanguage*}{ngerman}
Gleicher Text in Deutsch
\end{otherlanguage*}
%! TEX root = thesis.tex
\chapter{Introduction}%
%\chapter{Einleitung}
\label{sec:introduction}
general motivation for your work, context and goals: 1-2 pages
\begin{itemize}
\item \textbf{Context:} make sure to link where your work fits in
\item \textbf{Problem:} gap in knowledge, too expensive, too slow, a deficiency, superseded technology
\item \textbf{Strategy:} the way you will address the problem
\end{itemize}
\section{Sample Section}%
\label{sec:sample-section}
The following samples explain how to insert cross-references, figures and tables, how to set math, algorithms and program code, how to add references, and how to use acronyms.
\subsection{Cross References}%
\label{sec:cross-ref}
Use the \verb|\label| and \verb|\cref| commands for cross references, e.g.\ to \cref{sec:cross-ref}.
\subsection{Figures}%
\label{sec:figures}
\Cref{fig:setup0} shows the distribution of the nodes in the sample setup at time $t=0$, as well as the initial coverage with a sensing radius of \SI{30}{\metre} and the communication graph for a communication range of \SI{50}{\metre}.
\begin{figure}
\centering
\includegraphics[width=0.3\textwidth]{figures/coverage-30--0-static1}
\includegraphics[width=0.3\textwidth]{figures/connectivity-50-0-static1}
\caption{Coverage and connectivity for a sample replication at time $t=0$}%
\label{fig:setup0}
\end{figure}
\subsection{Subfigures}%
\label{sec:subfigures}
\Crefrange{fig:setup1}{fig:setup2} show the distribution of the nodes in the sample setup at time $t=0$, as well as the initial coverage with a sensing radius of \SI{30}{\metre} and the communication graph for a communication range of \SI{50}{\metre}.
\begin{figure}
\centering
\begin{subfigure}{0.49\linewidth}
\centering
\includegraphics[width=\textwidth]{figures/coverage-30--0-static1}
\caption{coverage}%
\label{fig:setup1}
\end{subfigure}
\begin{subfigure}{0.49\linewidth}
\centering
\includegraphics[width=\textwidth]{figures/connectivity-50-0-static1}
\caption{connectivity}%
\label{fig:setup2}
\end{subfigure}
\caption{Subfigures showing coverage and connectivity for a sample replication at time $t=0$}%
\label{fig:setups12}%
\end{figure}
\subsection{Tables}%
\label{sec:tables}
Short tables, e.g., \cref{tab:shorttable} are straighforward to define.
\begin{table}
\centering
\begin{tabular}{llr}
\toprule
left aligned & same here & right aligned \\
\midrule
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\bottomrule
\end{tabular}
\caption{Short table}%
\label{tab:shorttable}
\end{table}
Multi-line cells can be set as shown in \cref{tab:SensorNetworkApplications}.
\begin{table}
\centering
\begin{tabular}{>{\raggedright}p{1.8cm}p{5.4cm}p{3.4cm}}
\toprule
Class & application examples & lifetime aspects \\
\midrule
Critical, coverage &
Forest fire detection, flood detection, nuclear/chemical/biological attack detection, battlefield surveillance, intrusion detection &
$c_{ca}$/$c_{ct}$/$c_{cb}$, $c_{ln}$, $c_{la}$, $c_{lo}$ \\
Critical, no coverage &
Monitoring human physiological data, military monitoring of friendly forces, machine monitoring &
$c_{cc}$, $c_{ln}$, $c_{la}$, $c_{lo}$ \\
Noncritical, coverage &
Agriculture, smart buildings, habitat monitoring (sensors monitor the inhabitants in a region) &
$c_{ac}$/$c_{tc}$/$c_{bc}$, $c_{cc}$, $c_{sd}$ \\
Noncritical, no coverage &
Home automation, habitat monitoring (sensors are attached to animals and monitor their health and social contacts) &
$c_{cc}$, $c_{sd}$ \\
\bottomrule
\end{tabular}
\caption{Sensor network applications}%
\label{tab:SensorNetworkApplications}
\end{table}
\subsection{Math}%
\label{sec:math}
Simple inlined equations: $\zeta(t) = \min( \zeta_{**}(t))$.
The same in a numbered equation, i.e.\ \cref{eq:zeta}, which states
\begin{equation}
\zeta(t) =
\min\left(
\zeta_{**}(t)
\right)
\label{eq:zeta}
.
\end{equation}
Equations covering multiple lines should be aligned.
Note that the numbering is added automatically, independent of whether the equation is actually referenced or not, as in
\begin{align}
sd_{max} & =
\max\left(
(t_{i+1} - t_i)
: \zeta(t_i) < 1, i \in [0, |T|-1]
\right)
, \\
\psi_{sd}(t) & =
\begin{cases}
\dfrac{\Delta t_{sd}}{sd_{max}}
& \text{if $sd_{max} > 0$}, \\
1
& \text{if $sd_{max} = 0$},
\end{cases}
\\
\zeta_{sd}(t) & =
\frac{
\psi_{sd} - cl_{sd}
}{
c_{sd} - cl_{sd}
}
.
\end{align}
\subsection{Units}%
\label{sec:units}
Units should be set using the \verb|\SI| command: the measurements show that the car was accelerating at \SI{5}{\metre\per\second\squared} until it reached its final speed of \SI{100}{\kilo\metre\per\hour}.
Longer unitless numbers or ranges can be typeset using the \verb|\num| and \verb|\numrange| commands, respectively: The number \num{12345678} lies in the range of \numrange{10000000}{20000000}.
% TODO broken in recent siunitx package:
% \Cref{tab:si-in-tables} gives an example of how to typeset numbers and units in tables.
%
% \begin{table}
% \centering
% \begin{tabular}{l>{\raggedright}p{4cm}S[table-text-alignment=left,table-format=1.4e-1]s}
% \toprule
% \multicolumn{2}{l}{factor} & \multicolumn{1}{l}{value} & \multicolumn{1}{c}{unit} \\
% \midrule
% $M$ & vehicle mass & 1.3250e+3 & \kilo\gram \\
% $g$ & gravitational constant & 9.81 & \metre\per\second\squared \\
% $\vartheta$ & road grade & 0 & \degree \\
% $\alpha$ & & 1.1100 & \gram\per\second \\
% $\delta$ & & 1.9800e-6 & \gram\per\meter\cubed\second\squared \\
% \bottomrule
% \end{tabular}
% \caption{EMIT factors for a category 9 vehicle}%
% \label{tab:si-in-tables}
% \end{table}
\subsection{Algorithms}%
\label{sec:algorithms}
Based on the periodically transmitted \texttt{hello} messages, the joining node gets information about its physical neighbors and their adjacent nodes.
\Cref{alg:H_hello} depicts the handling of \texttt{hello} messages.
\begin{algorithm}
\begin{algorithmic}[1]
\REQUIRE Locally stored state of all neighbors in set $N$
\ENSURE Maintain neighbor set $N$ and set virtual address
\STATE Receive neighbor information from node $N_i$
\IF {$N_i \notin N$}
\STATE $N \gets N_i$
\ELSE
\STATE Update $N_i \in N$
\ENDIF
\IF {$P==-1$ AND (Time() $-$ OldTime) $> T_{ps}$}
\STATE OldTime $\gets$ Time()
\STATE SetMyPosition()
\ENDIF
\end{algorithmic}
\caption{Handle \texttt{hello} messages}%
\label{alg:H_hello}
\end{algorithm}
\subsection{Program Code}%
\label{sec:code}
Program code should be omitted, but if absolutely necessary, it should be set as seen in \cref{lst:code}.
\begin{lstlisting}[style=txt,caption=Sample application,label=lst:code]{}
APPLICATION("printU", 192, arg)
{
// Set Priority
NutThreadSetPriority(16);
// main() loop
for (;;) {
putchar('U');
NutSleep(125);
}
}
\end{lstlisting}
\subsection{References}%
\label{sec:references}
To further evaluate the applicability of our definition, we analyzed sensor network applications as surveyed in~\cite{akyildiz2002survey,arampatzis2005survey,khemapach2005survey}.
Concerning the importance of different lifetime criteria, most of the application scenarios can be grouped into two main classes with two sub-classes each~\cite{dietrich2009lifetime}.
\subsection{Acronyms}%
\label{sec:acronyms}
Acronyms shoud be explained when first used.
\LaTeX helps, e.g.\ \acp{MANET} have been frequently used as examples for the development of \ac{WSN} applications.
\subsection{TODOs and FIXMEs}%
\label{sec:todos}
You can use the the \verb|\TODO| command to add short ``sticky notes'' to your document.
\TODO{This is what a TODO looks like}
This will also trigger generation of a list-of-TODOs at the end of the document.
The same goes for the \verb|\FIXME|\FIXME{This is what a FIXME looks like} command.
%! TEX root = thesis.tex
\chapter{Fundamentals}%
\label{sec:fundamentals}
Fundamentals / environment and related work: 1/3
\begin{itemize}
\item comment on employed hardware and software
\item describe methods and techniques that build the basis of your work
\item review related work(!)
\end{itemize}
%! TEX root = thesis.tex
\chapter{Related Work}%
\label{sec:related_work}
Developed architecture / system design / implementation: 1/3
\begin{itemize}
\item start with a theoretical approach
\item describe the developed system/algorithm/method from a high-level point of view
\item go ahead in presenting your developments in more detail
\end{itemize}
%! TEX root = thesis.tex
\chapter{Analysis}%
\label{sec:analysis}
Measurement results / analysis / discussion: 1/3
\begin{itemize}
\item whatever you have done, you must comment it, compare it to other systems, evaluate it
\item usually, adequate graphs help to show the benefits of your approach
\item caution: each result/graph must be discussed! what's the reason for this peak or why have you ovserved this effect
\end{itemize}
%! TEX root = thesis.tex
\chapter{Conclusion}%
\label{sec:conclusion}
Conclusion: 1 page
\begin{itemize}