\section{Dokumenten-Erzeugung mit XEmacs, \LaTeX~und Co.}

 
\subsection{Bedeutung und Möglichkeiten} % erstes Thema des Tages

Bei \LaTeX~(sprich: laatäch, notfalls als LaTeX geschrieben) handelt
es sich um eine \emph{Programmiersprache} (im umgangssprachlichen
Sinn) für Dokumente (d.h.~Seiten, die mit Zeichen und Ähnlichem
besetzt sind).  Das impliziert gewisse Eigenheiten bei der Erstellung
von Dokumenten, die einem Anwender von
WYSIWYG-Textverarbeitungs-Programmen\footnote{WYSIWYG steht als
  Abkürzung für \glqq What You See Is What You Get\grqq und beinhaltet
  bei einem Programm, dass man stets den Endzustand seines Dokumentes
  vor Augen hat und nicht erst --- wie früher in
  Textverarbeitungs-Programmen üblich --- in einen Druckvorschau-Modus
  wechseln muss. Populäres Beispiel eines solchen
  Textverarbeitungs-Programms ist MS Word.} z.T.~größere Probleme
bereiten:
\begin{itemize}
\item Das Erschaffen eines\marginpar{lange Einarbeitung}
  Dokumentes erfordert neben den zu verarbeitenden Informationen, die
  dem späteren Leser vermittelt werden sollen, auch noch viel
  Spezialwissen über \LaTeX~und verwandte Programme. Dieses Wissen
  muss man sich zuvor aneignen, was durchaus einige Zeit in Anspruch
  nimmt.

Die Einarbeitung lohnt sich aber, denn die  Spracheigenschaften von
\LaTeX~sollen langfristig konstant gehalten werden. Damit steht einem
also ein Werkzeug mit hoher Investitionssicherheit zur Verfügung.
\item Hat man die geforderten\marginpar{fehlende Interaktivität}
  Kenntnisse, so ist das eigentliche Schreiben des Textes in der
  weiter unten beschriebenen Form relativ kompliziert und
  beschwerlich, da man eben --- im Unterschied zu oben erwähnten
  WYSIWYG-Textverarbeitungs-Programmen --- nicht direkt sieht wie sich
  das Geschriebene letztlich im Dokument zeigt und auswirkt. Das lässt
  sich erst durch Übung und Erfahrung abschätzen.
  Normalerweise wird durch ein Speichern des Quelltextes\footnote{Als
    Quelltext (engl. source code) bezeichnet man in der Informatik
    gewöhnlich eine Textdatei, die in Zeilen gegliedert, Fragmente
    eines Programms im weitesten Sinn enthält, welches in einer
    bestimmten Programmiersprache abgefasst ist.} und einen
  anschließenden Lauf des \LaTeX-Programms die endgültige
  Version des Dokuments erzeugt, die am Bildschirm betrachtet oder
  ausgedruckt werden kann.
    
\end{itemize}

Den Erschwernissen stehen jedoch auch einige Vorteile dieser
Methode gegenüber:
\begin{itemize}
\item Der Vorgang ist sehr stabil und\marginpar{Stabilität}
  zuverlässig. Programmabstürze mit Datenverlust sind fast
  ausgeschlossen. Inkonsistenzen in einem Dokument wirken sich
  meistens nur lokal aus (bezogen auf den Quelltext bzw. auf die
  Seiten im fertigen Dokument) und können daher leicht eingegrenzt und
  beseitigt werden.
\item Der Umfang und die Komplexität\marginpar{Leistungsfähigkeit}
  eines Dokuments werden in der Praxis nicht durch Fehler in der
  Software begrenzt, da die Basissoftware \TeX~mittlerweile als
  \emph{fehlerfrei} gilt und auch (fast) alle anderen am
  Entstehungsprozess beteiligten Software-Komponenten als \emph{sehr}
  zuverlässig bekannt sind.  Mehrere Tausend Seiten umfassende
  Dokumente sind problemlos zu bewältigen.
\item Die Qualität der erzeugten Dokumente ist vielfach
  einzigartig\marginpar{hohe Ausgabequalität} gut und nur mit
  aufwändig von Hand gesetzen Exemplaren zu vergleichen. Dies gilt im
  Besonderen für mathematischen Formeln und Symbole.
\item  \LaTeX~sowie die direkt dazugehörige\marginpar{kaum Kosten}
  Software darf im Prinzip kostenlos weitergegeben werden. Für
  UNIX-Betriebssysteme existiert das te\TeX-Paket, für welches dies
  sogar auf alle enthaltenen Komponenten zutrifft. Es gibt allerdigs
  auch einige wenige Programme (meist für MS Windows, z.B.~MiK\TeX),
  die als Eigenentwicklungen von Privatleuten gewissen Einschränkungen
  unterliegen bzw. für deren Bezug im Paket (geringe) Kosten anfallen
  können.
\item Man kann \LaTeX-Quelltexte leicht\marginpar{Portabilität}
  zwischen verschiedenen Betriebssystem-Architekturen austauschen und
  problemlos weiter daran arbeiten. Dies gilt für MS Windows in seinen
  neueren Ausprägungen (ab 3.1) sowie für alle verbreiteten
  UNIX-verwandten Betriebssysteme (siehe dazu die
  \href{http://www.tug.org/tetex}{te\TeX-Homepage}).
\end{itemize}

In der Praxis stellt \LaTeX~den \emph{de-facto-Standard} zur Erzeugung
neuer wissenschaftlicher Schriften aus der Mathematik und der
Informatik dar. Aus diesem Grund (und weil es auch sehr viel Spaß
machen kann, schöne Dokumente zu schreiben) werden wir jetzt eine
Möglichkeit mit \LaTeX~Dokumente zu erstellen im Detail vorstellen.

\subsection{Arbeitsweise}

Wie eingangs schon erwähnt, erfordert die Arbeit mit \LaTeX~eine
beträchtliche Eingewöhnungszeit, bis sie ebenso intuitiv wie mit einem
herkömmlichen Textververarbeitungs-Programm von statten geht.

Anhand einer Grafik sollen die Vorgänge beim \glqq teXen\grqq~zuerst
überblicksartig und später im Detail vorgestellt werden.

% Grafik
\begin{center}
  \includegraphics{teXen.pdf}
\end{center}
Den Pfeilen folgend geht man stets von links nach rechts vor, wenn
man\marginpar{Quelltext} ein Dokument erstellt. Man setzt seine Idee
meistens ausschließlich in einen \LaTeX-Quelltext um, den man dann
widerum mit Hilfe von \texttt{pdflatex} in eine PDF-Datei übersetzt.
Damit ist man dann schon am Ziel angelangt.

\medskip Hin und wieder will man jedoch auch eine
(Vektor-)\marginpar{Grafiken einbinden} Grafik oder ein Bitmap-Bild in
sein Dokument einfügen. Beides ist über den
\bef{includegraphics}-Befehl von \LaTeX~möglich. Das Bitmap-Bild liegt
üblicherweise aus einer fremden Quelle vor. Die Vektor-Grafik hingegen
muss meistens selbst erstellt werden. Dazu bietet sich das unter allen
UNIX-Derivaten erhältliche Programm \term{xfig} an, da es einen guten
Export von EPS-Bildern erlaubt, die wiederum leicht in das von
pdf\LaTeX~dann direkt verwendbare PDF-Format umgewandelt werden
können\footnote{Leider funktioniert der PDF-Export von Xfig nicht so,
  wie man sich das eigentlich wünschen würde, denn alle nach PDF
  exportierten Grafiken haben das Seitenformat A4. Bei EPS
  (Encapsulated PostScript) tritt dieses Verhalten nicht auf.}.

\subsection{XEmacs einrichten}
\label{sec:xem}

Bevor man loslegen kann, muss man zuerst noch eine kleine
Einstellung am XEmacs vornehmen. Wähle \textsf{Options -- Save
  Options} und öffne dann \texttt{\home/.emacs} im XEmacs.
Füge als letzte Zeile Folgendes an:
\begin{verbatim}
(require 'tex-site)
\end{verbatim}
Dann speichere die Datei, beende XEmacs und starte ihn erneut.

Bei dieser Gelegenheit könntest du auch gleich noch ein paar andere
Dinge der Standardkonfiguration ändern. Dabei muss man mit der
mittleren Maustaste auf \textbf{Toggle} klicken, um den Wert zu
ändern. Dann klickt man auf \textsf{Save} und \textsf{Done}.
\begin{itemize}
\item Anzeige der Zeilen- und Spaltennummer: \textsf{Options --
    Customize -- Emacs -- Editing -- Basics -- Line Number Mode}
  bzw. \textsf{Column Number Mode}
\item Die Entf/Del-Taste löscht das Zeichen rechts vom Cursor:
  \textsf{Options -- Customize -- Emacs -- Editing -- Basics -- Delete
    Key Deletes Forward}
\item Markiertes bei Eingaben ersetzen statt beibehalten:
  \textsf{Options -- Editing Options -- Auto Delete Selection}
\item Klammerungs-Hervorhebung anschalten (empfohlen): \textsf{Options
  -- Paren Highlighting -- Expression}
\item Blinkenden Cursor zwischen zwei Zeichen statt markiertem
  Zeichen: \textsf{Options -- Frame Appearance -- Bar Cursor} sowie
  \textsf{-- Blinking Cursor}
\end{itemize}

Dann wieder mit \textsf{Options -- Save Options} speichern.


\subsection{\LaTeX}

Um den Einstieg leichter zu gestalten, beginnen wir mit einem
Beispiel, nämlich mit
\href{http://home.in.tum.de/~boeckler/vorkurs/first.tex}{diesem}
Dokument. Speichere die Datei und öffne sie anschließend im XEmacs.
Wenn du eine Datei zum längeren Schreiben öffnest, dann solltest du
den \sw{\glqq auto-fill\grqq}-Modus aktivieren. Er bricht beim Schreiben
automatisch die Zeile um, so wie du es wohl auch erwartet hast, dass
er es tun würde. Im \LaTeX-Modus ist es ok wenn er so handelt, aber
falls man \zb ein Shell-Skript editiert, dann wäre das eigenständige
Einfügen neuer Zeilen inakzeptabel, deshalb ist es auch standardmäßig
aus.

Du aktivierst dieses Verhalten, indem du in der \glqq Modeline\grqq\ 
(die vorletzte Zeile im XEmacs-Fester) mit der rechten Maustaste auf
ein grünes Wort klickst und die Maustaste erst wieder über dem zu
(de-)aktivierenden \glqq Minor Mode\grqq\ loslässt. Damit erscheint
das entsprechende Wort in grün in der Modeline (hier: Fill).

Besuche jetzt\marginpar{Einstiegsseite}
\href{http://www.uni-giessen.de/hrz/tex/cookbook/cookbook.html}{diese}
oder
\href{http://www.db.informatik.uni-bremen.de/~radfelde/latex.html}{diese
  Seite} und informiere dich über die Sprache \LaTeX.  Zu \LaTeX\ gibt
es einige sehr lesenswerte Bücher, die man sich als ambitionierter
Anwender auch kaufen sollte (siehe unten).

Wechsle dabei immer wieder in das XEmacs-Fenster hinüber, um nach
bekannten Dingen zu suchen. (Hinweis zum
Syntax-Highlighting\footnote{Schalte es bitte an mit: \textsf{Options
    -- Syntax Highlighting -- In This Buffer} sowie \textsf{-- Most}}:
roter Text ist Kommentar, gelber Text sind Befehle, blauer Text sind
Umgebungsnamen)

Kommen wir nun zur Praxis des Schreibens mit dieser Kombination
aus\marginpar{XEmacs hilft} XEmacs und \LaTeX. Der Editor unterstützt
nicht nur durch das Syntax-Highlighting, sondern er vereinfacht auch
das Editieren selbst durch Shortcuts (dt. kurze Tasten-Kombinationen)
und interaktive Abfragen. Vieles davon kannst du selbst im
\texttt{LaTeX}-Untermenü des XEmacs erkunden (oder im Kontextmenü,
 rechte Maustaste).
   
Wenn man nun sehen möchte, was aus dem Quelltext nach der
Übersetzung\marginpar{\LaTeX-Lauf} durch \mbox{pdf\LaTeX} wird, so
wechselt man in das Terminal-Fenster. Dort sollte man sich im gleichen
Verzeichnis befinden, wie die gerade bearbeitete Quelltext-Datei. Dann
gibt man\\
  \term{pdflatex first.tex}\\
ein und verfolgt die Meldungen beiläufig. Falls die Ausgabe nicht mit
\begin{verbatim}
Output written on first.pdf (n pages, m bytes).
Transcript written on first.log.
\end{verbatim}

endet, so hat sich ein Fehler beim Schreiben eingeschlichen, der
meistens durch die angegebene Diagnose recht gut beschrieben wird
(leider eben nicht immer). Oft weiss man in diesem Moment schon, wo
das Problem liegt oder wenigstens wo man suchen muss. Die Zeilennummer
der Eingabedatei ist ja ohnehin immer mit angegeben.

Ist alles gut gegangen, dann liegt jetzt eine Datei mit gleichem
Namen\marginpar{Ergebnis} wie die Quelltext-Datei, aber der Endung
\texttt{.pdf} in dem Arbeitsverzeichnis. 

Diese kann man nun mit \term{gv} oder \term{acroread} betrachten.
\texttt{gv} hat eine Funktion zur Aktualisierung der Ansicht
(\texttt{M-.}), was ja nach einem \LaTeX-Lauf meistens gewünscht ist.
Die dabei übliche Fehlermeldung kann man mit \texttt{Alt-F4}
beseitigen und nochmal \texttt{M-.} drücken. Im Acrobat Reader muss
man nach jeder Änderung im Quelltext die PDF-Datei schließen und neu
öffnen. Man kann sich selbst ein Bild davon machen, was einem bequemer
erscheint.

Der Acrobat Reader hat jedoch die Vorteile, dass er Bookmarks anzeigen
und verfolgen kann, ebenso wie Hyperlinks (ins Internet), sowie dass
er zwei Seiten nebeneinander anzeigen kann (\textsf{View -- Continuous
- Facing}).


\subsection{Praxis im XEmacs}
\label{sec:prax}

Man sollte sich für ein schnelles Arbeiten unbedingt folgende
Shortcuts einprägen:
\begin{description}
\item[\texttt{C-c C-s}] Einen Gliederungsbefehl einfügen.
  Unterstützung bei der Vergabe von Sprungmarken (labels).
\item[\texttt{C-c C-e}] Eine Umgebung einfügen.
\item[\texttt{C-c C-f C-?}] Eine andere Schrift einführen. Dabei
  stehen u.a.\ 
  folgende Schrifttypen zur Verfügung (statt ? einfügen):\\
  \begin{tabular}{ll}
\texttt{b}& fett (\textbf{bold})\\
\texttt{e} & allgemeine Hervorhebung (\emph{emphasized}), i.A.\ kursiv\\
\texttt{t} & Schreibmaschinen-Schrift (\texttt{typewriter})
  \end{tabular}
\item[\texttt{C-c \home}] Umschalten in den mathemastische
  Shortcut-Modus. Hier gibt es viele Befehle, die die Eingabe von
  Formeln sehr beschleunigen (siehe dazu das danach erscheinende
  \textsf{Math}-Menü).
\item[\texttt{C-c RET}] Fügt ein Macro (einen Befehl) ein. Der Vorteil
  bei vielen Standardbefehlen ist, dass man automatisch nach den
  optionalen und obligatorischen Argumenten gefragt wird und keine
  Steuerzeichen tippen muss. Probiere das anhand von \texttt{footnote}
  aus.  Man kann die Namen auch mittels \texttt{M-TAB}
  vervollständigen lassen.
\end{description}

Was äußerst praktisch ist, das ist die Funktion \emph{dynamic
  expansion}. Sie versucht, ählich wie die Tab-completion in der
Shell, angefangene Wörter zu \sw{vervollständigen}. Dabei kann sie
natürlich nicht auf eine Menge von Schlüsselwörtern zurückgreifen, wie
es in der Shell die verfügbaren Befehle sind. Stattdessen sucht XEmacs
einfach in allen geöffneten Buffern (Dateien) nach Vervollständigungen
zu dem angefangenen Wort. Probiere das aus: \texttt{M-/} ist die
Tastenkombination. 

 Sind mehr als eine Vervollständigung
möglich, so kann man zwischen den möglichen Varianten durch Halten der
Metataste und mehrfaches Drücken von \texttt{/} auswählen. Try it,
it's magic!


\subsection{Aufgabe}
\label{sec:aufg}

Übersetze die Datei \texttt{first.tex} wie oben angegeben. Modifiziere
Sie und übersetze sie erneut.

Höhle die Datei aus, d.h.\ lösche\marginpar{Vorlage erstellen} alles
zwischen \texttt{\bef{begin\{document\}}} und
\texttt{\bef{end\{document\}}}, und speichere sie unter dem Namen
\texttt{vorlage.tex} in deinem \LaTeX-Verzeichnis (das du in \home\ 
erstellen solltest, \zb mit \texttt{mkdir \home/latex}) ab.

Jetzt kannst du im XEmacs eine neue Datei mit Namen
\texttt{selbst.tex} erstellen. In diese Datei füge dann die Vorlage
\texttt{vorlage.tex} mit dem Befehl \texttt{C-x i} ein. Nun kannst du
selbst drauf los teXen.\marginpar{Tagesaufgabe} Wir hätten Vorlagen
auf der Kurshomepage, die du nachzubauen versuchen könntest
(Mathe-Blätter aus der ersten Vorkurs-Woche), aber wir denken, dass
dir sicher auch etwas eigenes einfällt, was du verwirklichen willst.

Probiere auch \term{xfig} aus. Erstelle darin lustige Grafiken nach
Belieben, speichere sie ab\footnote{Dabei musst du leider die Endung
  \texttt{.fig} explizit bei Filename mit angeben.} und exportiere sie
anschließend im EPS-Format. Diese Datei muss dann per \term{epstopdf
  \sv{Datei.eps}} nach PDF gewandelt werden. Dann kann man sie per
\bef{includegraphics\{\sv{Datei}\}} in das Dokument einfügen. Dabei
kann man auch die Option\footnote{In \LaTeX\ haben Befehle
  obligatorische Argumente in geschweiften Klammern und optionale
  Argumente in eckigen Klammern angehägt.} \texttt{scale=\sv{Faktor}}
oder \texttt{rotate=\sv{Winkel}} angeben, um die Grafik vor dem
Einbinden zu skalieren (\texttt{\sv{Faktor}} $\in \mathbb{R}^+$) oder
zu drehen. Beispiel: 
\begin{verbatim}
\includegraphics[scale=0.43,rotate=90]{test.pdf}
\end{verbatim}
 
Praktisch kann man \LaTeX\ für fast alles verwenden, also \zb für
Skripten, Diplomarbeiten, Hausaufgaben, Briefe, Stundenpläne,
Zeitschriften, Berichte, Protokolle, \dots\ 

Sicher findest du das Erstellen\marginpar{Vergleiche} von Dokumenten
mit \LaTeX\ am Anfang etwas umständlich, aber vergleiche den
Gesamtaufwand bitte einmal mit den Mühen, die es kostet, um \zb Word
zu erlernen, damit ein passendes Dokument zu erstellen und es dann
auch noch in der beabsichtigten Weise auszudrucken. Christof findet,
dass Word dabei oft schlechter abschneidet als \LaTeX, insbesondere
wenn es sich um Dokumente mit vielen mathematischen Formeln handelt.


\subsection{Hilfe zu \LaTeX}
\label{sec:helplatex}
Pflichtlektüre sollte am Anfang
\href{file:///usr/local/dist/DIR/tetex-1.0/share/texmf/doc/newhelpindex.html}{diese}
Seite sein.

Man kann sich zum Erlernen folgende Bücher genauer ansehen:
\begin{itemize}
\item Helmut Kopka, LATEX, Band 1 -- Einführung, Pearson-Education, 3.
  Auflage 2000
\item Michel Goossens, Frank Mittelbach, Alexander Samarin, Der
    LATEX-Begleiter, Pearson-Education, Auflage und Jahr egal
\end{itemize}
Beide Titel erschienen früher bei Addison-Wesley. Die Empfehlung ist
eine rein subjektive Einschätzung. Man kann prinzipiell mit jedem
\LaTeX-Buch den Einstieg schaffen.

Daneben gibt es auch im Internet unzählige Hilfestellungen zu der
Materie.
\begin{itemize}
\item \href{http://www.dante.de/}{DANTE}, Deutsche Anwendervereinigung
  \TeX\footnote{Verein für alle Themen rund um \TeX und \LaTeX}
\item Die \href{http://www.dante.de/faq/}{DANTE-FAQ-Liste mit der
    deutschen FAQ}\footnote{Frequently Asked Questions werden in einer
      FAQ wiederholt und beantwortet.}
\item Das \href{http://www.latex-project.org/}{\LaTeX -Projekt}
\item \href{http://www.lyx.org/}{LyX}, eine grafische Oberfläche für
  \LaTeX
\item Das
  \href{http://www.uni-giessen.de/hrz/tex/cookbook/cookbook.html}{Kochbuch
    für \LaTeX}
\end{itemize}

Zu guter letzt gibt es auch noch die beiden Newsgroups
\begin{itemize}
\item \href{news:de.comp.text.tex}{de.comp.text.tex} (deutsch) und
\item \href{news:comp.text.tex}{comp.text.tex} (enlisch)
\end{itemize}
an die man sich bei akuten Problemen wenden sollte.


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "vorkurs"
%%% End: 
