%!TEX root = l2kurz.tex
% Siehe https://github.com/texdoc/l2kurz


\section{Eingabefile}

Das Eingabefile für \LaTeX{} ist ein Textfile mit der Endung \lstinline+.tex+.
Es  wird mit einem Editor erstellt und enthält sowohl den Text, der gedruckt
werden  soll, als auch die Befehle, aus denen \LaTeX\ erfährt, wie der Text
gesetzt  werden soll. Als Editor bietet sich ein spezieller \LaTeX-Editor an
wie beispielsweise Texmaker (\href{http://www.xm1math.net/texmaker}{\nolinkurl
{www.xm1math.net/texmaker}}). Diese Editoren bieten neben Syntaxhervorhebung
und "=überprüfung auch vordefinierte Arbeitsabläufe, so dass der Benutzer sich
auf die Erstellung des Texts konzentrieren kann. Es ist aber auch möglich und
gängige Praxis, \emph{normale} Texteditoren wie emacs, vim oder notepad++ zu
benutzen.


\subsection{Leerstellen}
 
"`Unsichtbare"' Zeichen wie das Leerzeichen, Tabulatoren und das Zeilenende 
werden von \LaTeX{} einheitlich als Leerzeichen behandelt. \emph{Mehrere}
Leerzeichen werden wie \emph{ein} Leerzeichen behandelt. Wenn man andere als 
die normalen Wort- und Zeilenabstände will, kann man dies also nicht durch die 
Eingabe von zusätzlichen Leerzeichen oder Leerzeilen erreichen, sondern nur mit 
entsprechenden \LaTeX-Befehlen.

Eine Leerzeile zwischen Textzeilen bedeutet das Ende eines Absatzes.
\emph{Mehrere} Leerzeilen werden wie \emph{eine} Leerzeile behandelt.
 
 
\subsection{\LaTeX-Befehle und Gruppen}
 
Die meisten \LaTeX-Befehle haben eines der beiden folgenden Formate: Entweder
sie beginnen mit einem Backslash~(\lstinline|\|) und haben dann einen nur aus
Buchstaben bestehenden Namen, der durch ein oder mehrere Leerzeichen oder
durch ein nachfolgendes Sonderzeichen beendet wird; oder sie bestehen aus
einem Backslash und genau einem Sonderzeichen. Groß- und Kleinbuchstaben haben
auch in Befehlsnamen \emph{verschiedene}  Bedeutung. Wenn man nach einem
Befehlsnamen eine Leerstelle erhalten will, muss  man~\lstinline|{}| zur
Beendigung des Befehlsnamens oder einen eigenen Befehl für die Leerstelle
verwenden.

% PG: würde ich drin lassen
\renewcommand{\today}{35.~Mai 2012}  % to make sure that the
% line breaks look good, regardless of the date of printing.
\begin{LTXexample}
Heute ist der \today.
Oder: Heute ist der \today .
Falsch ist:
 Am \today regnet es.
Richtig:
 Am \today{} scheint die Sonne.
 Oder: Am \today\ schneit es.
\end{LTXexample}
 
Manche Befehle haben Parameter, die zwischen geschwungenen Klammern angegeben 
werden müssen. Manche Befehle haben Parameter, die weggelassen oder zwischen
eckigen Klammern angegeben werden können. Manche Befehle haben Varianten, die 
durch das Hinzufügen eines Sterns an den Befehlsnamen unterschieden werden.

Geschwungene Klammern können auch dazu verwendet werden, Gruppen (\emph{groups})
zu bilden. Die Wirkung von Befehlen, die innerhalb von Gruppen oder Umgebungen 
(\emph{environments}) angegeben werden, endet immer mit dem Ende der Gruppe 
bzw.\ der Umgebung.  Im obigen Beispiel ist~\lstinline|{}| eine leere Gruppe, die 
außer der Beendigung des Befehlsnamens \texttt{today} keine Wirkung hat.
 
\subsection{Kommentare}
 
Alles, was hinter einem Prozentzeichen (\lstinline|%|) steht (bis zum Ende der 
Eingabezeile), wird von \LaTeX{} ignoriert. Dies kann für Notizen des Autors 
verwendet werden, die nicht oder noch nicht ausgedruckt werden sollen.
\begin{LTXexample}
Das ist ein % dummes
% Besser: ein lehrreiches <----
Beispiel. 
\end{LTXexample}
 
\subsection{Aufbau}

Der erste Befehl in einem \LaTeX-Eingabefile muss der Befehl
\begin{lstlisting}
 \documentclass
\end{lstlisting}
sein. Er legt fest, welche Art von Schriftstück überhaupt erzeugt werden soll
(Bericht, Buch, Brief usw.). Danach können weitere Befehle folgen bzw. 
deklariert werden, die für das gesamte Dokument gelten sollen.  Dieser Teil des 
Dokuments wird auch als \emph{Vorspann} oder \emph{Präambel} bezeichnet. Mit dem
Befehl
\begin{lstlisting}
 \begin{document}
\end{lstlisting}
endet der Vorspann, und es beginnt das Setzen des Schriftstücks. Nun folgen der 
Text und alle \LaTeX-Befehle, die das Ausdrucken des Schriftstücks bewirken.
Die Eingabe muss mit dem Befehl
\begin{lstlisting}
 \end{document}
\end{lstlisting}
beendet werden. Falls nach diesem Befehl noch Eingaben folgen, werden sie von
\LaTeX{} ignoriert.
 
Listing~\ref{mini} zeigt ein \emph{minimales} \LaTeX-File. Ein etwas 
komplizierteres File ist in Listing~\ref{dokument} skizziert.
 
\begin{example}[caption={Ein minimales \LaTeX-File},label={mini}]
\documentclass{article}
\begin{document}
 Small is beautiful.
\end{document} 
\end{example}

\begin{example}[caption={Aufbau eines Artikels},label={dokument}]
\documentclass[11pt,a4paper,ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\date{29. Februar 1998}
\author{H.~Partl}
\title{Über kurz oder lang}

\begin{document}
\maketitle
\tableofcontents

\section{Start}
Hier beginnt mein schönes Werk ...

\section{Ende}
... und hier endet es.

\end{document}
\end{example}


\subsection{Dokumentklassen}\label{docsty}
 
Die am Beginn des Eingabefiles  mit
\begin{lstlisting}
 \documentclass[<optionen>]{<klasse>}
\end{lstlisting}
definierte "`Klasse"' eines Dokumentes enthält Vereinbarungen über das Layout 
und die logischen Strukturen, z.\,B.\ die Gliederungseinheiten (Kapitel etc.\@), 
die für alle Dokumente dieses Typs gemeinsam sind.

Zwischen den geschwungenen Klammern \emph{muss} genau eine Dokumentklasse
angegeben werden.  Tabelle~\vref{docstyles} führt 
Klassen auf, die in jeder vollständigen \LaTeX-Installation existieren. 

Zwischen den eckigen Klammern \emph{können}, durch Kommas getrennt, eine oder 
mehrere Optionen für das Klassenlayout angegeben werden. Die wichtigsten 
Optionen für die Standardklassen sind in der Tabelle~\vref{options} angeführt.
Das Eingabefile für diese Beschreibung beginnt z.\,B.\ mit:
\begin{lstlisting}
 \documentclass[11pt,a4paper]{article}
\end{lstlisting}


\begin{longtable}[c]{@{}>{\raggedright\arraybackslash\ttfamily}p{2.2cm}%
                         p{\dimexpr 0.95\linewidth-2.2cm-2\tabcolsep\relax}@{}}
 \caption{Dokumentklassen}\label{docstyles} \\\toprule
\endfirsthead
 \caption[]{Dokumentklassen}\\\toprule
\endhead
 \multicolumn{2}{r}{\small Forsetzung nächste Seite}\\
\endfoot
\endlastfoot
 article & 
 für Artikel in wissenschaftlichen Zeitschriften,  kürzere Berichte u.\,v.\,a. 
\\
 report & 
 für längere Berichte, die aus mehreren Kapiteln bestehen, Diplomarbeiten, 
 Dissertationen u.\,ä. 
\\
 book   &  
 für Bücher 
\\
 scrartcl, scrreprt, scrbook & 
 Die sog. KOMA-Klassen sind Varianten der o.\,g. Klassen mit besserer Anpassung 
 an DIN-Papierformate und "`europäische"' Typographie. Zudem erlauben sie 
 mittels Optionen die Anpassung des Layouts. Entgegen den Standardklassen 
 existiert eine deutsche und englische Dokumenation (siehe \cite{scrguide})
\\
 beamer &
 für Präsentationen 
\\
\bottomrule
\end{longtable}



\begin{longtable}[c]{@{}>{\raggedright\arraybackslash\ttfamily}p{2.2cm}%
                         p{\dimexpr 0.95\linewidth-2.2cm-2\tabcolsep\relax}@{}}
 \caption[Klassenoptionen]{Klassenoptionen für die Standardklassen}\label{options} \\\toprule
\endfirsthead
 \caption[]{Klassenoptionen für die Standardklassen}\\\toprule
\endhead
 \multicolumn{2}{r}{\small Forsetzung nächste Seite}\\
\endfoot
\endlastfoot
 10pt 11pt  12pt & 
 wählt die normale Schriftgröße des Dokuments aus. 10\,pt hohe Schrift ist die 
 Voreinstellung; diese Beschreibung benutzt 11\,pt. 
\\
 a4paper & 
 für Papier im DIN\,A4-Format. Ohne diese Option nehmen die Standardklassen das 
 amerikanisches Papierformat. 
\\
 fleqn & 
 für linksbündige statt zentrierte mathematische Gleichungen 
\\
 leqno &
 für Gleichungsnummern links statt rechts von jeder   nummerierten Gleichung 
\\
 titlepage  notitlepage & 
 legt fest, ob Titel und Zusammenfassung auf einer eigenen Seite erscheinen 
 sollen.  \texttt{titlepage} ist die Voreinstellung für die Klassen 
 \texttt{report} und \texttt{book}. 
\\
 onecolumn   twocolumn & 
 für ein- oder zweispaltigen Satz.  Die Voreinstellung ist immer 
 \texttt{onecolumn}.  
\\
 oneside   twoside & 
 legt fest, ob die Seiten für ein- oder zweiseitigen  Druck gestaltet werden 
 sollen. \texttt{oneside} ist die Voreinstellung für alle Klassen außer 
 \texttt{book}.
\\\bottomrule
\end{longtable}




\subsection{Pakete}\label{packages}
 
Mit dem Befehl
\begin{lstlisting}
 \usepackage[<optionen>]{<paket>}
\end{lstlisting}
können im Vorspann ergänzende Makropakete (\emph{packages}) geladen werden, die das 
Layout der Dokumentklasse modifizieren oder zusätzliche Funktionalität 
bereitstellen. Eine Auswahl von Paketen findet sich in der Tabelle~\vref{pack}. Der Befehl \lstinline+\usepackage+ erlaubt das Laden
mehrerer Pakete, wobei eine Optionenübergabe nicht möglich ist, bzw. die Optionen für alle Pakete gelten.



\begin{longtable}[c]{@{}>{\raggedright\arraybackslash\ttfamily}p{2.2cm}%
                         p{\dimexpr 0.95\linewidth-2.2cm-2\tabcolsep\relax}@{}}
 \caption{Pakete (eine Auswahl)}\label{pack} \\\toprule
\endfirsthead
 \caption[]{Pakete (eine Auswahl)}\\\toprule
\endhead
 \multicolumn{2}{r}{\small Fortsetzung nächste Seite}\\
\endfoot
\endlastfoot
 amsmath, amssymb & 
 Mathematischer Formelsatz mit erweiterten Fähigkeiten, zusätzliche 
 mathematische Schriften und Symbole; Beschreibung siehe \cite{ch8}. 
\\
 array & 
 Verbesserte und erweiterte Versionen der Umgebungen  \texttt{array}, 
 \texttt{tabular} und \texttt{tabular*}.
\\
 babel & 
 Anpassungen für viele verschiedene Sprachen. Die  gewählten Sprachen werden 
 als Optionen angegeben.
\\
csquotes  & Mächtiges Paket zum korrekten Setzen (fremdsprachlicher) Anführungszeichen \\
 fontenc & 
 Erlaubt die Verwendung von Schriften mit  unterschiedlicher Kodierung
 (Zeichenvorrat, Anordnung).
\\
 geometry & 
 Manipulation des Seitenlayouts.\\ 
 graphicx & 
 Einbindung von extern erzeugten Graphiken. Die umfangreichen Möglichkeiten 
 dieses Pakets werden in~\cite{grfguide} und~\cite{grfcomp} beschrieben. 
\\
 hyperref & 
 Ermöglicht Hyperlinks zwischen Textstellen und zu externen Dokumenten; 
 besonders sinnvoll einsetzbar, wenn mit \TeX\ eine Ausgabedatei im 
 \textsc{pdf}- oder \textsc{html}-Format erzeugt wird.
\\
 imakeidx & 
 Unterstützt das Erstellen eines Index.
\\
 listings & Flexible Erweiterung der \texttt{verbatim}-Umgebung.
\\
 longtable &
 für Tabellen über mehrere Seiten mit automatischem Seitenumbruch.
\\
microtype & Verändert den Absatzumbruch leicht, um bessere Zeilenumbrüche zu erzeugen; optischer Randausgleich. \\
 multicol & 
 Mehrspaltiger Satz mit Kolumnenausgleich.
\\
 selinput & 
 Deklaration der Zeichenkodierung im Eingabefile.
\\
siunitx   & Formatierung von Zahlen und physikalischen Einheiten  \\
 tabularx & 
 für Tabellen mit automatisch an den vorhandenen Platz angepasster Breite der 
 Spalten.
\\
 textcomp & 
 Bindet Schriften mit zusätzlichen Textsymbolen ein.
 \\
 xcolor & 
 Unterstützung für Farbausgabe;  Beschreibung  siehe~\cite{grfguide} 
 und~\cite{grfcomp}.
\\
\bottomrule
\end{longtable}


\subsection{Eingabezeichensatz}\label{inputenc}

Bei jedem \LaTeX-System dürfen mindestens die folgenden Zeichen zur Eingabe von 
Text verwendet werden:
\begin{quote}
  \ttfamily
  a\dots z A\dots Z 0\dots 9 \\
  . : ; , ? ! ` ' ( ) [ ] - / * @ + =
\end{quote}
Die folgenden Eingabezeichen haben für \LaTeX{} eine Spezialbedeutung oder sind 
nur innerhalb von mathematischen Formeln erlaubt:
\begin{quote}
\verb.$ & % # _ { }  ~  ^  "  \  | < >.
\end{quote}
Für Zeichen, die über obige Liste hinausgehen, beispielsweise die Umlaute, sind 
unterschiedliche Kodierungen in
Gebrauch. Die Kodierung ist hierbei vom Betriebssystem sowie vom Editor 
abhängig. Um Umlaute direkt zu nutzen ohne auf spezielle Kodierung einzugehen,
bietet sich das Paket \texttt{selinput} an. Es ermittelt während des 
Kompilierungsvorgangs die verwendete Kodierung. Um dies sicher zu stellen, muss
das Paket wie folgt in der Präambel eingebunden werden:
\begin{example}[caption={Bestimmung der Kodierung für die Nutzung von Umlauten},]
 \usepackage{selinput}
 \SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
 }
 % Wörter mit Umlauten werden getrennt:
 \usepackage[T1]{fontenc}
\end{example}

Neben dem Paket \texttt{selinput} existiert auch das Paket \texttt{inputenc}.
Hier gibt man die zu verwendende Kodierung als Paketoption vor, diese muss man
jedoch dafür in Erfahrung bringen, was nicht immer einfach ist. Im Falle von
UTF-8 als Eingabekodierung ist das:

\begin{beispiel}
	\lstinline+\usepackage[utf8]{inputenc}+
\end{beispiel}

Falls \LaTeX{} ein eingegebenes Zeichen nicht darstellen kann, was meist für die
sogenannten "`Pseudografik-Zeichen"' gilt,  bekommt man eine entsprechende 
Fehlermeldung. Auch sind manche Zeichen nur im Text, andere nur in 
mathematischen Formeln erlaubt.

Man beachte, dass der in der \emph{Ausgabe} darstellbare Zeichenvorrat von 
\LaTeX{} nicht davon abhängt, welche Zeichen als \emph{Eingabe} erlaubt sind:
Für jedes überhaupt darstellbare Zeichen -- also auch diejenigen, die nicht im 
Zeichensatz des jeweiligen Betriebssystems enthalten sind -- gibt es einen 
\LaTeX-Befehl oder eine Ersatzdarstellung, die ausschließlich mit ASCII-Zeichen 
auskommt.  Näheres darüber erfahren Sie in Abschnitt \ref{spezial}.

\endinput
