fancyhdr - eigene Kopfzeile

Neue Frage »

Airblader Auf diesen Beitrag antworten »
fancyhdr - eigene Kopfzeile
Hi,

ich versuche gerade, eine eigene Kopfzeile zu entwerfen. Dabei verwende ich das fancyhdr-Paket und möchte jetzt eigentlich etwa Folgendes machen:

code:
1:
2:
3:
4:
5:
6:
7:
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}

\renewcommand{\sectionmark}[1]{\markright{#1}}
\fancyhead[R]{\footnotesize\rightmark\hspace{2em}\thepage}

Ich möchte erreichen, dass oben rechts eben der Name der aktuellen section steht. Aber das Überschreiben von \rightmark scheint nicht zu funktionieren. Wenn ich jetzt im Dokument folgenden Aufbau habe:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
\begin{document}
\author{...}
\title{doof}
\maketitle

\newpage

\section{Test 1}

Test bla bla

\newpage

Und noch mehr Test
\end{document}

... so haben die beiden letzten Seiten zwar eine Kopfzeile, in dieser steht aber "doof" (also der Dokumenttitel). Ebenso steht in "\leftmark" der Name des Authors.
Wie kann ich erreichen, dass ich den Namen der section in der Kopfzeile habe?

Wenn ich \sectionmark{} manuell noch aufrufe funktioniert es. Aber das ist nicht sehr bequem und hat den Charakter einer Notlösung. verwirrt
Dazu sei noch gesagt, dass ein Freund von mir \rightmark gar nicht überschreibt und dennoch den richtigen Inhalt bekommt ... ?

air
Airblader Auf diesen Beitrag antworten »

Nur mal als Zwischenstand:

Ich habe mir für den Moment hiermit geholfen:

code:
1:
\newcommand{\sect}[1]{\sectionmark{#1}\section{#1}}


Ganz glücklich bin ich damit nicht, aber es funktioniert. Falls es noch eine bessere Lösung gibt, immer her damit. smile

air
Schweinebacke Auf diesen Beitrag antworten »

Ohne vollständiges Minimalbeispiel dürfte eine Antwort schwierig werden. Normalerweise - also bei den üblichen Klassen wie den Standardklassen oder den KOMA-Script-Klassen - wird nämlich der Dokumenttitel gar nicht für den Kolumnentitel verwendet. Die Häppchen, die Du uns geliefert hast, geben leider keine Auskunft darüber, woher der Titel kommt und warum die Umdefinierung von \sectionmark nicht funktioniert.

BTW: Mit \sectionmark vor \section muss man vorsichtig sein. Wenn man dann nämlich die Abschnittsnummern mit ausgeben lässt, sind diese falsch.
Airblader Auf diesen Beitrag antworten »

Danke für den Hinweis. Ich habe es entspr. mal zu

code:
1:
\newcommand{\sect}[1]{\section{#1}\sectionmark{#1}}
geändert.

Ich versuche mal ein Minimalbeispiel zu geben. Bei mir kompiliert es fehlerfrei (laut Compiler), aber eben mit der falschen Anzeige:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
\documentclass[a4paper,12pt,reqno]{amsart}
\usepackage[ngerman]{babel}														
			
\newcommand{\Titel}{ Titel des Dokuments }
\newcommand{\Autor}{ - Ingo Bürk - }

\usepackage{fancyhdr}
\pagestyle{fancy} %eigener Seitenstil
\fancyhf{}

\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie
\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie

\fancyhead[L]{\footnotesize KAPITEL \thesection}
\fancyhead[C]{}
\fancyhead[R]{\footnotesize\rightmark\hspace{2em}\thepage}

\fancyfoot[C]{\thepage}
\fancyfoot[R]{\Autor}

\title{\Large \Titel}
\author{\Autor}
\date{\today}

\begin{document}

\maketitle
\newpage

\section{Testkapitel}

Dies ist ein Test-Text.\\

\newpage

Noch mehr Text.

\end{document}


Danke schonmal. Wink

air
Schweinebacke Auf diesen Beitrag antworten »

Die Klasse amsart ist hier das Problem. Bei amsart rufen die Überschriften keine \...mark-Anweisungen auf. \section führt also intern gar kein \sectionmark aus. Deshalb würde ich vorschlagen, stattdessen eine Klasse wie article oder scrartcl zu verwenden.

Darüber hinaus sei darauf hingewiesen, dass \thsection niemals direkt in der Kopfdefinition verwendet werden sollte. Aufgrund der asynchronen Ausgabe von LaTeX kann es sonst passieren, dass die falsche Nummer im Kopf steht. Genau deshalb gibt es die ganze mark-Geschichte überhaupt. Hier ein Beispiel, das zeigt, das das schief geht:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
\documentclass[a4paper,12pt,reqno]{amsart}
\usepackage[ngerman]{babel}
\usepackage{blindtext}        
            
\newcommand{\Titel}{ Titel des Dokuments }
\newcommand{\Autor}{ - Ingo Bürk - }

\usepackage{fancyhdr}
\pagestyle{fancy} %eigener Seitenstil
\fancyhf{}

\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie
\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie

\fancyhead[L]{\footnotesize KAPITEL \thesection}
\fancyhead[C]{}
\fancyhead[R]{\footnotesize\rightmark\hspace{2em}\thepage}

\fancyfoot[C]{\thepage}
\fancyfoot[R]{\Autor}

\title{\Large \Titel}
\author{\Autor}
\date{\today}

\begin{document}

\maketitle
\newpage

\section{Erstes Testkapitel}\sectionmark{Erstes Testkapitel}

\blindtext

\rule{1pt}{9cm}% Nur als Platzhalter

\blindtext

\section{Zweites Kapitel}\sectionmark{Zweites Kapitel}
\blindtext

\end{document}


Dagegen funktioniert:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
\documentclass[a4paper,12pt,reqno]{amsart}
\usepackage[ngerman]{babel}
\usepackage{blindtext}        
            
\newcommand{\Titel}{ Titel des Dokuments }
\newcommand{\Autor}{ - Ingo Bürk - }

\usepackage{fancyhdr}
\pagestyle{fancy} %eigener Seitenstil
\fancyhf{}

\renewcommand{\sectionmark}[1]{\markright{KAPITEL\ \thesection\hfill#1}}
\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie
\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie

\fancyhead[L]{}
\fancyhead[C]{}
\fancyhead[R]{\footnotesize\rightmark\hspace{2em}\thepage}

\fancyfoot[C]{\thepage}
\fancyfoot[R]{\Autor}

\title{\Large \Titel}
\author{\Autor}
\date{\today}

\begin{document}

\maketitle
\newpage

\section{Erstes Testkapitel}\sectionmark{Erstes Testkapitel}

\blindtext

\rule{1pt}{9cm}% Nur als Platzhalter

\blindtext

\section{Zweites Kapitel}\sectionmark{Zweites Kapitel}
\blindtext

\end{document}
Airblader Auf diesen Beitrag antworten »

Hi,

Danke erstmal.
Ich habe jetzt mal auf article umgestellt und nun funktioniert der renewcommand. Ich werde also einfach das benutzen.

Eine Frage noch: Wenn ich \thesection nicht verwenden sollte, wie bekomme ich dann die Kapitelnummer in den Kopf?

air
 
 
Schweinebacke Auf diesen Beitrag antworten »

Zitat:
Original von Airblader
Eine Frage noch: Wenn ich \thesection nicht verwenden sollte, wie bekomme ich dann die Kapitelnummer in den Kopf?

Über \thesection innerhalb von \markright und \markboth statt innerhalb der Kopfdefinition mit \fancyhead selbst, so wie ich das im zweiten Beispiel gezeigt habe. Wenn Du beide Beispiele ausprobiert hast, hast Du auch gesehen, dass im ersten die Kopfzeile nicht korrekt ist, während sie im zweiten stimmt.
Airblader Auf diesen Beitrag antworten »

Alles klar. Habe es noch nicht geändert, aber es wird sicherlich funktionieren. So langsam wächst mein eigenes kleines Template smile

Vielen Dank für deine Hilfe Wink

air
Airblader Auf diesen Beitrag antworten »

Ich hätte doch noch eine Ergänzungsfrage, die aber mit der Kopf-/Fußzeile nichts mehr zu tun hat. Augenzwinkern

Wie kann ich verhindern, dass eine per $$-Umgebung definierte inline-Formel nicht am Zeilen- or gar Seitenende umgebrochen wird?

air
Schweinebacke Auf diesen Beitrag antworten »

Kannst Du neue Fragen bitte als neues Thema stellen, damit andere das besser finden?
Kannst Du dabei möglichst auch auf doppelte Verneinung verzichten und ein vollständiges Minimalbeispiel angeben? In der aktuellen Form ist mir nicht klar, was nun tatsächlich das Problem ist.
Airblader Auf diesen Beitrag antworten »

Hat sich bereits erledigt, da ich es doch lieber so belasse, wie es ist. Aber Danke für die ganze Hilfe. Augenzwinkern

air
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »