Minimale Vorlagen vs. maximale Vorlagen Thema ist als GELÖST markiert

Vorlagen für Hausarbeiten, Diplomarbeiten, etc. von Usern für User.


Gemeinschaft

Minimale Vorlagen vs. maximale Vorlagen

Beitrag von Gemeinschaft »

Vorwort

Im Internet kursieren immer wieder LaTeX-Vorlagen für alle möglichen Arten von Dokumenten. Diese Vorlagen bestehen meist aus einer riesigen Präambel, in die alle möglichen teilweise sich widersprechende und total veraltete Pakete geladen werden, und in der dann diverse interne Makros und Schnittstellenbefehle der Klasse und der Pakete umdefiniert und eine ganze Reihe neuer Befehle und Umgebungen definiert werden. Die meisten dieser Definitionen gehen dann auch noch von längst veralteten Klassen- und Paketversionen aus, werden von den Anwendern nie benötigt oder tun sogar etwas, was der Anwender gar nicht möchte. Um diesen ganzen Wust vor dem Anwender ein wenig zu verbergen, befindet sich die Präambel häufig in einer weiteren Datei, die per \input oder fälschlich sogar per \include in die Dokumentpräambel eingebunden wird. Da dieses ganze Gedöns dann auch noch von gar nicht über unzureichend bis hin zu falsch dokumentiert ist, führt die gesamte Vorlage zwangsläufig in eine Falle. Experten empfehlen daher in der Regel ein anderes Vorgehen, nämlich mit einem minimalen Dokument zu beginnen und darin dann nach und nach nur das einzubauen, womit sich der Anwender bereits beschäftigt hat und von dem er weiß, dass er es benötigt.

Ein minimales Dokument für eine Hausarbeit o. ä. mit PDFLaTeX
Tatsächlich enthält bereits das folgende von mir vorgestellte minimale Dokument optionale Teile. Vielleicht ist daran zu erkennen wie schwierig es tatsächlich ist, ein universelle Vorlage zu erstellen.
\documentclass{scrartcl}% siehe <http://www.komascript.de>
\usepackage{selinput}% Eingabecodierung automatisch ermitteln …
\SelectInputMappings{% … siehe <http://ctan.org/pkg/selinput>
  adieresis={ä},
  germandbls={ß},
}
\usepackage[ngerman]{babel}% Das Beispieldokument ist in Deutsch,
                % daher wird mit Hilfe des babel-Pakets
                % über Option ngerman auf deutsche Begriffe
                % und gleichzeitig Trennmuster nach den
                % aktuellen Rechtschreiberegeln umgeschaltet.
                % Alternativen und weitere Sprachen sind
                % verfügbar (siehe <http://ctan.org/pkg/babel>).
\begin{document}
% ----------------------------------------------------------------------------
% Titel (erst nach \begin{document}, damit babel bereits voll aktiv ist:
\titlehead{Kopf über dem Titel mit Leerstuhl u.\,ä.}% optional
\subject{Art des Dokuments}% optional
\title{Titel des Dokuments}% obligatorisch
\subtitle{Untertitel}% optional
\author{Das bin ich}% obligatorisch
\date{z.\,B. der Abgabetermin}% sinnvoll
\publishers{Platz für Betreuer o.\,ä.}% optional
\maketitle% verwendet die zuvor gemachte Angaben zur Gestaltung eines Titels
% ----------------------------------------------------------------------------
% Inhaltsverzeichnis:
\tableofcontents
% ----------------------------------------------------------------------------
% Gliederung und Text:
\section{Motivation}
\label{sec:motivation}
Dieser Abschnitt sollte sich mit der Aufgabenstellung befassen. Er kann auch
Grundlagen behandeln. Es kann jedoch sinnvoll sein, für die Grundlagen einen
eigenen Abschnitt zu verwenden.
\section{Durchführung}
\label{sec:durchfuehrung}
Hier erzählt man nun, was man alles gemacht hat.
\section{Schluss}
\label{sec:schluss}
Hierher gehört das Fazit und ggf. der Ausblick auf weitere Dinge, die getan
werden könnten.
\end{document}
Ich verwende in diesem Beispiel nicht die Standardklasse article, sondern die KOMA-Script-Klasse scrartcl, weil die KOMA-Script-Klassen weit flexibler als die Standardklassen sind. Früher oder später will man eigentlich immer irgend etwas ändern, das bei den Standardklassen nicht oder nur durch Umdefinierung interner Makros (hier setzen auch diverse Zusatzpakete an) bei den KOMA-Script-Klassen aber meist sehr einfach zu ändern ist.

Es werden zwei LaTeX-Läufe benötigt, bis das korrekte Ergebnis mit Inhaltsverzeichnis verfügbar ist. Wie man im Beispiel sieht, sollte man bei den \label-Anweisungen mit einem reduzierten Zeichensatz arbeiten. Es wird empfohlen an dieser Stelle weder Umlaute noch andere Sonderzeichen noch Leerzeichen zu verwenden, sondern sich auch Buchstaben, Ziffern und wenige Satzzeichen zu beschränkten. Je nach Sprachwahl können bereits Satzzeichen problematisch werden.

Verfasst man sein Dokument in Englisch, solle man bei babel statt ngerman die Einstellung für das entsprechende Englisch verwenden. Näheres ist der babel-Anleitung zu entnehmen (wie man Anleitungen findet, ist in den grundlegenden Hinweisen zu finden.

Bei Dokumenten in anderen Sprachen als US- oder UK-Englisch genügt der Zeichenvorrat der voreingestellten Standard-Schrift Computer Modern (CM) nicht aus. In diesem Fall sollte man die Schriftcodierung mit
\usepackage[T1]{fontenc}
erweitern. Die dann verwendete Standard-Schrift European Computer Modern (EC) ist nicht sehr gelungen. Will man sie trotzdem verwenden, sollte man unbedingt das Paket cmsuper (aka cm-super) installieren. Näheres ist der Anleitung zum Paketmanager der TeX-Installation zu entnehmen. Ich empfehle stattdessen mit
\usepackage{lmodern}
Latin Modern (LM) zu verwenden (siehe dazu auch »Fragen zu Computer Modern Schriften«). Es existiert aber auch eine ganze Reihe weiterer Schriftpakete für LaTeX. Für kommerzielle Fonts gibt es teilweise ebenfalls Pakete.

Ein minimales Dokument für eine Hausarbeit o. ä. mit XeLaTeX
XeLaTeX ist eine parallele Entwicklung neben PDFLaTeX und LuaLaTeX. Zu seinen Stärken gehört, dass man auf Systemfonts zugreifen kann. Dafür funktionieren einige Erweiterung von PDFTeX mit XeLaTeX aber auch nicht oder anders. Ähnlich wie LuaTeX unterstützt es aber auch native UTF-8-Eingabe. Insbesondere wenn bestimmte Fonts verlangt sind, kann es seine Stärken ausspielen.

Im Unterschied zur Vorlage für pdflatex sollte man bei xelatex nicht selinput und \SelectInputMappings und auch nicht babel verwenden. Stattdessen ist zu empfehlen, das Dokument in UTF-8-Codierung zu speichern (siehe dazu die Anleitung des verwendeten Editors). Auch die Anweisung \usepackage[T1]{fontenc} entfällt. Stattdessen verwendet man das Paket fontspec und erhält sozusagen nebenbei als Voreinstellung Latin Modern. Für die Sprachumschaltung kann zwar bei XeLaTeX ebenfalls babel verwendet werden, allerdings schaltet babel teilweise mehr um, als bei nativer UTF-8-Codierung günstig ist (hier gibt es aktuell Änderungen bei babel, die aber noch nicht allgemein verbreitet sind). Deshalb wird für XeLaTeX die Verwendung von polyglossia empfohlen. Das Beispiel ändert sich damit zu:
% !TeX program = xelatex
% !TeX encoding = UTF-8 Unicode
\documentclass{scrartcl}% siehe <http://www.komascript.de>
\usepackage{fontspec}% Schriftumschaltung mit den nativen XeTeX-Anweisungen
                     % vornehmen. Voreinstellung: Latin Modern
\usepackage{polyglossia}% Sprachumschaltung
\setdefaultlanguage{german}% Voreingestellte Dokumentsprache: Deutsch
\begin{document}
% ----------------------------------------------------------------------------
% Titel (erst nach \begin{document}, damit babel bereits voll aktiv ist:
\titlehead{Kopf über dem Titel mit Leerstuhl u.\,ä.}% optional
\subject{Art des Dokuments}% optional
\title{Titel des Dokuments}% obligatorisch
\subtitle{Untertitel}% optional
\author{Das bin ich}% obligatorisch
\date{z.\,B. der Abgabetermin}% sinnvoll
\publishers{Platz für Betreuer o.\,ä.}% optional
\maketitle% verwendet die zuvor gemachte Angaben zur Gestaltung eines Titels
% ----------------------------------------------------------------------------
% Inhaltsverzeichnis:
\tableofcontents
% ----------------------------------------------------------------------------
% Gliederung und Text:
\section{Motivation}
Dieser Abschnitt sollte sich mit der Aufgabenstellung befassen. Er kann auch
Grundlagen behandeln. Es kann jedoch sinnvoll sein, für die Grundlagen einen
eigenen Abschnitt zu verwenden.
\section{Durchführung}
Hier erzählt man nun, was man alles gemacht hat.
\section{Schluss}
Hierher gehört das Fazit und ggf. der Ausblick auf weitere Dinge, die getan
werden könnten.
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-engine: xetex
%%% TeX-PDF-mode: t
%%% coding: utf-8
%%% TeX-master: t
%%% End:  
Die etwas seltsam erscheinenden Kommentare am Beispielanfang dienen dazu die LaTeX-Editoren TeXShop, TeXStudio und TeXworks gleich auf die Verwendung von xelatex und UTF-8-Codierung einzustellen. Die Kommentare am Ende erledigen vergleichbares (und ein wenig mehr) für emacs + AucTeX. Näheres ist den jeweiligen Anleitungen zu entnehmen.

Einige nützliche Erweiterungen
Natürlich genügen diese minimalen Dokumente teilweise nicht. Dann benötigt man Zusätze. Hier einige davon, die mit allen obigen Ausgangsdokumenten funktionieren.

Manchmal wird neben der ausführlichen Motivation noch ein Anrisstext (aka Zusammenfassung) gewünscht. Dies erreicht man mit
\begin{abstract}
  Dies ist ein Anrisstext, auch bekannt als Zusammenfassung. Er wird in
  besonderer Formatierung gesetzt und sollte noch vor dem Inhaltsverzeichnis
  stehen. Obwohl er als Teil des Titels aufgefasst werden kann, wird er nicht
  von \verb|\maketitle| erzeugt, sondern direkt von der
  \texttt{abstract}-Umgebung.
\end{abstract}
unmittelbar nach \maketitle.

Will man statt des Titelkopfes eigene Titelseiten haben, fügt man bei \documentclass die Option titlepage ein:
\documentclass[titlepage]{scrartcl}
KOMA-Script stellt sehr viele weitere Optionen zur Verfügung. Will man also irgend etwas anders haben, sollte man in der KOMA-Script-Anleitung danach suchen. Die Anleitung hat dazu auch ein mehrteiliges Stichwortverzeichnis. Häufig wird man aber auch schon über das Inhaltsverzeichnis fündig, da die Anleitung thematisch geordnet ist.

Manchmal genügen auch die vordefinierten Titelseiten von KOMA-Script nicht. In solchen Fällen hat man die Möglichkeit an Stelle von \maketitle eine titlepage-Umgebung zu verwenden, in der man die Titelseiten frei erstellen kann. Näheres ist der KOMA-Script-Anleitung zu entnehmen. Darüber hinaus wird man eventuell auch beim titlepage-Projekt fündig, das weitere vordefinierte Titelseiten bietet.

Die oben eingeführte abstract-Umgebung ist übrigens bei Verwendung einer titlepage-Umgebung oder bei Verwendung von Option titlepage meiner Meinung nach wenig sinnvoll. Ggf. kann man sie in diesen Fällen aber mit Hilfe der gleichnamigen Option aufwerten. Siehe dazu die KOMA-Script-Anleitung.

Werden ein Tabellenverzeichnis und ein Abbildungsverzeichnis gewünscht, so fügt man nach \tableofcontents die entsprechenden Anweisungen ein:
\listoffigures% Abbildungsverzeichnis
\listoftables% Tabellenverzeichnis
Es ist zu beachten, dass nach Änderungen, die sich auf die Verzeichnisse auswirken zwei bis drei LaTeX-Durchläufe notwendig sind, bis alle Querverweise und alle Verzeichnisse korrekt sind.

Für ein Literaturverzeichnis ist das Paket biblatex zusammen mit dem Prozessor biber zu empfehlen. Näheres ist der Anleitung zu biblatex zu entnehmen. Eine absolut minimalistisches Beispiel für die Verwendung erhält man, wenn man in obigen Beispielen in der Dokumentpräambel
\usepackage{biblatex}
\bibliography{\jobname}
% Die folgenden Zeilen sind nur für das Beispiel von Interesse,
% im Normalfall speichert man die Literaturdatenbank als eigene
% Datei!
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{ art:test,
  author = {Markus Kohm and Jens-Uwe Morawski},
  title  = {{\KOMAScript} – Eine Sammlung von Klassen und Paketen},
  publisher = {Lehmanns Media},
  edition = {4},
  year = {2012},
}
\end{filecontents*}
und am Dokumentende vor \end{document}:
Eine erweiterte Anleitung zu den \KOMAScript-Klassen findet sich in
\cite{art:test}.

\printbibliography
ergänzt. Anschließend lässt man einen LaTeX-Lauf, gefolgt von einem biber-Lauf, gefolgt von einem weiteren LaTeX-Lauf durchführen. Leider sind die LaTeX-Editoren häufig noch auf die Verwendung von bibtex statt biber vorkonfiguriert. Wie man dies ändert ist der jeweilige Editor-Anleitung zu entnehmen.

Für Mathematik-lastige Dokumente sind meist die AMS-Pakete von Nutzen. Stefan hat dazu eine Übersicht erstellt. Es sei hier nun ausdrücklich auf mathtools, eine Erweiterung von amsmath hingewiesen.

Viele Arbeiten binden externe Bilder ein. Das derzeit modernste Paket zu diesem Zweck ist graphicx als Teil der graphics-Sammlung. Näheres zu dessen Verwendung ist der Anleitung zu entnehmen. Es ist zu beachten, dass man die häufig im Internet verwendete Option pdftex beim Laden des Pakets nicht benötigt und diese sogar störend sein kann. Deshalb sollte man darauf verzichten. Das gilt normalerweise auch für die Option dvips.

Anklickbare Querverweise (Hyperlinks oder kurz Links) gehören ebenfalls zu den häufigen Wünschen. Allerdings sind diese genau genommen nur bei Online-Dokumenten wirklich sinnvoll. Trotzdem können sie in der Entwurfsphase nützlich sein. Hierfür verwendet man das Paket hyperref. In der Voreinstellung werden Links dabei mit einem farbigen Rahmen versehen, der beim Drucken nicht mit gedruckt wird. Damit ist die Voreinstellung für Entwurf- und Druckphase bestens geeignet. Statt der Rahmen kann man auch Unterstriche wählen, die ebenfalls nicht mit gedruckt werden. Das ist dann für Dokumente, die sowohl als Onlinedokument als auch als Druckfassung verwendet werden sollten nützlich. Für ein reines Onlinedokument ist es eventuell besser, wenn der Text des Links selbst farbig wird. Auch das bietet hyperref. Daneben kann man noch zusätzliche Informationen für die Dokumenteigenschaften setzen und es werden Outlines (aka Bookmarks, aka Lesezeichen) erstellt. Für letzteres ist als Erweiterung jedoch auch das Paket bookmark zu empfehlen. Zu hyperref ist noch anzumerken, dass die Anleitung aus mehreren Dokumenten besteht, die alle über die Bookmarks aller anderen Anleitungsdokumente zu dem Paket verfügbar sind.

Schlussbemerkung:
Für größere Arbeiten wie Studienarbeit, Diplomarbeit, Bachelor-Arbeit, Master-Arbeit oder Dissertation ist scrartcl meist nicht ideal. Für solche Arbeiten benötigt man in der Regel nicht nur Abschnitte und Unterabschnitte, sondern auch Kapitel. Kapitel beginnen automatisch eine neue Seite. Deshalb sollte man in diesen Fällen scrartcl durch scrreprt oder sogar scrbook ersetzten. Mit beiden Klassen steht dann \chapter{…} als übergeordnete Gliederungsebene Kapitel zur Verfügung. scrbook und scrreprt unterscheiden sich in erster Linie durch die Voreinstellungen der Optionen. Darüber hinaus bietet scrbook auch noch eine Unterteilung in Vorderteil (siehe \frontmatter), Hauptteil (siehe \mainmatter) und Schlussteil (siehe \backmatter).

Für unterschiedliche Fachrichtungen bzw. Anforderungen gibt es auf CTAN eine reiche Anzahl an LaTeX-Paketen. Allerdings sollte man die meisten dieser Pakete nicht direkt und manuell von CTAN installieren. Stattdessen sollte man den Paket-Manager der verwendeten TeX-Distribution für die Installation verwenden. Eine manuelle Installation ist weit umständlicher und nur dann notwendig, wenn ein Paket über den jeweiligen Paketmanager nicht verfügbar ist. Das hat dann meist rechtliche Gründe, was ggf. bei der Weitergabe oder der Installation in einer Mehrbenutzerumgebung zu berücksichtigen ist. Trotzdem bietet CTAN eine sehr gute nach Themen sortierte Paketübersicht und auch eine Paketsuche.

Fast alle LaTeX-Pakete enthalten auch eine Anleitung. Diese sollte man bei Fragen unbedingt konsultieren! Bleibt dann eine Frage offen, so kann man sie gerne im passenden Forum zusammen mit einem vollständigen Minimalbeispiel, das das Problem verdeutlicht, stellen. Zuvor ist es jedoch sinnvoll, die TOP-Themen des jeweiligen Unterforums zu lesen. Dort gibt es häufig nützliche Hinweise und Vorabhilfen, die bei der Beantwortung oder auch beim Stellen der Fragen helfen.

Disclaimer: In diesem Beitrag stecken einige Stunden Arbeit und mehrere Jahre an Erfahrung. Dennoch haben sich mit Sicherheit Fehler eingeschlichen. Wer solche findet, kann sie einem Moderator melden, damit jener sie beseitigt. Dieser Text wurde übrigens mit Genehmigung von Markus Kohm von komascript.de übernommen und von "Besserwisser" und "Noch so einer" leicht an goLaTeX angepasst. Bei strenger Auslegung der Regeln handelt es sich hier also eigentlich um ein Multipost, das entweder gelöscht oder geschlossen werden müsste. :wink:

Wir hoffen jedoch, dass es hinreichend nützlich ist, um toleriert zu werden. Anderenfalls war unsere Arbeit eben umsonst.

Noch so einer

Beitrag von Noch so einer »

Es sei darauf hingewiesen, dass das Original, »Minimale Vorlage vs. maximale Probleme«, auf komascript.de vom Autor, Markus Kohm, weiterentwickelt wird und inzwischen in mehrere Themen aufgeteilt besser strukturiert wurde. Daher sei ausdrücklich jene Fassung empfohlen, während die Fassung hier hauptsächlich als Aufhänger für all jene zu verstehen ist, die über goLaTeX zu ihren ersten LaTeX-Dokumenten gelangen.

Antworten