Ich habe ein Problem mit fancyhdr
in Kombination mit dem appendix
Paket. Das Problem tritt - soweit ich es bisher beobachtet habe - nur auf, wenn ich ein einseitiges Dokument kompiliere. Im twoside
-Modus scheint alles korrekt zu kompilieren.
Wie Sie im MWE sehen, steht auf jeder Seite die Überschrift des Hauptteils. Auf der Bibliographieseite steht der Titel ebenfalls in der Kopfzeile. Dort bleibt er jedoch auch für die folgenden Seiten im Dokument, obwohl die Anhänge eigene Titel haben.
Im twoside
Modus ist dies nicht der Fall.
Habe ich einen Fehler in meinem Code oder ist das ein Fehler im fancyhdr
oder appendix
Paket?
Ich bin für jede Hilfe sehr dankbar.
MWE
\documentclass[11pt]{article}
% \documentclass[11pt, twoside]{article}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{etoolbox}
\usepackage[titletoc, title, header]{appendix}
\usepackage{biblatex}
\usepackage{lipsum}
\geometry{%
a4paper,%
top = 3cm,%
bottom = 3.5cm,%
inner = 2.5cm,%
outer = 2.5cm,%
nomarginpar,%
showframe = false%
}
\fancypagestyle{general}{%
\fancyhf{} % Clean fields
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\fancyhead[R]{\itshape\nouppercase{\leftmark}}
\fancyfoot[R]{\thepage}
}
\let\printbibliographyCopy\printbibliography
\renewcommand{\printbibliography}{%
\cleardoublepage%
\addcontentsline{toc}{section}{\refname}%
\pagenumbering{Roman}%
\printbibliographyCopy%
\cleardoublepage%
}
\AtBeginEnvironment{appendices}{%
\let\oldSection\section%
\renewcommand{\section}[1]{%
\cleardoublepage%
\oldSection{#1}%
}%
}
\title{\texttt{fancyhdr} issue}
\author{Sam}
\date{}
\bibliography{refs}
\begin{document}
\thispagestyle{general}%
\pagestyle{general}%
\maketitle
\section{\lipsum[1][1]}
\lipsum[1-3]
\subsection{\lipsum[1][2]}
\lipsum[4-6]
\subsection{\lipsum[1][3]}
\lipsum[7-10]
\section{\lipsum[2][1]}
\lipsum[1-3]
\subsection{\lipsum[2][2]}
\lipsum[4-6]
\subsection{\lipsum[2][3]}
\lipsum[7-10]
\section{\lipsum[3][1]}
\lipsum[1-3]
\subsection{\lipsum[3][2]}
\lipsum[4-6]
\subsection{\lipsum[3][3]}
\lipsum[7-13]\cite{Nobody06}
\printbibliography
\begin{appendices}
\section{\lipsum[4][1]}
\lipsum[1-3]
\section{\lipsum[5][1]}
\lipsum[1-3]
\section{\lipsum[6][1]}
\lipsum[1-3]
\end{appendices}
\end{document}
Screenshots
Normaler Abschnitt im oneside
oder twoside
Modus
Referenzen im oneside
oder twoside
Modus
Antwort1
Der gleiche Effekt kann im folgenden vereinfachten MWE reproduziert werden
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage[titletoc, title, header]{appendix}
\usepackage{lipsum}
\fancypagestyle{general}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{0.4pt}%
\renewcommand{\footrulewidth}{0.4pt}%
\fancyhead[R]{\itshape\nouppercase{\leftmark}}%
\fancyfoot[R]{\thepage}%
}
\pagestyle{general}%
\begin{document}
\section{\lipsum[1][1]}
\lipsum[1-3]
\begin{appendices}
\section{\lipsum[4][1]}
\lipsum[1-3]
\end{appendices}
\end{document}
Das Problem liegt insbesondere bei der Option, header
die an übergeben wird appendix
. Die Option wird im Handbuch wie folgt beschrieben:
Fügt vor jedem Anhang in den Seitenkopfzeilen einen Namen (z. B. „Anhang“) hinzu. Der Name wird durch den Wert von angegeben
\appendixname
. Beachten Sie, dass dies das Standardverhalten für Klassen mit Kapiteln ist.
Wenn die Option aktiviert ist, \sectionmark
wird am Anfang der appendices
Umgebung wie folgt neu definiert
\def\sectionmark##1{%
\if@twoside
\markboth{\@formatsecmark@pp{#1}}{}
\else
\markright{\@formatsecmark@pp{#1}}{}
\fi}
Beachten Sie, dass sich die Definition zwischen twoside
und unterscheidet oneside
. Diese Definition stimmt mit den üblichen Definitionen in überein article.cls
.
Wenn fancyhdr
geladen wird, wird die Definition von \sectionmark
in article
-ähnlichen Klassen immer nur verwendet, \markboth
unabhängig von der twoside
/ oneside
-Einstellung. Es ist immer
\def\sectionmark##1{%
\markboth{\MakeUppercase{%
\ifnum \c@secnumdepth>\z@
\thesection\hskip 1em\relax
\fi
##1}}{}
header
Die einfache Lösung besteht darin, die Option von nicht zu verwenden appendix
, da sie offensichtlich nicht mit den Eigenheiten von im Hinterkopf geschrieben wurde fancyhdr
. Dann werden Sie dasAnhangim Header. Wenn Sie das beibehalten möchten, können Sie patchen, appendices
wann fancyhdr
geladen wird.
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{etoolbox}
\usepackage{fancyhdr}
\usepackage[titletoc, title, header]{appendix}
\usepackage{lipsum}
\fancypagestyle{general}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{0.4pt}%
\renewcommand{\footrulewidth}{0.4pt}%
\fancyhead[R]{\itshape\nouppercase{\leftmark}}%
\fancyfoot[R]{\thepage}%
}
\pagestyle{general}%
% patch appendices for fancyhdr
\makeatletter
\@ifpackageloaded{fancyhdr}
{\apptocmd\appendices{%
\if@chapter@pp
\else
\if@dohead@pp
\def\sectionmark#1{\markboth{\@formatsecmark@pp{#1}}{}}%
\fi
\fi}}
{}
\makeatother
\begin{document}
\section{\lipsum[1][1]}
\lipsum[1-3]
\begin{appendices}
\section{\lipsum[4][1]}
\lipsum[1-3]
\end{appendices}
\end{document}