%monaco 10pt
\pdfoutput=1
\documentclass[a4paper, pdftex, 10pt]{article}
\usepackage{german} 
%\usepackage{isolatin1}
\usepackage[latin1]{inputenc}
\usepackage{times} 
%%
\usepackage{graphicx}
%%
\usepackage{hyperref}
\usepackage{longtable}
\usepackage{moreverb}
\usepackage{fancyvrb}
\usepackage{tabularx} 
\usepackage{listings}
\usepackage{colortbl}
\usepackage{xcolor}
\pdfcompresslevel=0
%\topmargin-25mm 
%\textheight255mm 
%\oddsidemargin-10mm
%\textwidth170mm
\columnsep5mm
\parindent0mm 
\parskip0.5ex
\newcommand{\strich}[1]{
  \rule{\linewidth}{#1}
}
\newcommand{\pl}{PL/pgSQL }
\newcommand{\gl}{GNU/Linux }
%%***parbox definieren
\newcommand{\kasten}[1]{
  \begin{center}
    \fbox{\parbox{11cm}{#1}}
  \end{center}
}
%%**********************

%%################################################################
%Definieren uns farbigen Quellcode
%\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
%definecolor{gray}{rgb}{0.5,0.5,0.5}
%definecolor{mauve}{rgb}{0.58,0,0.82}
 
%Damit wir Quellcode nutzen können.
\usepackage{listings}

\lstdefinestyle{highlight}{
  keywordstyle=\color{red},
  commentstyle=\color{green},
  stringstyle=\color{dkgreen}
}

\lstloadlanguages{{XSLT}}
\lstloadlanguages{xml}
\lstloadlanguages{java}
\lstloadlanguages{Caml}

%\lstset{numbers=left,
\lstdefinestyle{xslt}{
        language=XSLT,
        numbers=left,
	numberstyle=\tiny,
	numbersep=5pt,
	breaklines=true,
	showstringspaces=false,
	frame=l ,
	xleftmargin=15pt,
	xrightmargin=15pt,
	stepnumber=1,
        tagstyle=\color{black!80},
        basicstyle=\footnotesize{\color{black!80}},
        keywordstyle={\color{red}\bf{}},
        commentstyle=\color{green!80},
        stringstyle=\color{dkgreen!80},
        moredelim=**[is][\pause{\color{black}\lstset{style=highlight}}]{@}{@},
        morekeywords={xs:schema,xs:element,xs:complexType,xs:sequence,xs:attribute
        },
}

\lstdefinestyle{java}{
      %  font=\tiny,
        language=java,
        numbers=left,
	numberstyle=\tiny,
	numbersep=5pt,
	breaklines=true,
	showstringspaces=false,
	frame=l ,
	xleftmargin=15pt,
	xrightmargin=15pt,
	stepnumber=1,
        basicstyle=\scriptsize{\color{black!80}},
        keywordstyle={\color{red}\bf{}},
        commentstyle=\color{green!80},
        stringstyle=\color{dkgreen!80},
        moredelim=**[is][\pause{\color{black}\lstset{style=highlight}}]{@}{@},
}

\lstdefinestyle{ocaml}{%
  language=[Objective]Caml,
  numbers=left,
  numberstyle=\tiny,
  numbersep=5pt,
  breaklines=true,
  showstringspaces=false,
  frame=l ,
  xleftmargin=15pt,
  xrightmargin=15pt,
  stepnumber=1,
  basicstyle=\footnotesize{\color{black!80}},
  keywordstyle={\color{red}\bf{}},
  commentstyle=\color{green!80},
  stringstyle=\color{dkgreen!80},
  moredelim=**[is][\pause{\color{black}\lstset{style=highlight}}]{§}{§},
}

\lstdefinestyle{ocaml2}{%
  language=[Objective]Caml,
  numbers=left,
  numberstyle=\tiny,
  numbersep=5pt,
  breaklines=true,
  showstringspaces=false,
  frame=l ,
  xleftmargin=15pt,
  xrightmargin=15pt,
  stepnumber=1,
  basicstyle=\footnotesize{\color{black!80}},
  keywordstyle={\color{red}\bf{}},
  commentstyle=\color{green!80},
  stringstyle=\color{dkgreen!80},
  moredelim=**[is][\pause{\color{black}\lstset{style=highlight}}]{§}{§},
}

\lstdefinelanguage{ios} 
{morekeywords={R1,config,config-std-nacl,deny,
               permit,remark,access-list,
               port,operator,established,log,
               any,host,icmp,ip,tcp,udp,
               lt,gt,eq,neq,in,out,access-group,
               ip,ipx,config-if,no,
               nat,inside,source,static,pool,netmask,
               list,interface,overload,clear,translation,
               outside,appletalk,
               frame-relay,map,ietf,cisco,broadcast,
               point-to-point,multipoint,
               frame-relay,interface-dlci,
               copy,
               ipv6,
},
alsoletter={-},
sensitive=true, 
breaklines=true,
basicstyle=\ttfamily\small,
keywordstyle=\bfseries
} 

%%################################################################

\begin{document}

   \title{Projektdokumentation}

   \author{Alfred E. Neumann}

   \date{\today}
   \maketitle
   \tableofcontents
   \listoffigures

\section{Was ist \TeX}

\TeX ist eine \textit{Auszeichnungssprache} ähnlich
\texttt{html}. Allerdings erzeugt \TeX keine Seiten für den
Bildschirm, sondern ist für die Erzeugung von druckbaren Texten
entwickelt worden. D.h. es berücksichtigt alle Regeln, die ein
professioneller Schriftsetzer kennnen muss. Seine Stärke ist vor allem
der Blocksatz, bei dem die Anordnung der Zeichen mit Mikro-Abständen
gleichmässig über einen Absatz ausgeglichen wird.

Bei html sind sog. Tags html-Elemente, die mit spitzen Klammern erzeugt werden.

Bei \TeX werden die Tags mit dem \\\ - Zeichen eingeleitet und das Element wird mit den Klammern \{ und \} begrenzt.

Z.b. um etwas \textit{kursiv} zu setzen: \verb+\textit{kursiv}+.

Die meisten Sonderzeichen haben auch eine Sonderbedeutung, durch vorangestelltes \\\ kann man diese aufheben. Z.B. \{ .

\section{Das ist eine Kapitelüberschrift}

\subsection{Ein Unterkapitel}

Hier ein Beispiel für eine Liste:

  \begin{itemize}
     \item Die Firewall besteht aus \textbf{Tabellen}.%%
     \item Eine Tabelle enthält mehrere Filter-\textbf{Ketten}.%%
     \item Eine Kette besteht aus \textbf{Regeln}, die Regeln sind also die
    Kettenglieder. Die Regeln einer Kette werden nacheinander
    durchlaufen. Trifft eine Regel zu, wird die Kette verlassen.  %%
     \item Eine Regel endet mit der Angabe eines Sprung-\textbf{Ziels}. Das
    Ziel bestimmt, was mit dem Paket gemacht wird: DROP, ACCEPT, DNAT,
    ... oder ob man zu einer anderen Kette springt.%%
  \item Die Sprungziele am \textit{Ende} der fest definierten,
    eingebauten Ketten nennt man \textit{Policies}. Diese können nur
    die Werte \textbf{ACCEPT} oder \textbf{DROP} haben.
  \end{itemize}
  
\clearpage

\subsubsection{Ein Unter-Unterkapitel}

Mit minipages kann man Objekte nebeneinander anordnen. Hier drei Tabellen:

\begin{table}[h]
  \centering
\begin{minipage}[h]{0.3\linewidth}
    \begin{tabular}[h]{|l|l|}
      \hline
\rowcolor{red}
      \multicolumn{2}{|l|}{\textbf{filter}}\\\hline
   &FORWARD\\ \cline{2-2}
   &INPUT\\ \cline{2-2}
   &OUTPUT\\ \hline
    \end{tabular}
    \caption{Tabelle filter}
    \label{filter}
  \end{minipage}
%
\hfill
%
  \begin{minipage}[h]{0.3\linewidth}
    \begin{tabular}[h]{|l|l|}
      \hline
\rowcolor{blue}
      \multicolumn{2}{|l|}{\textbf{nat}}\\\hline
   &PREROUTING\\ \cline{2-2}
   &OUTPUT\\ \cline{2-2}
   &POSTROUTING\\ \hline
    \end{tabular}
    \caption{Tabelle nat}
    \label{nat}
  \end{minipage}
%
\hfill
%
  \begin{minipage}[h]{0.3\linewidth}
    \begin{tabular}[h]{|l|l|}
      \hline
\rowcolor{green}
      \multicolumn{2}{|l|}{\textbf{mangle}}\\\hline
   &PREROUTING\\ \cline{2-2}
   &POSTROUTING\\ \cline{2-2}
   &OUTPUT\\ \cline{2-2}
   &INPUT\\ \cline{2-2}
   &FORWARD\\ \hline
    \end{tabular}
    \caption{Tabelle mangle}
    \label{filter}
  \end{minipage}
\end{table}

\section{Bilder}

\textbackslash includegraphics hat viele Optionen. \url{https://docs.aspose.com/tex/net/latex-graphics/}

Selbstverständlich kann die Bilddatei auch im pdf-Format sein.

%%************************************************************************
  \begin{figure}[h]
    \begin{center}
      \fbox{\includegraphics[scale=0.1,angle=90,trim=-5mm -5mm -5mm -5mm]{bilder/testbild.jpg}}
      \caption{\label{ipTablesNeu}Testbild}
    \end{center}
  \end{figure}
  %% ************************************************************************

\clearpage

\section{Listings}

Programmlistings kann man z.b. mit dem Paket \verb+listings+ erstellen.

\url{https://texdoc.org/serve/listings.pdf/0}

\begin{lstlisting}[style=ocaml, gobble=1]
  let dreifach (x:float) = 3.0 *. x
  let inc (x:float) = x +. 1.0
  inc(dreifach 7.0 -. inc 2.0)
  inc(3.0 *. 7.0 -. 2.0 +. 1.0)
  inc(21.0 -. 3.0)
  inc(18.0)
  (18.0 +. 1.0)
  19
\end{lstlisting}

\end{document}
