%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Descr:       Vorlage für Berichte der DHBW-Karlsruhe, Ein Kapitel
%% Author:      Prof. Dr. Jürgen Vollmer, vollmer@dhbw-karlsruhe.de
%% $Id: kapitel1.tex,v 1.24 2020/03/13 16:02:34 vollmer Exp $
%% -*- coding: utf-8 -*-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Einleitung}

\section{Dateien}
Diese Vorlage umfasst folgende Dateien:
\begin{description}
\item[bericht.tex] Die Haupt-\TeX-Datei. Hier werden die Einstellungen für das
     Deckblatt vorgenommen.
\item[bericht.sty] Die benötigten \LaTeX-Pakete werden hier aufgelistet. Eigene Macros definiert.
\item[bericht.bib] Die Bib\TeX\ "`Datenbank"' für die Literaturreferenzen.
\item[abk.tex] \LaTeX-Datei, welche Abkürzungen definiert.
\item[kapitel1.tex] \LaTeX-Datei für das 1. Kapitel.
\item[kapitel2.tex] \LaTeX-Datei für das 2. Kapitel.
\item[dhbw-logo.png] Das Logo der DHBW-Karlsruhe.
\item[lowe.png] Das \LaTeX-Maskottchen.
\item[Makefile] Zum Erzeugen der PDF-Ausgabe.
\item[Pakete] Das Verzeichnis enthält einige Pakete, die u.\,U.\,unter \emph{Unix} nicht installiert
     sind. Wenn \LaTeX\ also darüber beklagt, daß Pakete fehlen, folgen Sie den Installationsanweisungen
     der Pakete. Prüfen Sie, ob es neuere Versionen der Pakte gibt. In der Datei
     \texttt{bericht.sty} sind entsprechende Links auf die Quellen im Internet angegeben.

     Wenn Sie unter \emph{Microsoft Windows} bei der Installation
     \enquote{Install missing packages on the fly $\longrightarrow$ YES} ausgewählt haben,
     werden fehlende Pakete automatisch installiert.
\item[README.txt] Siehe Listing~\ref{fig-readme}.
\end{description}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Erzeugen der PDF-Dateien}

\subsection{Unix + Kommandozeile}
Die Programmaufrufe zum Erzeugen der \Def{PDF-Datei} unter \emph{Unix}
sind im \texttt{Makefile} angegeben. Im Wsentlichen ruft man in der Konsole das Kommando
\texttt{pdflatex bericht}. Damit alle Referenzen innerhalb des Textes, die Seitennummern,
die Literaturreferenzen etc.\,korrekt ausgegeben werden, muss man \LaTeX mindestens dreimal hintereinander aufrufen.
\begin{verbatim}
   pdflatex bericht
   bibtex   bericht
   makeindex -s bericht.ist bericht
   pdflatex bericht
   pdflatex bericht
\end{verbatim}
Dieser vollständgige Zyklus ist aber für's \enquote{Probelesen} nicht nötig.
\texttt{bibtex}  erzeugt die Lieteraturreferenzen, \texttt{makeindex} erstellt den Index.

\subsection{Andere}
Unter \emph{Microsoft Windows} öffnen Sie die Datei \emph{bericht.tex} im \emph{TexnicCenter}.
In vielen Betriebsystemen gibt es auch graphische Oberflächen zur Erstellung von Texten mit \LaTeX,
diese erzeugen dann die PDF-Dateien -- ebenfalls durch Aufruf eines entsprechenden
Konsolenprogrammes, allerdings \enquote{unsichtbar} für den Benutzer.

\subsection{Geht's nicht etwas fixer? Eigene Formatdatei}
Das Einlesen aller eingebundenen Pakete pro Aufruf von \texttt{pdflatex} kann mitunter
\enquote{etwas dauern}. Dies lässt sich beschleunigen, indem man eine eigene \enquote{Formatdatei}
\index{Formatdatei} \texttt{bericht.fmt} erzeugt, diese enthält ein vorkomplierte \enquote{Version}
der Pakete. Damit \texttt{pdflatex} diese vorkompilierte Datei benutzt, muss in der ersten Zeile der
\texttt{bericht.tex} Datei folgende Zeile stehen:
\begin{verbatim}
%&bericht
\end{verbatim}
gefolgt von einer Leerzeile. Existiert die Datei \texttt{bericht.fmt} nicht, werden die Pakete
\enquote{wie üblich} einzeln eingebunden.

Damit \texttt{pdflatex} \enquote{weiss} was alles vorübersetzt werden soll, muss in
\texttt{bericht.tex} folgende Zeile stehen
\begin{verbatim}
\csname endofdump\endcsname
\end{verbatim}
ACHTUNG, wenn man eine eigene Formatdatei benutzt, werden Änderungen an \texttt{bericht.sty}
erst wirksam, wenn die Format-Datei neu erzeugt wurde!
Genauer alle Änderungen, die textuell vor  der Zeile \texttt{$\dots$ endofdump $\dots$} stehen,
werden erst wirksam, wenn die Formatdatei neu erzeugt wurde

Das Kommando zum Erzeugen der Formatdatei lautet:
\begin{verbatim}
   pdflatex -ini -jobname=bericht  "&pdflatex" mylatexformat.ltx bericht.tex
\end{verbatim}
Weitere Infos finden Sie auf den hier\footnote{
\url{https://tex.stackexchange.com/questions/79493/ultrafast-pdflatex-with-precompiling} und\\
\url{https://ctan.org/pkg/mylatexformat}}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Einfügen von Bildern und Querverweise im Text}

\index{Bilder}

Abb.~\ref{fig-loewe} auf Seite~\pageref{fig-loewe} zeigt das \LaTeX-Maskottchen.
\begin{figure}[htbp]
\centering
\fbox{\includegraphics[height=0.3\textheight,angle=270]{lion}}
\caption{\label{fig-loewe}Der \LaTeX-Löwe}
\end{figure}

Die Benutzung des \texttt{varioref}-Paketes macht das Benutzen von Referenzen einfacher.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Literaturreferenzen}

\LaTeX\ \cite{lamport.1995a} basiert auf \TeX \cite{knuth.1984a}.
Die Literaturreferenzen werden von Bib\TeX verwaltet.

Hier ein Beispiel des Zitierens von Web-Seiten
\cite{dante.2010a} ist der Anlaufpunkt für \LaTeX\ in Deutschland.

URLs zitieren kann man so \cite{dante.2010a} machen.

\section{Literaturreferenzen mit dem Bib\LaTeX-Paket}

\index{Literaturreferenz}
Das Bib\LaTeX-Paket erlaubt eine deutlich komfortableren Zugriff auf Einträge der
BiB\TeX-"`Datenbank"' als die einfachen Bib\TeX-Stile. Allerdings ist das \texttt{bibtex}-Paket
nicht standard mässig installiert. Es muß zusammen mit dem \texttt{etoolbox}-Paket installiert
werden, s.\
\url{http://dante.ctan.org/tex-archive/help/Catalogue/entries/etoolbox.html} und\\
\url{http://dante.ctan.org/tex-archive/help/Catalogue/entries/biblatex.html}.


% Nur mit BIBLATEX
Ein Beispiel was man mit Bib\LaTeX\ machen kann (siehe auch \texttt{bericht.s}).

\citefullauthor{knuth.1984a} hat in seinem wegeweisenden Buch
\citetitle{knuth.1984a} aus dem Jahr \citeyear{knuth.1984a}
die Grundlagen von \TeX\ gelegt.

% nur mit BIBLATEX:
Nur die URL angeben: \citeurl{dante.2010a} oder URL mit Referenz:
\citeurlref{dante.2010a}, oder eben "`einfach"' wie oben gezeigt.

Tabelle~\ref{bibtex-macros} zeigt die wichtigsten Macros.
\begin{table}
\begin{center}
\small
\begin{tabular}{|l|l|l|}\hline
\multicolumn{1}{|c}{Macro}        & \multicolumn{1}{|c}{Bedeutung} &    \multicolumn{1}{|c|}{Beispiel} \\\hline\hline
\verb+\cite{referenz}+            & Ausgabe der Referenz           & \cite{knuth.1984a}             \\
\verb+\citetitle{referenz}+       & Ausgabe der Titels             & \citetitle{knuth.1984a}        \\
\verb+\citefullauthor{referenz}+  & Ausgabe der Autors             & \citefullauthor{knuth.1984a}   \\
\verb+\citeyear{referenz}+        & Ausgabe der Jahres             & \citeyear{knuth.1984a}         \\\hline
\multicolumn{3}{|c|}{Internet-Resourcen referenezieren}                                             \\\hline
\verb+\citeurl{referenz}+         & Referenz auf eine URL          & \citeurl{dante.2010a}          \\
\verb+\citeurlref{referenz}+      & URL  mit Referenz              & \citeurlref{dante.2010a}       \\\hline
\end{tabular}
\end{center}
\caption{\label{bibtex-macros}Macros für die Literaturrefrenzen}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Quellcodelistings}

\Def[Quellcodelisting]{Quellcodelistings} können mit dem \texttt{listings}-Paket gesetzt werden.
Es können Dateien direkt inkludiert werden, wie das \texttt{Makefile} aus
Listing~\ref{algo-makefile}, oder in der \LaTeX-Datei angegeben werden (siehe
Listing~\ref{algo-quicksort}).
\newpage

% Inkludiere eine Programmdatei
\lstinputlisting[language=make,         % Welche Sprache, see listings-Dokumentation
                 style=algoBericht,     % Benutze oben definierten Stil
                 label={algo-makefile}, % Label für \ref{..}
                 basicstyle=\tiny\sffamily,
                 captionpos=b,
		 caption={Das Makefile}]{Makefile.} % Überschrift, Dateiname der zu inkludieren Datei
% ACHTUNG: ProTeXT / Windows hat hier ein Bug: "Makefile" ohne Punkt am Ende wird nicht gefunden.
%          ($%&/ DOS-Legacy :-(
%          Daher muss für Linux eine Datei "Makefile." (mit Punkt am Ende) als Symlink auf "Makefile"
%          angelegt werden und hier "Makefile." angegeben werden. Das ist nur notwendig,
%          wenn der Dateiname keinen Suffix hat....

% Setze Programm direkt
\begin{lstlisting}[language=c,
                   frame=single,           % Ein Rahmen um den Code
                   framexleftmargin=15pt,  % Rahmen link von den Zahlen
                   style=algoBericht,
                   label={algo-quicksort},
                   captionpos=b,           % Caption unter den Code setzen
		   caption={quicksort in C}]
void quicksort (int *a, int links, int rechts)
/* sortiert die Elemente a[links] .. a[rechts] */
{
  /* partitioniere a[links] .. a[rechts] */
  int m = (links + rechts) / 2 ;
  int x = a[m];
  int l = links, r = rechts;

  while (l <= r) {
    while (a[l] < x) l++;
    printf ("von links: l=%d\n", l);
    while (a[r] > x) r--;
    printf ("von rechts: r=%d\n", r);

    if (l <= r) {
      int t = a[l]; a[l] = a[r]; a[r] = t;
                                    /* a[l] <-> a[r] */
      l++; r--;   /* "verschiebe Pfeile" */
    }
  }

  /* Sortiere linken und rechten Teilarray */
  if (links < r)      quicksort (a, links, r);
  if (l     < rechts) quicksort (a, l,     rechts);
}
\end{lstlisting}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Benutzen von Abkürzungen}

\acp{Abk} % Plural der Abkürzung
werden mit dem \verb+acronym+-Paket veraltet.
Jede
\ac{Abk} % Singular
wird in der Datei \texttt{abk.tex} definiert.
Eine \ac{Abk} wird mit dem \verb+\ac{Abk}+  Macro benutzt. Beim ersten Auftreten
wird der Langtext und in Klammern die zugehörige \Def{Abkürzung} ausgegeben. Bei allen
folgenden Benutzungen wird nur die Abkürzung ausgegeben.

Tabelle~\ref{acronym-macros} zeigt die wichtigsten Macros.
\begin{table}[ht]
\begin{center}
\begin{tabular}{|ll|}\hline
\verb+\acs{NAME}+  & immer die Kurzform: \acs{Abk}		\\
\verb+\acl{NAME}+  & immer die Langform: \acl{Abk}		\\
\verb+\acp{NAME}+  & Kurzform des Plurals: \acp{Abk}		\\
\verb+\aclp{NAME}+ & immer Langform des Plurals: \aclp{Abk}	\\\hline
\end{tabular}
\end{center}
\caption{\label{acronym-macros}Macros für Abkürzungen}
\end{table}

Ein Beispiel, welches zeigt, daß auch Formeln als \acp{Abk} benutzt werden können:\\
\ac{H2O} ist ein wahrlich gefährlicher Stoff. \ac{H2O} verursacht in gasförmigem
Zustand schwerste Verbrennungen der menschlichen Haut und der Atemorgane.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{TODO Markierungen}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Das Paket\todo{Was waren nochmal Pakete?} \texttt{todonotes} stellt das Makro\todo{Was sind \LaTeX\ Macros?}
\verb+\todo{...text....}+ zur Verfügung.

Das Macro \verb+\missingfigure{Da fehlt noch ein Bild}+ erzeugt
\missingfigure{Da fehlt noch ein Bild}.

\todo[color=red,inline]{Das Handbuch \texttt{todonotes} lesen!}

Am Ende des Dokuments wird die Liste aller ToDo's mit \verb+\listoftodos+ ausgegeben\\
(siehe \texttt{bericht.tex}).

\noindent
Das Paket kennt folgende Optionen:
\begin{description}
\item[\texttt{disable}] ToDo's nicht anzeigen
\end{description}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Indices}

Mit dem Paket \verb+makeinx+ und dem Macro \verb+\index+ können  leicht Indices erstellt werden.
Das Macro \verb+\Def{..}+ kann für definitinen benutzt werden.
z.\,B.\, Mit demm optionalen Argument wie in  \verb+\Def[Definition]{Definitionen}+
(\Def[Definition]{Definitionen}) können verschiedene Schreibweisen im text und Index angegeben
werden.
Weitere interessante Möglichkeiten sind:
\begin{itemize}
\item \verb+\index{Punkt!Unterpunkt}+ \index{Punkt!Unterpunkt}
\item \verb+\index{Verweis|see{Punkt}}+ \index{Verweis|see{Punkt}}
\end{itemize}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Sachen, die mir Anwender geschickt haben}

\subsection{Erstellen eines Formelverzeichnises}
\textsc{Andy Nöltner} \url{ANoeltner@lstelcom.com}

Gleichung~\ref{eq-hx-angle} ist eine schöne Gleichung, die im \emph{Formelverzeichnis}
erscheint.
\begin{equation}
hx = x \cdot \tan \alpha
\eqlabel{eq-hx-angle}{Berechnung Höhenunterschied Tx zu Rx}
\end{equation}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Installationsanleitung}

  \hrule
  %% ACHTUNG: Es macht Probleme, wenn die inkludierte Datei UTF8 Kodiert ist
  %% ggf. hilft: https://www.ctan.org/pkg/listingsutf8
  \lstinputlisting[
     basicstyle=\small\rmfamily,
     fontadjust,
     firstline=6,
     captionpos=t,
     label={fig-readme},
     caption={Installationsanleitung unter Microsoft Windows und Linux (\texttt{README.txt})}
  ]{README.txt}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
