Grundlagen, Dokumentstruktur

 

Inhalt

Erstes Beispiel

%------------------------------- % Dokumentdeklaration %------------------------------- % (A) Dokumentklasse: -----+ % (B) Klassenoptionen | % | | % V V \documentclass[ngerman]{article} %------------------------------- % Präambel %------------------------------- % (C) Pakete laden \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{geometry} % (D) Konfiguration %------------------------------- % Dokumentinhalt %------------------------------- \begin{document} % (E) Titelei %\date{07.~Oktober 2019} \author{S.~Lehmke} \title{Mein erstes \LaTeX-Dokument} \maketitle \tableofcontents % (F) Dokumentstruktur \section{Start} % (G) Fließtext Hier beginnt mein schönes Werk ... \section{Ende} ... und hier endet es. % (H) Dokumentende \end{document}

Aufgabe 1

  • Laden Sie die Datei 01_ErstesDokument.tex herunter und speichern sie in einem eigenen Verzeichnis.

  • Führen Sie in dem Verzeichnis pdflatex 01_ErstesDokument.tex aus.

  • Führen Sie texmaker 01_ErstesDokument.tex & aus und starten Sie

  • Gelegentlich werden 2–3 Durchläufe benötigt, bis das Inhaltsverzeichnis (und andere Verweise im Dokument) korrekt sind. Dies kann mit

    automatisiert werden.

Aufgabe 2

  • Fügen Sie an der Stelle (C) ein:

    \usepackage{blindtext}
  • Fügen Sie an der Stelle (F) ein:

    \blindtext[2] \Blinddocument
  • Übersetzen Sie das Dokument neu.

  • Betrachten Sie die Dateiliste des Verzeichnisses.

  • Öffnen Sie die Datei mit der Endung .log

Grundlagen & Notation

Konventionen

  • Inhalte werden als Text erfasst, mit speziellen Zeichen und Befehlen zur Formatierung oder zum Einfügen spezieller Inhalte.

  • Ein Zeilenumbruch gilt als Leerzeichen.

  • Mehrere Leerzeichen hintereinander werden als eines gewertet.

  • Eine Leerzeile markiert ein Absatzende.

Befehlsnotation

\befehlsname*[optionales Argument]{Argument}

Das * ist immer optional, nicht bei allen Befehlen vorhanden und stellt ein alternatives Verhalten ein.

\befehlsname ohne Argument entfernt nachfolgende Leerzeichen!

Befehlsnamen dürfen nur ASCII-Buchstaben enthalten (case sensitive).

Umgebungen

\begin{umgebungsname}

Inhalt

\end{umgebungsname}

Eine Umgebung definiert eine sog. Gruppe, in der viele Zuweisungen lokal sind, z.B. Schriftumschaltungen.

Eine einfache Gruppe, die nur den Lokalisierungseffekt bewirkt, erreicht man mit {Inhalt}

Spezielle Zeichen

Zeichen

Bedeutung

Ersatz

Zeichen

Bedeutung

Ersatz

\

leitet Befehlsnamen ein

\textbackslash{}

{ }

Befehlsargument, Gruppenoperator

\{ \}

[ ]

optionales Befehlsargument

[ ]

%

Kommentarzeile

\%

&

Spaltentrenner in Tabelle

\&

#

Intern für Makrodefinition

\#

$

Schaltet Mathematikmodus um (besser: \( \) )

\$

_ ^

Im Mathematikmodus Hoch-/Tiefstellung

\textunderscore{} \textasciicircum{}

~

Geschütztes Leerzeichen

\textasciitilde

Aufgabe 3

Fügen Sie an der Stelle (G) das Folgende ein und übersetzen Sie neu:

Dokumentklasse

Die Dokumentklasse legt grundlegende Eigenschaften des Dokuments fest.

Dieselbe Quelldatei kann mit verschiedenen Dokumentklassen und -optionen sehr unterschiedlich aussehen (logisches Markup).

Die Standard-Dokumentklassen:

  • article: Kurze Dokumente ohne Kapitelstruktur und ohne eigene Titelseite (z.B. wissenschaftliche Artikel, Hausaufgaben).

  • report: Längere Dokumente mit Kapitelstruktur und Titelseite (z.B. Dokumentation, Diplomarbeit, Doktorarbeit, Projektbericht)

  • book: Gedrucktes Buch (doppelseitig).

Viele weitere Dokumentklassen haben speziellere Anwendungen, z.B. beamer für Präsentationen.

Dokumentation der Standardklassen:

Aufgabe 4

  • Setzen Sie an der Stelle (A) die Dokumentklasse report ein und übersetzen Sie neu.

  • Was fällt Ihnen auf?

  • Fügen Sie an der Stelle (F) das Folgende ein und übersetzen Sie neu:

  • Kopieren Sie die PDF-Datei, ersetzen Sie die Dokumentklasse durch book und vergleichen Sie die Dokumente.

Die KOMA-Script Klassen

Ersatz für die Standard-Dokumentklassen:

  • Standardklassen scrartcl, scrreprt, scrbook

  • Für europäische/deutsche Typographie angepasst

  • Viele zusätzliche Optionen

Dokumentation:

Wir arbeiten ab hier mit KOMA-Script.

Aufgabe 5

Ersetzen Sie die Dokumentklasse durch scrreprt und übersetzen Sie neu.

Was fällt Ihnen auf?

Dokumentklassenoptionen

  • Stellen Parameter für die Dokumentklasse ein.

  • Werden an alle Pakete weiter gegeben.

  • Es gibt einige Standardoptionen, aber viele Klassen und Pakete definieren spezielle Optionen.

  • Nicht existente Optionen erzeugen eine Warnung, aber keinen Fehler.

Die wichtigsten Standardoptionen:

  • 10pt, 11pt, 12pt: Grundschriftgröße

  • a4paper, a5paper, landscape…: Papierformat

  • draft: Vorläufiges Dokument

  • onecolumn, twocolumn: ein- / zweispaltiger Satz

  • oneside, twoside: Gibt es linke und rechte Seiten?

  • (no)titlepage: Titelseite erzeugen?

  • openright, openany: Müssen Kapitel auf rechten Seiten beginnen?

  • (n)german, french, (UK)english, … : Dokumentsprache

Aufgabe 6

Probieren Sie (an der Stelle (B)) verschiedene (Kombinationen von) Dokumentklassenoptionen aus.

Erstellen Sie verschiedene Dokumentversionen und vergleichen Sie.

Aufgabe 7 *

Machen Sie sich mit der Dokumentation von KOMA-Script vertraut (texdoc scrguide) und experimentieren Sie mit verschiedenen Dokumentklassenoptionen (Index in der Dokumentation ab Seite 583).

(ca. 15 Minuten Zeit)

Sammlung der nützlichsten Optionen:

  • parskip=

  • headsepline

  • toc=

  • headings=

  • DIV=

Pakete

Pakete werden mit

\usepackage[Optionen]{Name}

geladen.

Ein Paket stellt zusätzliche Darstellungsoptionen oder ganz neue Befehle zur Verfügung. Die meisten Pakete lassen sich mit (fast) allen Dokumentklassen und anderen Paketen kombinieren.

Vorsicht vor Paket-Inkompatibilitäten!

Sammlung von Paketen und deren Verwendungskontext.

Fast immer kann die Dokumentation mit

texdoc Paketname

gefunden werden.


Die wichtigsten Standardpakete:

  • inputenc: Eingabecodierung

  • fontenc: Fontcodierung

  • babel: Sprachkonfiguration

  • geometry: Seitenlayout

  • setspace: Standard-Zeilenabstand

  • ifthen: Fallunterscheidungen

  • calc: Berechnungen

  • (x)color: Farben

  • graphicx: Einbinden von Grafiken

  • hyperref: Hyperlinks usw.

  • listings: Formatieren von Listings

  • booktabs: Schöne Tabellen

  • longtable: Tabellen mit Seitenumbruch

  • microtype: Mikrotypographische Erweiterungen

  • amsmath: Fortgeschrittener Mathematiksatz

  • multicol: Schöner Mehrspaltensatz

  • ntheorem: Konfigurierbare Umgebungen für Sätze, Beweise usw.

Aufgabe 8 *

(Pakete verteilen, ggfs 2 Personen)

  • Finden Sie zu je einem Paket die Dokumentation und verschaffen Sie sich einen Überblick

  • Experimentieren Sie mit dem Paket (insg. 15Min.)

  • Stellen Sie kurz Ihre Erkenntnisse vor (je 2 Min.)

Konfiguration von Registern

Der LaTeX-Kernel, die Dokumentklassen und Pakete definieren typischerweise eine Reihe von Registern und Makros, die zur Feinkonfiguration der bereitgestellten Funktionalitäten dienen.

Zahlenregister (Zähler)

Enthalten eine ganze Zahl zwischen –2147483648 und 2147483647.

  • \newcounter{name}: Erstellt das Zahlenregister name.

  • \setcounter{name}{wert}: Register auf eine bestimmte Zahl setzen.

  • \stepcounter{name}: Register um 1 erhöhen.

  • \refstepcounter{name}: Register um 1 erhöhen und Referenz erzeugen.

  • \value{name}: Wert des Registers (zum Rechnen).

  • \arabic{name}: Wert des Registers als arabische Zahl zum Ausgeben.

Aufgabe 9

  • Fügen Sie Ihrem Testdokument das Paket calc hinzu.

  • Erstellen Sie ein Zahlenregister und weisen diesem einen berechneten Wert zu (unter Verwendung von calctexdoc calc ).

  • Geben Sie den Wert mit \arabic aus.

  • Lesen Sie unter https://en.wikibooks.org/wiki/LaTeX/Counters#Counter_style nach, welche weiteren Ausgabeformate es gibt, und testen Sie diese mit Ihrem Register.

Längenregister

Enthalten eine (Fixkomma-)Längenangabe zwischen ca. -16.000pt und 16.000pt (≈ 5750mm).

Eine Längenangabe besteht immer aus einer (Fixkomma-)Zahl und einer Einheit.

Längenangaben und -Register können Dehn- und Schrumpfanteile haben (Glue).

Die wichtigsten Einheiten:

  • mm: Millimeter

  • cm: Zentimeter

  • in: Inch (25,4mm)

  • pt: Punkt (Achtung Pica-Punkt = 1/72.27in!)

  • bp: big point. „Postscript-Punkt“ = 1/72in

  • ex: Typographisches vertikales Maß: ca. Höhe des „x“. Fontabhängig!

  • em: Typographisches horizontales Maß: ca. Breite des „M“. Fontabhängig! Auf Deutsch „Geviert“.

  • sp: scaled point. Grundeinheit der Fixkommaarithmetik. 1pt = 65536sp.

Umgang mit Längenangaben:

  • \newlength{\name}: Erstellt das Längenregister \name.

  • \setlength{\name}{wert}: Register auf eine bestimmte Länge setzen.

  • \name: Wert des Registers (zum Rechnen).

  • Kommazahl\name: Wert des Registers, multipliziert mit Kommazahl. Beispiel: 0.5\linewidth.

  • \the\name: Wert des Registers zum Ausgeben.

Aufgabe 10

  • Erstellen Sie ein Längenregister und weisen diesem einen berechneten Wert zu (unter Verwendung von calctexdoc calc ).

  • Geben Sie den Wert aus.

  • Lesen Sie unter https://en.wikibooks.org/wiki/LaTeX/Lengths#Length_manipulation nach, welche weiteren Optionen zum Umgang mit Längen es gibt, und testen Sie diese mit Ihrem Register.

  • Setzen Sie das Längenregister auf die Breite des Textes „Testtext“.

  • Geben Sie die Breite in mm aus. Verwenden Sie dafür den Umrechnungsfaktor 0.35146 von pt nach mm.

Standardregister

Kleine Auswahl. (K) steht für „konfigurierbar“: Kann im Bereich (D) gesetzt werden, um das Verhalten des Dokuments zu beeinflussen. Bei den anderen sollte nur lesend auf den Wert zugegriffen werden.

Zähler:

  • secnumdepth(K): Bis zu welcher Tiefe werden Abschnitte nummeriert?

  • tocdepth(K): Bis zu welcher Tiefe werden Abschnitte in das Inhaltsverzeichnis aufgenommen?

  • part, chapter, section, subsection, subsubsection, paragraph, subparagraph

  • page: Aktuelle Seitennummer. Achtung asynchronder Seitenumbruch!

  • equation: Aktuelle Gleichungsnummer.

Längenregister:

  • \parindent (K): Absatzeinzug

  • \parskip (K): Absatzabstand

  • \tabcolsep (K): (halber) Tabellenspaltenabstand

  • \textheight: Höhe des Satzspiegels

  • \textwidth: Breite des Satzspiegels

  • \linewidth: Zeilenbreite im aktuellen Kontext

  • \baselineskip: Grundlinienabstand

Aufgabe 11

  • Geben Sie die Werte einiger der konfigurierbaren Standardregister aus.

  • Stellen Sie im Bereich (D) andere Werte für secnumdepth und tocdepth ein und vergleichen Sie die Ergebnisse.

  • Geben Sie an verschiedenen Stellen im Dokument die aktuelle Seitennummer aus.

Sonstige Konfiguration

Die meisten Dokumentklassen und Pakete definieren noch explizite Befehle, mit denen weitere Einstellungen vorgenommen werden können.

Hier nur die gebräuchlichsten:

  • \flushbottom: Seitenfuß ausgleichen

  • \raggedbottom: Seitenfuß „flattert“

  • \pagestyle{Stil}: Stil der Kopf/Fußzeile. Standardwerte: empty, plain, headings, myheadings. Der Default hängt von der Dokumentklasse ab.

Fehlersuche

Warnungen und Fehler werden in die Logdatei dokumentname.log ausgegeben.

Editoren wie TeXmaker unterstützen die Fehlersuche:

Mit \typeout{Nachricht} können Debug-Nachrichten (inkl. Registerwerten) in die log-Datei ausgegeben werden.

Aufgabe 12

Wiederholen Sie die Ausgabe der Seitennummer mittels \typeout und betrachten Sie die Logdatei.

Strukturierung des Dokuments

Titel(seite)

  • \author{Autor}: Legt den Autor fest.

  • \title{Titel}: Legt den Titel dest.

  • \date{Datum} (Vorgabe: heutiges Datum)

  • \maketitle: Titel(seite) erzeugen.

  • \begin{abstract} Text \end{abstract} Zusammenfassung.

Aufgabe 13

  • Fügen Sie Ihrem Dokument ein explizites Datum und eine Zusammenfassung hinzu.

  • Wechseln Sie die Dokumentklasse zu scrartcl und vergleichen Sie das Ergebnis.

Inhaltsverzeichnis

\tableofcontents erzeugt das Inhaltsverzeichnis.

Die Darstellung hängt von der Dokumentklasse ab.

Es gibt noch weitere Verzeichnisse, z.B. von Abbildungen oder Theoremen, die mit analogen Befehlen erzeugt werden können (später).

Interne Umsetzung: Während des pdflatex-Durchlaufs werden Informationen über die Dokumentstruktur in eine Hilfsdatei .toc geschrieben, die beim nächsten Durchlauf gelesen und formatiert werden.

Es werden mindestens 2 pdflatex-Durchläufe gebraucht, damit das Inhaltsverzeichnis korrekt ist.

Werkzeuge wie latexmk automatisieren den Prozess und verwenden automatisch die korrekte Anzahl Durchläufe.

Aufgabe 14

Öffnen und betrachten Sie die .toc Datei Ihres Dokuments.

Warum werden manchmal 3 Durchläufe für ein korrektes Inhaltsverzeichnis benötigt?

Kann es vorkommen, dass manchmal auch 4 Durchläufe nötig sind?

Gliederung

  • \part{Titel }: Dokumentteil (unabhängig nummeriert)

  • \chapter{Titel }: Kapitel (nur bei report und book u.ä.)

  • \section{Titel }: Abschnitt

  • \subsection{Titel }: Unterabschnitt

  • \subsubsection{Titel }: Unterunterabschnitt

  • \paragraph{Titel }: Absatztitel

  • \subparagraph{Titel }: Unterabsatztitel

Befehl mit * erzeugt nicht-nummerierte Variante.

Mit optionalem Argument [Kurztitel] kann ein abweichender Titel für das Inhaltsverzeichnis angegeben werden.

Aufgabe 15

  • Ergänzen Sie Ihr Dokument um Gliederungsebenen von \partbis hinunter zu \subparagraph.

  • Experimentieren Sie mit * und optionalen Argumenten und vergleichen Sie die Ergebnisse.

  • Fügen Sie in den Konfigurationsteil (D) des Dokuments das Folgende ein, um alle Gliederungsebenen bis hinunter zum Unterabsatz wie (nummerierte) Abschnitte zu behandeln (geht nur mit KOMAScript), und vergleichen Sie das Ergebnis:

Einteilung eines Buches

  • \appendix: Leitet den Anhang ein.

  • \frontmatter: (nur book, scrbook usw.) Steht direkt nach \begin{document}

  • \mainmatter: (nur book, scrbook usw.) Steht vor dem ersten inhaltlichen Kapitel (Seitenzählung beginnt bei 1 !)

  • \backmatter: (nur book, scrbook usw.) Steht nach dem Anhang. Typischerweise Literaturverzeichnis, Index und ggfs. Schlussbemerkungen.

Aufgabe 16

  • Fügen Sie Ihrem Dokument einen Anhang hinzu.

  • Ändern Sie die Dokumentklasse auf scrbook

  • Gliedern Sie das Buch mit \frontmatter, \mainmatter, \backmatter. Setzen Sie dazu auch \part, \chapter und \blindtext ein, so dass das Inhaltsverzeichnis eine sinnvolle Gliederung zeigt.

Hausaufgabe 1

Lesen Sie im Handbuch https://en.wikibooks.org/wiki/LaTeX/Document_Structure den Abschnitt über die Dokumentstruktur.

Haben wir etwas Wichtiges übersehen?

Selbstdefinierte Befehle und Umgebungen

Die grundlegenden Anwendungen für Makro- und Umgebungsdefinitionen:

  1. Zusammenfassen komplexer, häufig genutzer Konstrukte unter einem einfachen Namen.

  2. Definition von Befehlen und Umgebungen, deren Name die Bedeutung der Formatierung ausdrückt (logisches Markup).

  3. Definitionen können nachträglich geändert oder erweitert werden, ohne viele Einzeländerungen im Dokument (Abstraktion).

Definition eines Befehls

\newcommand{\Name}[Argumentzahl][Option-Default]{Ersetzungstext}

definiert den Befehl \Name mit Argumentzahl Argumenten (wird das erste optionale Argument weggelassen, hat der Befehl keine Argumente).

Wird das zweite optionale Argument [Option-Default]angegeben, so ist das erste Argument des neuen Befehls ein optionales Argument mit Defaultwert Option-Default.

Beim Aufruf wird \Name[Opt1]{Arg2}{Argn} durch Ersetzungstext ersetzt.

In Ersetzungstext werden die Stellen, wo Opt1, Arg2, Argn eingesetzt werden sollen, durch #1, …, #n markiert.

Der Versuch, einen existierenden Befehl erneut zu definieren, führt zu einem Fehler.

Mit \renewcommand kann ein existierender Befehl überschrieben werden.

Aufgabe 17

Definieren Sie einen Befehl

\Titel[Datum]{Titel}{Autor}

der beim Aufruf eine entsprechende Titeldarstellung mit dem gegebenen Autor und Titel sowie optional mit dem Datum erzeugt.

Definition einer Umgebung

\newenvironment{Name}[Argumentzahl][Option-Default]{Anfang}{Ende}

definiert eine neue Umgebung Name. Beim Aufruf der Umgebung mit

\begin{Name}[Opt1]{Arg2}{Argn}

Inhalt

\end{Name}

wird am Anfang der Umgebung der Ersetzungstext Anfang eingefügt und am Ende der Umgebung der Ersetzungstext Ende.

Die Argumente Opt1, Arg2, Argn können dabei nur im Ersetzungstext Anfang verwendet werden!

Mit \renenvironment kann eine existierende Umgebung überschrieben werden.

Aufgabe 18

Definieren und testen Sie eine Umgebung tiefnummerieren, innerhalb der alle Gliederungselemente bis zum \subparagraph wie Abschnittsüberschriften dargestellt und nummeriert werden.

Was beobachten Sie beim Test?

Das erweiterte Testdokument

Hausaufgabe 2 – Schwerpunktsetzung

  • Welche Themen des Kurses sind Ihnen besonders wichtig?

  • Auf was könnten Sie verzichten?

  • Welche Themen vermissen Sie in der Auflistung?

  • Was sollte auf jeden Fall behandelt werden?

Rückmeldung

Fehlt:

  • Titelblatt nach Vorgabe

Wichtig:

  • Zitate

Nicht so wichtig:

  •