Problem mit Fancyhdr beim Drucken des falschen Abschnittstitels

Problem mit Fancyhdr beim Drucken des falschen Abschnittstitels

Ich habe ein Problem mit fancyhdrin Kombination mit dem appendixPaket. 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 twosideModus ist dies nicht der Fall.

Habe ich einen Fehler in meinem Code oder ist das ein Fehler im fancyhdroder appendixPaket?

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 onesideoder twosideModus Normaler Abschnitt


Referenzen im onesideoder twosideModus Verweise


Anhang im twosideModus Anhang im Zweiseitenmodus


Anhang im onesideModus Anhang im Einseitenmodus

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, headerdie 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, \sectionmarkwird am Anfang der appendicesUmgebung 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 twosideund unterscheidet oneside. Diese Definition stimmt mit den üblichen Definitionen in überein article.cls.

Wenn fancyhdrgeladen wird, wird die Definition von \sectionmarkin article-ähnlichen Klassen immer nur verwendet, \markbothunabhängig von der twoside/ oneside-Einstellung. Es ist immer

\def\sectionmark##1{%
  \markboth{\MakeUppercase{%
    \ifnum \c@secnumdepth>\z@
      \thesection\hskip 1em\relax
    \fi
    ##1}}{}

headerDie 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, appendiceswann fancyhdrgeladen 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}

In der Kopfzeile steht „Anhang A Quisque ullamcorper placerat ipsum.“

verwandte Informationen