PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kapitel in Kopfzeile (FancyHdr)



Maschinenbauer
25-07-2011, 13:26
Es soll das Kapitel und nicht das Unterkapitel in der Kopfzeile angezeigt werden.

Was ist falsch?

Den renewcommand-Teil habe ich aus dem Handbuch und versucht anzupassen:
www.tex.ac.uk/tex-archive/info/german/fancyhdr/fancyfolien+bsp.pdf


\documentclass{report}

\usepackage{fancyhdr} %Paket laden

\pagestyle{fancy} %eigener Seitenstil
\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
\fancyhead[L]{\rightmark} %Kopfzeile links
\fancyhead[C]{} %zentrierte Kopfzeile
\fancyhead[R]{\thepage} %Kopfzeile rechts
\fancyfoot[C]{} %Seitennummer

\renewcommand{\chaptermark}[1]{
\markboth{\thechapter{} #1}{\thechapter{} #1}
}
\renewcommand{\chaptermark}[1]{
\markright{\thechapter{} #1}
}
\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie

\begin{document}
\chapter{Test}
\section{Test erste Seite}
Hallo Welt

\newpage
\section{Test zweite Seite}
Hallo Welt zweite Seite

\end{document}

rstuby
25-07-2011, 13:31
Hast du die Möglichkeit, scrreprt anstatt report zu benutzen? Da ist voreingestellt, dass Kapitel/Unterkepitel in der Kopfzeile stehen. Außerdem kann man damit das Paket scrpage2 benutzen, was meiner Ansicht nach einfacher zu handhaben ist als fancyhdr.

Maschinenbauer
25-07-2011, 13:36
Wenn du mir ein fertiges Beispiel gibst, kann ich umsteigen.
Ich hab keine Lust, mich jetzt auch noch mit scrpage auseinanderzusetzen.

Jetzt habe ich fancyhdr so weit, dass nur noch das Kapitel statt Unterkapitel im Header angezeigt werden muss ...


Edit:
Hier habe ich die Lösung gefunden:
http://mrunix.de/forums/showthread.php?t=64971


\documentclass{report}

\usepackage{fancyhdr} %Paket laden

% erste Kapitelseite völlig leer (auch keine Seitenzahl in Fußzeile und keine Trennlinie):
\fancypagestyle{plain}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
}

\pagestyle{fancy} %eigener Seitenstil
\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
\fancyhead[L]{\rightmark} %Kopfzeile links
\fancyhead[C]{} %zentrierte Kopfzeile
\fancyhead[R]{\thepage} %Kopfzeile rechts
\fancyfoot[C]{} %Seitennummer

%\renewcommand{\sectionmark}[1]{%
%\markboth{\MakeUppercase{%
%\chaptername\ \thechapter.%
%\ #1}}{}}
\renewcommand{\chaptermark}[1]{%
\markboth{\MakeUppercase{%
\thechapter.%
\ #1}}{\MakeUppercase{%
\thechapter.%
\ #1}}}
\renewcommand\sectionmark[1]{}

\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie

\begin{document}
\chapter{Test}
\section{Test erste Seite}
Hallo Welt

\newpage
\section{Test zweite Seite}
Hallo Welt zweite Seite
\newpage
\section{Test dritte Seite}
blabla

\end{document}


Edit:
Code überarbeitet, so dass auf der ersten Kapitelseite keine Seitenzahl mehr in der Fußzeile steht.

rstuby
25-07-2011, 13:55
Sorry, ich habe deine Frage falsch gelesen gehabt. Bei scrreprt ist aber dennoch standardmäßig das Kapitel in der Kopfzeile.

rstuby
25-07-2011, 14:01
scrpage2 scheint auch mit report zu funktionieren und hat die angenehme Funktion automark:

\documentclass{report}
\usepackage[ngerman]{babel}
\usepackage{scrpage2}
\usepackage{blindtext}
\pagestyle{myheadings}
\automark[chapter]{chapter}
\begin{document}
\blinddocument
\end{document}

rais
25-07-2011, 21:57
Moin moin,

Es soll das Kapitel und nicht das Unterkapitel in der Kopfzeile angezeigt werden.

warum nimmste dann



\fancyhead[L]{\rightmark} %Kopfzeile links

und nicht


\fancyhead[L]{\leftmark} %Kopfzeile links

?

MfG

Schweinebacke
26-07-2011, 09:53
scrpage2 scheint auch mit report zu funktionieren und hat die angenehme Funktion automark:
Das ist sogar explizit dokumentiert. Allerdings sollte man dann auch den Seitenstil scrheadings verwenden. Die einfachste Lösung damit wäre:

\documentclass{report}
\usepackage[ngerman]{babel}
\usepackage[automark,headsepline]{scrpage2}
\usepackage{blindtext}
\pagestyle{scrheadings}
\begin{document}
\blinddocument
\end{document}Persönlich würde ich noch die Optionen markusedcase und (bei Verwendung einer Standardklasse) nouppercase beim Laden von scrpage2 hinzufügen.

Maschinenbauer
26-07-2011, 12:22
Moin moin,

warum nimmste dann

und nicht


\fancyhead[L]{\leftmark} %Kopfzeile links

?

MfG

Das "[L]" gibt die Position innerhalb der Kopfzeile an (L=links, R=rechts). Leftmark und Rightmark sind eigentlich für den Einsatz von Doppelseiten vorgesehen. Ich habe aber keine Doppelseiten, sondern nur Einzelseiten (da es kein gebundenes Buch wird und Doppelseiten dann unpraktisch sind). Und mehr Auswahl wie rightmark oder leftmark habe ich bei Fancyhdr nicht?!

u_fischer
26-07-2011, 12:38
Leftmark und Rightmark sind eigentlich für den Einsatz von Doppelseiten vorgesehen.

\leftright + \rightmark beziehen sich auf den linke und rechten Teil einer mit einem \mark-Befehl gespeicherten Marke. \leftmark ist der Text im linken "Abteil" der letzten Marke, \rightmark den der ersten.

Dabei füllt ein \markboth-Befehls beide "Abteile", \markright nur den rechten.

Du kannst auch in einseitigen Dokumenten beide Befehle benutzen, du musst dir nur überlegen, ob mit welchem du die gewünschten Kopfzeilen erhältst, wenn du mehrere \markboth/\markright-Befehle auf einer Seite hast.


\documentclass{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\lhead{\leftmark}
\lfoot{\rightmark}
\begin{document}
blub
\markboth{Ich bin der erste linke Teil}{\ldots\ und ich der erste rechte}

\markboth{Ich bin der zweite linke Teil}{\ldots\ und ich der zweite rechte}
\end{document}