
Um mein Problem zu erklären, möchte ich mit meinem MWE beginnen:
\documentclass[a4paper,10pt]{book}
\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{extramarks}
\makeatletter
\renewcommand\chapter{\@startsection%
{chapter}{0}{0mm}%
{2.5\baselineskip}{1.5\baselineskip}%
{\centering\normalfont\large\scshape
}%
}
\makeatother
\newcommand{\mychap}[1]{
\chapter*{#1}
\markboth{#1}{#1}}
\renewcommand{\sectionmark}{}
\renewcommand{\chaptermark}{\markboth{\thechapter}}
\pagestyle{fancy}
\fancyhf{}
\fancyhead{}
\fancyhead[LE]{{\thepage}}
\fancyhead[RE]{ {\itshape \nouppercase \firstleftmark}}%higher level \scshape \MakeUppercase
\fancyhead[LO]{ {\itshape \nouppercase \lastrightmark}}
\fancyhead[RO]{ {\thepage}} %odd page
\begin{document}
\mychap{one}
\lipsum
\mychap{two}
aaa
\mychap{five halves}
\mychap{three}
\lipsum
\mychap{fourth}
\lipsum[5]
\mychap{five}
d
\end{document}
Beachte das:
- Ich möchte Kapitel als Abschnitte behandeln (kein Seitenumbruch, einfacher Titel)
- In der Kopfzeile möchte ich den Namen des Kapitels
Ich konnte diese Funktionen erhalten
ABER
Ich möchte auch
- In der Kopfzeile desseltsamSeiten, die ich möchte diezuletztKapitel erscheint auf der Seite (das scheint mit zu funktionieren
\lastrightmark
) - In der Kopfzeile dessogarSeiten, die ich nicht möchteErsteKapitel beginnt auf der Seite, aber dieaktuellKapitel, also das Kapitel, das ich beim Umblättern lese.
In meinem Beispiel
- Auf Seite 2 hätte ich gerne „eins“, da Kapitel zwei nach dem Seitenumbruch zwischen Seite 1 und Seite 2 beginnt;
- Auf Seite 4 hätte ich gerne „vier“, da Kapitel fünf nach dem Seitenumbruch zwischen Seite 3 und Seite 4 beginnt.
Wie kann ich das bekommen?
Antwort1
Sie können diese Header erreichen, indem Sie \extramarks
sie wie folgt festlegen und verwenden:
\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}
\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}
In einem Dokument wie Ihrem Muster erhalten Sie also one' in the heading page 2 and
wie gewünscht die Überschrift „vier“.
\documentclass[a4paper,10pt]{book}
\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{extramarks}
\makeatletter
\renewcommand\chapter{\@startsection%
{chapter}{0}{0mm}%
{2.5\baselineskip}{1.5\baselineskip}%
{\centering\normalfont\large\scshape
}%
}
\makeatother
\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}
\pagestyle{fancy}
\fancyhf{}
\fancyhead{}
\fancyhead[LE]{\thepage}
\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}
\fancyhead[RO]{\thepage}
\begin{document}
\mychap{One}
\lipsum
\mychap{Two}
Two words.
\mychap{Two and a half}
\mychap{Three}
\lipsum
\mychap{Four}
\lipsum[5]
\mychap{Five}
A sentence of five words.
\end{document}
Beachten Sie, dass beide\markboth
Und \extramarks
müssen die richtigen Werte erhalten (was möglicherweise auf einem „Bug“ in beruht extramarks
). Außerdem muss ich \MakeLowercase
den Überschriftentext in die gewünschte Form zwingen, da wir jetzt nicht mehr die Standardmarkierungen verwenden.