LaTeX: individuelle Kopf- und Fußzeilen (Update)

Dieser Beitrag aus der LaTeX-Reihe ist ein Update eines etwas in die Jahre gekommenen Artikels zum Thema individuelles Gestalten von Kopf- und Fußzeilen mit LaTeX. Zum Einsatz kommt jetzt das Paket scrlayer-scrpage, welches seit 2013 in KOMA-Script (ab Version 3.12) integriert ist.

Welche Möglichkeiten bietet uns LaTeX zum Setzen von Kopf- und Fußzeilen? Prinzipiell finden wir sechs Platzhalter vor, welche wir mit Inhalt bestücken können. Es ist möglich in der Kopfzeile innen, mittig und außen Inhalt zu platzieren, für die Fußzeile verhält sich dies äquivalent. Wir sprechen von innen und außen statt von links und rechts, da sich bei doppelseitigem Satz der breitere Rand abwechselnd links und rechts befindet, also immer außen. Bei einseitigen Dokumenten wollen wir den rechten Seitenrand mit außen und den linken mit innen bezeichnen. Neben den Platzhaltern können wir aber auch Linien über und unter die Kopf- bzw. Fußzeile setzen.

Schema Platzhalter für Kopf- und Fußzeilen

Paket laden

Um nun individuelle Kopf- und Fußzeilen zu setzen, muss das Paket scrlayer-scrpage geladen werden. Wir wählen auch gleich noch den Seitenstil scrheadings aus, wodurch LaTeX mitgeteilt wird, dass Kopf- und Fußzeilen mit dem scrlayer-scrpage Paket gesetzt werden sollen. Der Befehl \clearpairofpagestyles leert alle sechs Platzhalter, so dass wir sie anschließend nach unseren Vorstellungen befüllen können.

\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\clearpairofpagestylesCode-Sprache: TeX (tex)

Inhalt positionieren

Um die Platzhalter nun mit Inhalt zu befüllen, gibt es sechs verschiedene Befehle:

\ihead{Kopfzeile innen}
\chead{Kopfzeile Mitte}
\ohead{Kopfzeile außen}
\ifoot{Fußzeile innen}
\cfoot{Fußzeile Mitte}
\ofoot{Fußzeile außen}Code-Sprache: TeX (tex)

Dabei sind diese sechs Befehle optional, schließlich haben wir ja alle Platzhalter geleert. Um zum Beispiel nur etwas in die Fußzeile innen und außen zu setzen, werden nur die Befehle \ifoot und \ofoot benötigt.

Automatische Seitenzahlen und Kolumnentitel

Zum Einfügen der aktuellen Seitenzahl wird der Befehl \pagemark verwendet. Wenn die Seitenzahlen zum Beispiel in der Fußzeile außen ausgegeben werden sollen, so wird folgendes notiert:

\ofoot{\pagemark}Code-Sprache: TeX (tex)

Wenn wir die Kolumnentitel wie Chapter, Section oder Subsection automatisch in Kopf- oder Fußzeile anzeigen möchten, so wird es etwas komplizierter. Mit Hilfe des Befehls \headmark wird der aktuelle Kolumnentitel eingefügt.

\ohead{\headmark}Code-Sprache: TeX (tex)

Mit dieser Codezeile wird so zum Beispiel der aktuelle Kolumnentitel in der Kopfzeile außen ausgegeben.
Allerdings müssen wir LaTeX noch mitteilen, was als Kolumnentitel ausgegeben werden soll. Wir wollen dies zunächst für doppelseitige Dokumente betrachten.

\automark[rechte Seite]{linke Seite}Code-Sprache: TeX (tex)

Mit dem Befehl \automark legen wir fest, was bei einem doppelseitigen Dokument mit \headmark auf den linken Seiten und was mit \headmark auf den rechten Seiten ausgegeben wird. Dabei können folgende Argumente verwendet werden: chapter, section, subsection, paragraph und subparagraph.
Soll zum Beispiel bei einem doppelseitigen Dokument auf den linken Seiten in der Kopfzeile außen die aktuelle Section und auf den rechten Seiten die jeweilige Subsection ausgegeben werden, so ist folgendes zu notieren:

\ohead{\headmark}
\automark[subsection]{section}Code-Sprache: TeX (tex)

Betrachten wir nun die einseitigen Dokumente. Wir benötigen wieder den Befehl \automark, um LaTeX mitzuteilen, welche Kolumnentitel mit \headmark ausgegeben werden sollen. Allerdings kann auf das optionale Argument verzichtet werden, da es ja nur einen Seitentyp gibt.
Soll zum Beispiel bei einem einseitigen Dokument in der Kopfzeile rechts jeweils die aktuelle Section angezeigt werden, so ist folgendes zu notieren:

\ohead{\headmark}
\automark{section}Code-Sprache: TeX (tex)

Linien

Wie bereits erwähnt, ist es möglich Linien über und unter die Kopf- und Fußzeilen zu setzen. Dafür müssen die jeweiligen Linien einzeln aktiviert werden. Dem Paket scrlayer-scrpage werden dazu die folgenden Optionen übergeben:

headtoplineaktiviert die Linie über der Kopfzeile
headseplineaktiviert die Linie unter der Kopfzeile
footseplineaktiviert die Linie über der Fußzeile
footbotlineaktiviert die Linie unter der Fußzeile

Zum Setzen einer Linie unter der Kopfzeile und einer über der Fußzeile, ist folgendes zu notieren:

\usepackage[headsepline,footsepline]{scrlayer-scrpage}Code-Sprache: TeX (tex)

Sollen die Linien eine vom Standard abweichende Dicke (Haarlinie 0.4pt) erhalten, so werden diesen Optionen noch Werte für die Dicke übergeben.
Um zum Beispiel eine 2pt starke Linie über der Kopfzeile und eine 0.8pt starke Linie unter der Kopfzeile zu setzen, ist folgendes zu notieren:

\usepackage[headtopline=2pt,headsepline=0.8pt]{scrlayer-scrpage}Code-Sprache: TeX (tex)

Anmerkungen und weitere Optionen

Das Paket scrlayer-scrpage gehört zum KOMA-Script Paket, kann aber auch mit den Standard-Klassen (article, report, book, letter) verwendet werden. Die in diesem Artikel vorgestellten Befehle zum Gestalten von Kopf- und Fußzeilen decken nur einen Bruchteil der Möglichkeiten ab, reichen den meisten Anwendern jedoch schon vollkommen aus. Ausführliche Informationen zu dem Paket und seinen vollen Möglichkeiten finden sich in: KOMA-Script – Die Anleitung.

Außerdem ist anzumerken, dass die hier vorgestellt Methode ziemlich brachial alle von KOMA-Script bzw. LaTeX vorgegeben Standards ignoriert – letztere liegen jedoch sehr cleveren typographischen Entscheidungen und gängigen Praktiken zugrunde.

Kommentare

8 Antworten zu „LaTeX: individuelle Kopf- und Fußzeilen (Update)“

  1. Benutzer Icon
    Michael

    Super, vielen Dank für diese Anleitung. Sehr verständlich und hat mir ein schönes Dokument beschert!

    1. Benutzer Icon

      Das freut mich, danke 🙂

  2. Benutzer Icon

    Toller Beitrag! Danke dafür.

    Ich hatte bislang immer scrpage2 verwendet, daher musste ich mich ein wenig schlau googlen. 😉

    Was mir in deinem Beitrag noch gefehlt hatte, ich dann aber in der offiziellen Anleitung gefunden habe, ist das Manipulieren der Breiten, das Manipulieren der Linien (z.B. Dicke, aber auch Farbe), sowie einen völlig eigenen Seitenstil zu erstellen, den man dann für ausgewählte Seiten/Abschnitte in seinem Dokument verwenden kann.

    Letzten Endes bin ich dann hierbei angelangt:

    \usepackage[
    % Breite anpassen.
    headwidth=(\the\textwidth+14mm):-7mm:7mm,
    footwidth=(\the\textwidth+14mm):-7mm:7mm,

    % Dicke der Linien festlegen.
    headsepline=0.5pt,
    footsepline=0.5pt,

    % Linien auch im Seitenstil plain anzeigen.
    plainheadsepline=true,
    plainfootsepline=true
    ]{scrlayer-scrpage}

    % Alle Inhalte löschen.
    \clearpairofpagestyles

    % Schriftformatierung zurücksetzen.
    \setkomafont{pageheadfoot}{}

    % Linien einfärben.
    \addtokomafont{headsepline}{\color{gray}}
    \addtokomafont{footsepline}{\color{gray}}

    % Statische Inhalte.
    \ohead{\headmark}
    \ofoot*{\pagemark}

    % Unterschiedliche Inhalte für gerade/ungerade.
    \refoot*{Thorsten Frommen}
    \lofoot*{Mein Superduperbuch}

    % Inhalte festlegen.
    \automark[chapter]{chapter}
    \automark*[section]{}

    % Eigener Seitenstil (keine Inhalte, aber Linien).
    \newpairofpagestyles{preface}{
    \clearpairofpagestyles
    }

    Danke noch mal, und viele Grüße!
    Thorsten

  3. Benutzer Icon
    Niklas

    Sehr hilfreich, danke dafür!

    Ich habe nun ein Dokument mit Deckblatt, drei Seiten für Verzeichnisse und viele Seiten Text. Nun wollte ich, dass die Seitenzahlen immer außen erscheinen und die Kapitelnamen innen, also:

    Nun erscheinen in der PDF-Ansicht aber die Seitenzahlen des Textes immer innen und die Kapitelnamen außen, während es bei den Verzeichnisseiten noch alles stimmt.

    Hier mal mein Minimalbeispiel:

    \documentclass[a4paper,ngerman,11pt,titlepage=firstiscover,twoside]{scrartcl}
    \usepackage{babel}
    \usepackage{blindtext}
    \usepackage[headsepline]{scrlayer-scrpage}
    \pagestyle{scrheadings}
    \clearpairofpagestyles
    \begin{document}
    \begin{titlepage}
    \author{}
    \title{}
    \date{}
    \end{titlepage}
    \maketitle

    \ohead{\pagemark}
    \tableofcontents
    \pagenumbering{roman}\setcounter{page}{1}
    \newpage
    \listoffigures
    \newpage
    \listoftables
    \clearpage

    \ihead{\headmark}
    \automark[subsection]{section}
    \ohead{\pagemark}

    \pagenumbering{arabic}\setcounter{page}{1}
    \section{Einleitung}
    \blindtext
    \blindtext
    \blindtext
    \blindtext
    \subsection{Subsection}
    \blindtext
    \blindtext
    \section{Bildung}
    \blindtext
    \blindtext
    \blindtext
    \blindtext
    \end{document}

    1. Benutzer Icon
      Niklas

      Mein Problem hat sich erledigt. Ich glaube der Fehler lag darin, dass ich nach Titelseite und den Verzeichnissen nicht \cleardoublepage gesetzt hatte.

  4. Benutzer Icon
    Nils

    Hey,

    Danke für die Beschreibung!
    wie kann ich ausstellen das bei \ohead{\headmark} latex on default capital letters verwendet? 🙂

    Danke

    1. Benutzer Icon

      Du verwendest vermutlich keine Komascript Documentklasse. Wenn du zur Zeit article als Dokumentklasse gesetzt hast, probiere es mal mit scrartcl, das ist das Komascript-Äquivalent. Damit sollten die Kolumnentitel nicht mehr in Großbuchstaben erscheinen.

  5. Benutzer Icon
    Kassandra

    Hallo Jörg,
    danke dir für die übersichtliche Beschreibung, hat mir sehr geholfen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert