beispiel.tex 5.57 KB
Newer Older
1 2
\documentclass[a4paper,10pt,ngerman]{scrartcl}
\usepackage{babel}
3 4
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
5
\usepackage[a4paper,margin=2.5cm]{geometry}
6

7 8
% Die nächsten drei Felder bitte anpassen:
\newcommand{\Name}{Team: ??? / Name} % Teamname oder eigenen Namen angeben
9
\newcommand{\TeamId}{???}
10
\newcommand{\Aufgabe}{Aufgabe 1: \LaTeX-Dokument}
11

12 13 14 15 16 17
% Kopf- und Fußzeilen
\usepackage{scrlayer-scrpage}
\setkomafont{pageheadfoot}{\textrm}
\ifoot{\Name}
\cfoot{\thepage}
\chead{\Aufgabe}
18
\ofoot{Team-ID: \TeamId}
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

% Für mathematische Befehle und Symbole
\usepackage{amsmath}
\usepackage{amssymb}

% Für Bilder
\usepackage{graphicx}

% Für Algorithmen
\usepackage{algpseudocode}

% Für Quelltext
\usepackage{listings}
\usepackage{color}
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{
  keywordstyle=\color{blue},commentstyle=\color{mygreen},
  stringstyle=\color{mymauve},rulecolor=\color{black},
  basicstyle=\footnotesize\ttfamily,numberstyle=\tiny\color{mygray},
  captionpos=b, % sets the caption-position to bottom
  keepspaces=true, % keeps spaces in text
  numbers=left, numbersep=5pt, showspaces=false,showstringspaces=true,
  showtabs=false, stepnumber=2, tabsize=2, title=\lstname
}
\lstdefinelanguage{JavaScript}{ % JavaScript ist als einzige Sprache noch nicht vordefiniert
  keywords={break, case, catch, continue, debugger, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with},
  morecomment=[l]{//},
  morecomment=[s]{/*}{*/},
  morestring=[b]',
  morestring=[b]",
  sensitive=true
}

% Diese beiden Pakete müssen als letztes geladen werden
%\usepackage{hyperref} % Anklickbare Links im Dokument
\usepackage{cleveref}

% Daten für die Titelseite
\title{\Aufgabe}
60
\author{\Name\\Team-ID: \TeamId}
61 62
\date{\today}

63 64


65
\begin{document}
66

67 68
\maketitle

69 70
\tableofcontents

71
\section{Lösungsidee}
72
Der Aufgabentext selbst soll hier \emph{nicht} noch einmal abgedruckt werden.
73 74
Die Idee der Lösung sollte hieraus vollkommen ersichtlich werden, ohne das auf die eigentliche Implementation Bezug genommen wird.

75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
Der Text wird am besten mit Unterüberschriften strukturiert:
\subsection{Unterüberschrift}
\subsubsection{Unter-Unterüberschrift}
\paragraph{Benannter Absatz} Lorem ipsum.


\subsection{Mathematik}

\begin{align}
 a_0 & := 2 + 3 \\
   & = 3^2 - 2^2
\end{align}

\begin{align}\label{eq:toll}
 \sum_{i=0}^3 i = \prod_{i=1}^3 i = \frac{12}{2} = \sqrt[3]{216}
\end{align}

\begin{align*}
 f(x) \propto  x^2 \Leftrightarrow \exists r \in \mathbb R : \forall x: f(x) = r * x^2 \Rightarrow x \in \mathcal{O}(x^2)
\end{align*}

Mathematische Formeln erhalten normalerweise eine Nummer, die man referenzieren kann.
In \cref{eq:toll} zum Beispiel ist jeder Term gleich $6$.
Mathematische Formeln können auch im Fließtext gesetzt werden: $\sum_{i=0}^3 i = \prod_{i=1}^3 i = \frac{12}{2} = \sqrt[3]{216}.$

\subsection{Algorithmen}
\begin{algorithmic}
\If{$i\geq i_\text{max}$}
  \State $a\gets -1$
\ElsIf{$i\leq i_\text{min}$}
  \State $a\gets 1$
\Else
  \State $a\gets 0$
\EndIf
\For{$i$ from 1 to 10}
  \State $a\gets a + i$
\EndFor
\ForAll{$i$ in $Liste$}
  \State $a\gets a + i$
\EndFor
\While{$a > 0$}
  \State $a\gets a - 1$
\EndWhile
\Repeat
  \State $a\gets a - 1$
\Until{$a < 0$}
\Loop
  \State $i\gets$\Call{Increment}{$i$}
\EndLoop
\Function{Increment}{$a$}
  \State $a \gets a+1$
  \State \Return $a$
\EndFunction
\end{algorithmic}

130 131 132 133 134 135
\section{Umsetzung}
Hier wird kurz erläutert, wie die Lösungsidee im Programm tatsächlich umgesetzt wurde. Hier können auch Implementierungsdetails erwähnt werden.

\section{Beispiele}
Genügend Beispiele einbinden! Eigene Beispiele sind sehr gut! Und die Beispiele sollte diskutiert werden.

136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
Bilder werden von \LaTeX nicht direkt da angezeigt, wo sie eingebunden wurden, sondern an passenden Stellen in der Nähe.
Das ist so beabsichtigt.
Man kann aber Bilder referenzieren.
Auf \cref{abb:bild1} sieht man irgendwas mit Informatik, auf \cref{abb:bild2} auch.

\begin{figure}
\begin{center}
\includegraphics[width=0.3\textwidth]{computerbild1.png}
\caption{Ein Bild mit irgendwas mit Informatik (Lizenz: CC0)}
\label{abb:bild1}
\end{center}
\end{figure}

\begin{figure}
\begin{center}
\includegraphics[width=0.4\textwidth]{computerbild2.jpg}
\caption{Ein anderes Bild mit irgendwas mit Informatik (Lizenz: CC0)}
\label{abb:bild2}
\end{center}
\end{figure}

Man kann Bilder fest positionieren, dann können sie aber keine Bildunterschrift haben und man kann sie nicht referenzieren. Zum Beispiel diese Veranschaulichung einer Queue (Warteschlange):
\begin{center}
\includegraphics[width=0.4\textwidth]{queue.png}
\end{center}


163 164 165
\section{Quellcode (ausschnittsweise)}
Unwichtige Teile des Programms müssen hier nicht abgedruckt werden.

166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
\lstset{language=Pascal}          % Set your language (you can change the language for each code-block optionally)

\begin{lstlisting}[frame=single,language=Python,title=Kleines Python-Programm]
for i in range(100):
  if i % 2 == 0:
    pass
  else:
    print(i)
\end{lstlisting}

\begin{lstlisting}[frame=single,language=C++,title=Kleines C++-Programm]
#include <iostream>

int main(int argc, char** argv) {
  std::cout << "Hallo";
  return 0;
}
\end{lstlisting}

Hier noch ein kurzes Pascal-Snippet ohne Rahmen:
\begin{lstlisting}[language=Pascal]
for i := maxint to 0 do
begin
  a := a + i
end;
Write('Case insensitive ');
Write('Pascal keywords.');
\end{lstlisting}

Das folgende Programm wird aus einer Datei geladen:
\lstinputlisting[frame=single,language=JavaScript,title=Großes JS-Programm]{source.js}



200
\end{document}