Abschnitte im Header

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Franziska
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 1. Feb 2010, 00:43

Abschnitte im Header

Beitrag von Franziska »

Hallo,

ich setze die Header eines scrbook mit scrpage2. Die angezeigten Abschnitte definiere ich so:
\IfElseChapterDefined{
   \automark[section]{chapter} %[rechts]{links}
}{
   \automark[subsection]{section} %[rechts]{links}
}
Alles prima soweit. Bei bei einem kurzen Kapitel (Beginn auf rechter Seite), das keine \sections enthält und über 3 Seiten geht, wird allerdings im Header der letzten (rechten) Seite kein Abschnitt angezeigt.

Ich möchte für diesen Fall eine Ausnahme, d.h., dass nach der Seite, auf der das Kapitel beginnt, auf allen linken *und* rechten Seiten das \chapter erscheint. Wer kann mir zeigen, wie das geht?

Lieber Gruß und Dank im Voraus

Franziska

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Abschnitte im Header

Beitrag von KOMA »

Franziska hat geschrieben:
\IfElseChapterDefined{
   \automark[section]{chapter} %[rechts]{links}
}{
   \automark[subsection]{section} %[rechts]{links}
}
Das kannst Du Dir komplett sparen. Die Voreinstellung bei Option automark ist nämlich:
\if@twoside%
  \if@chapter\automark[section]{chapter}%
  \else\automark[subsection]{section}\fi%
\else%
  \if@chapter\automark{chapter}\else\automark{section}\fi%
\fi
also für doppelseitige Dokumente (Voreinstllung bei scrbook) genau das, was Du machst. Außerdem ist automark bei scrbook normalerweise die Voreinstellung. (Genau genommen ist \pagestyle{headings} bei scrbook die Voreinstellung, was wiederum dazu führt, dass beim Laden von scrpage2 automatisch automark verwendet wird). Im Zweifelsfall kannst Du Dir also auch das Paket sparen, das \IfElseChapterDefined bereit stellt.
Franziska hat geschrieben:Alles prima soweit. Bei bei einem kurzen Kapitel (Beginn auf rechter Seite), das keine \sections enthält und über 3 Seiten geht, wird allerdings im Header der letzten (rechten) Seite kein Abschnitt angezeigt.

Ich möchte für diesen Fall eine Ausnahme, d.h., dass nach der Seite, auf der das Kapitel beginnt, auf allen linken *und* rechten Seiten das \chapter erscheint. Wer kann mir zeigen, wie das geht?
Dazu muss man \chaptermark oder \markboth umdefinieren. Da ersteres eher trivial ist, aber das nächste \automark nicht übersteht, zeige ich hier mal den zweiten Weg:
\newcommand*\SavedOriginalMarkboth{}% sicher stellen, dass es ein neues Makro ist
\let\SavedOriginalMarkboth\markboth% Das neue Makro ist das gleiche wie das alte
\renewcommand*{\markboth}[2]{%
  \ifx\relax#2\relax % Wenn das zweite Argument leer (oder \relax) ist ...
    \SavedOriginalMarkboth{#1}{#1}% ... nehmen wir zweimal das erste
  \else % ... sonst ...
    \SavedOriginalMarkboth{#1}{#2}% ... nehmen wir auch das zweite.
  \fi
}
Benutzung auf eigene Gefahr, da das mangels vollständigen Minimalbeispiels (← dies ist ein geprüfter Link mit relevanten Informationen!) nicht getestet ist.

Franziska
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 1. Feb 2010, 00:43

Beitrag von Franziska »

Hallo Markus,

schönen Dank für Deine Hinweise! Leider hat der von Dir vorgeschlagene Weg bei mir nicht funktioniert. Die Wirkung war so, dass ich damit standardmäßig leere rechte Header erhielt und links jeweils die \section angezeigt wurde. Ich weiß nicht warum das so ist, vermute die Ursache aber in den Tiefen der von mir verwendeten Vorlage :)

Für ein Minimalbeipiel (dessen Sinnhaftigkeit mir voll bewußt ist) fehlt mir als Anfängerin momentan die Zeit, da der Text bald abgeliefert werden muß und mir der "Fehler" erst beim Korrekturlesen aufgefallen ist. Eventuell gehe ich der Sache nochmal mit einem MB auf den Grund, wenn ich etwas Muße habe.

Als schnelle Lösung, die das bewirkt, was ich möchte, verwende ich jetzt:
\markboth{{\thechapter} Kapitelbezeichnung}{{\thechapter} Kapitelbezeichnung}
Lieber Gruß

Franziska

Antworten