PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit fancyhdr



Raute50
09-02-2008, 15:44
Hi Ho,

ich arbeite gerade an meiner Diplomarbeit und versuche mit fancyhdr ein ansprechendes Layout zu generieren.

Mein Ziel ist es auf geraden Seiten links oben den Namen der section und rechts oben den Namen der subsection lesen zu koennen und auf ungeraden Seiten links oben den Namen der chapter.
Desweiteren soll den Seitenzahlen unten auftauchen, jeweils auf geraden Seiten rechts und auf ungeraden Seiten links.
Der Rest sollte frei bleiben.
Nur leider waren meine Experimente erfoglos ... Desweiteren konnte ich online keine Loesung dazu finden. Bei der Recherche in dem Dokument "Page layout in LaTeX" habe ich folgendes gefunden:


\usepackage{fancyhdr}
\pagestyle{fancyplain}
% E Even page
% O Odd page

% L Left field
% C Center field
% R Right field

% H Header
% F Footer
\fancyhead{} % clear all header fields
% % \fancyhead{LE}{\thesubsection}
% \fancyhead{RE}{\thesection\ #1}}
\fancyfoot{} % clear all footer fields
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[LO,CE]{From: K. Grant}
\fancyfoot[CO,RE]{To: Dean A. Smith}



Edit: Ich weis nicht, ob das hier wichtig ist, aber der Vollstaendigkeit halber hier meine Dokumentenklasse:


\documentclass[german,
leqno,
centertags,
letterpaper,
12pt,
twoside,
openright,
onecolumn]
{book}


Dieses konnte ich leider nicht zu dem Ergebnis modifizieren, welches mir vorschwebt.

Ich hoffe hier etwas Hilfe zu bekommen !!!



In diesem Sinne ...

#50

localghost
09-02-2008, 17:36
Als Anregung hier mal eine ausbaufähige Basis. Fehlende Optionen in der Dokumentklasse sind bei book voreingestellt.

\documentclass[
12pt,
letterpaper,
leqno
]
{book}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[centering]{geometry}
\usepackage{blindtext,fancyhdr}

% Festlegung des Seitenstils (fancyhdr)
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LO,RE]{\thepage}
%\fancyfoot[LE]{\bfseries Titel}
%\fancyfoot[RO]{\scshape Institut}
\fancyhead[LE]{\sffamily\nouppercase{\rightmark}}
\fancyhead[RO]{\sffamily\nouppercase{\leftmark}}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
\addtolength{\headheight}{2pt}
%\addtolength{\footheight}{2pt}

\begin{document}
\Blinddocument
\end{document}
Einige Dinge machen mich allerdings nachdenklich.

Du schreibst auf letterpaper. (Absicht oder Versehen? *grübel*)
Die Seitenzahlen stehen immer innen. (Man könnte sie beim Durchblättern nicht sehen.)
Der Platz in der Kopfzeile würde für Abschnitt und Unterabschnitt kaum ausreichen. (Zwei Zeilen sind nicht ratsam). Zur Realisierung fällt mir auch gerade nichts ein.

geometry (http://dante.ctan.org/CTAN/help/Catalogue/entries/geometry.html) ist bei mir nötig, um auch wirklich ein PDF-Dokument im Format letterpaper zu erzeugen. blindtext (http://dante.ctan.org/CTAN/help/Catalogue/entries/blindtext.html) ist nur dazu gedacht, um längere Textpassagen (oder wie hier gleich ein ganzes Dokument) zu erzeugen.


MfG
Thorsten

Raute50
09-02-2008, 17:58
Einige Dinge machen mich allerdings nachdenklich.

Du schreibst auf letterpaper. (Absicht oder Versehen? *grübel*)
Die Seitenzahlen stehen immer innen. (Man könnte sie beim Durchblättern nicht sehen.)
Der Platz in der Kopfzeile würde für Abschnitt und Unterabschnitt kaum ausreichen. (Zwei Zeilen sind nicht ratsam). Zur Realisierung fällt mir auch gerade nichts ein.

geometry (http://dante.ctan.org/CTAN/help/Catalogue/entries/geometry.html) ist bei mir nötig, um auch wirklich ein PDF-Dokument im Format letterpaper zu erzeugen. blindtext (http://dante.ctan.org/CTAN/help/Catalogue/entries/blindtext.html) ist nur dazu gedacht, um längere Textpassagen (oder wie hier gleich ein ganzes Dokument) zu erzeugen.


MfG
Thorsten

Ok ... eine Sache kann ich erklaeren .. ich habe mich vertan ...


Mein Ziel ist es auf geraden Seiten links oben den Namen der section und rechts oben den Namen der subsection lesen zu koennen und auf ungeraden Seiten links oben den Namen der chapter.
Desweiteren soll den Seitenzahlen unten auftauchen, jeweils auf geraden Seiten LINKS und auf ungeraden Seiten RECHTS.
Der Rest sollte frei bleiben.
In diesem Sinne ...

#50

SO wuerde ich es gern haben ... also die Seitenzahlen aussen ....

Das mit dem letterpaper ist so direkt keine Absicht. Habe vor langer Zeit mal ein Dokument bekommen, an dem ich mich seit dem orientiere und das beinhaltete die Option letterpaper. Dort sollte bestimmt DINA4 stehen ...

Habe auch schon darueber nachgedacht, dass das dann mit dem Platz eng werden koennte ... aber ich habe generell versucht kurze Namen fuer die Kopfzeile zu waehlen, so dass zwei Informationen fuer Abschnitt und Unterabschnitt passen sollten ...
Notfalls kann ich das dann wieder aendern ... nur das hinzubekommen habe ich bislang noch nicht geschafft!

Edit : Blindtext kann ich nicht nutzen ...
Fehlermeldung: ! LaTeX Error: File `blindtext.sty' not found.


Edit: So ganz komme ich damit nicht voran. In Deinem Beispiel ist nur der Chapter-Name und der Section-Name zu lesen. Desweiteren ist der Strich am Ende stoeren. Ok .. diesen konnte ich durch das Auskommentieren der % \renewcommand{\headrulewidth}{0.5pt} % \renewcommand{\footrulewidth}{0.5pt} Zeilen beheben .. aber leider ist mein Problem dadurch nicht geloest ...

In diesem Sinne ..

#50

localghost
09-02-2008, 18:27
Ok ... eine Sache kann ich erklaeren .. ich habe mich vertan […] SO wuerde ich es gern haben ... also die Seitenzahlen aussen […]
Dazu einfach etwas vertauschen.

\fancyfoot[LE,RO]{\thepage}
Genauer steht das alles in der Anleitung zu fancyhdr (http://dante.ctan.org/CTAN/help/Catalogue/entries/fancyhdr.html).

[…] Dort sollte bestimmt DINA4 stehen […]
Na, ja. Zumindest steht dann da etwas ähnliches.

\documentclass[
12pt, % Schriftgröße
a4paper, % Papierformat
leqno % Nummerierung von Formeln links
]
{book}
Vielleicht schaust Du dir auch mal die Klasse scrbook aus dem KOMA-Script (http://dante.ctan.org/CTAN/help/Catalogue/entries/koma-script.html)-Bündel an. Die erleichtert so einiges.

[…] Habe auch schon darueber nachgedacht, dass das dann mit dem Platz eng werden koennte ... aber ich habe generell versucht kurze Namen fuer die Kopfzeile zu waehlen, so dass zwei Informationen fuer Abschnitt und Unterabschnitt passen sollten ... nur das hinzubekommen habe ich bislang noch nicht geschafft! […]
Ich bisher auch nicht. Da müsste mal jemand anders ran.


[…] Edit : Blindtext kann ich nicht nutzen ...
Fehlermeldung: ! LaTeX Error: File `blindtext.sty' not found. […]
Dann musst Du es installieren.

rais
10-02-2008, 11:59
Moin moin,


Mein Ziel ist es auf geraden Seiten links oben den Namen der section und rechts oben den Namen der subsection lesen zu koennen und auf ungeraden Seiten links oben den Namen der chapter.

afaik sind drei Gliederungsebenen auch nicht vorgesehen -- der Name \markboth deutet schon darauf hin ... versuch es etwa so:


\documentclass[
12pt,
a4paper,
leqno
]
{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext,fancyhdr}
\newcommand\mysecmark{}
\newcommand\thesecnumdepth{\arabic{secnumdepth}}
\AtBeginDocument{%
\renewcommand\sectionmark[1]{%
\renewcommand\mysecmark{%
\ifnum\thesecnumdepth > 0 \thesection\ \fi#1}%
\markright{\mysecmark\hfill~}%
}
\renewcommand\subsectionmark[1]{%
\markright{\mysecmark\hfill%
\ifnum\thesecnumdepth > 1 \thesubsection\ \fi#1}%
}
}
% Festlegung des Seitenstils (fancyhdr)
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[CE]{\sffamily\nouppercase{\rightmark}}
\fancyhead[LO]{\sffamily\nouppercase{\leftmark}}
\addtolength{\headheight}{5pt}

\begin{document}
\chapter{Kap}
\section{Abschnitt}
\blindtext[12]
\subsection{U-Abschnitt}
\blindtext[24]
\end{document}

Komm jetzt aber nicht auf die Idee, irgendwo nach einer \section so etwas wie \chapter{foo} \subsection{bar} zu wollen; in dem Fall darfst Du Dich selbst darum kümmern, \mysecmark entsprechend zu löschen.;)

MfG

Raute50
12-02-2008, 18:57
Hi Ho ...

zunächst ein Mal: VIELEN DANK für Deine Hilfe!
Deine Lösung ist beinah perfekt. Zum Einen musste ich die Seiten nur austauschen und zum anderen habe ich folgendes Problem:
Beginnt zum Beispiel auf Seite 34 eine neue SECTION in einem neuen CHAPTER so steht dieses oben an der korrekten Stelle. Aber wenn auf der selben Seite eine SUBSECTION beginnt, so wird die oben das erste Mal 2 Seiten später erwähnt und nicht schon auf der besagten Seite 34.





\fancyhead[CO]{\sffamily\nouppercase{\rightmark}}
\fancyhead[LE]{\sffamily\nouppercase{\leftmark}}





Ausserdem verstehe ich Deinen folgenden Kommentar nicht ganz:

Komm jetzt aber nicht auf die Idee, irgendwo nach einer \section so etwas wie \chapter{foo} \subsection{bar} zu wollen; in dem Fall darfst Du Dich selbst darum kümmern, \mysecmark entsprechend zu löschen.

Bekomme ich das von Dir angedeutete Problem vielleicht einfach nicht, wenn ich immer die Hierarchie Chapter->Section->Subsection befolge und nie in einem neuen Chapter zuerst eine Subsection beginne, bevor ich eine Section begonnen habe ... Denn das mache ich ... und bislang konnte ich kein richtiges Problem feststellen.


Das obige ist nicht sooooo schlimm, so dass ich bei der Version bleibe, sollte ich nichts zum Lösen finden ...


Noch mal vielen Dank und einen schönen Abend !!!



In diesem Sinne ..

#50

rais
12-02-2008, 21:58
Moin moin,


Beginnt zum Beispiel auf Seite 34 eine neue SECTION in einem neuen CHAPTER so steht dieses oben an der korrekten Stelle. Aber wenn auf der selben Seite eine SUBSECTION beginnt, so wird die oben das erste Mal 2 Seiten später erwähnt und nicht schon auf der besagten Seite 34.





\fancyhead[CO]{\sffamily\nouppercase{\rightmark}}
\fancyhead[LE]{\sffamily\nouppercase{\leftmark}}


ich behaupte einfach mal: auf Seite 34 kannst Du so gar keinen Abschnitt in der Kopfzeile bekommen, da sollte vielmehr das Kapitel auftauchen; wenn \section und \subsection auf Seite 34 starten, sollten auch beide in der Kopfzeile ab Seite 35 zu sehen sein...
Erstelle also bitte ein Minimalbeispiel (http://www.minimalbeispiel.de), das den von Dir beschriebenen Fehler reproduziert.


Bekomme ich das von Dir angedeutete Problem vielleicht einfach nicht, wenn ich immer die Hierarchie Chapter->Section->Subsection befolge und nie in einem neuen Chapter zuerst eine Subsection beginne, bevor ich eine Section begonnen habe ... Denn das mache ich ... und bislang konnte ich kein richtiges Problem feststellen.

Solange Du die Hierarchie einhältst ist das auch OK; damit wollte ich lediglich darauf hinweisen, daß besagter \mysecmark andernfalls ungewollte Ergebnisse produzieren könnte -- genauer: wohlmöglich den letzten Abschnitt des vorherigen Kapitels mit nun auch noch falscher Nummer ausgeben. ;-)

MfG

Raute50
13-02-2008, 09:28
Hi Ho ...

ja ja ... habe mich wieder in den Seiten vertan ... keine Ahnung, warum mir das immer passiert ?!

Hier nun das hoffentlich hilfreiche Minimalbeispiel :



\documentclass[
12pt,
a4paper,
leqno
]
{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fancyhdr}
\newcommand\mysecmark{}
\newcommand\thesecnumdepth{\arabic{secnumdepth}}
\AtBeginDocument{%
\renewcommand\sectionmark[1]{%
\renewcommand\mysecmark{%
\ifnum\thesecnumdepth > 0 \thesection\ \fi#1}%
\markright{\mysecmark\hfill~}%
}
\renewcommand\subsectionmark[1]{%
\markright{\mysecmark\hfill%
\ifnum\thesecnumdepth > 1 \thesubsection\ \fi#1}%
}
}
% Festlegung des Seitenstils (fancyhdr)
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[CO]{\sffamily\nouppercase{\rightmark}}
\fancyhead[LE]{\sffamily\nouppercase{\leftmark}}
\addtolength{\headheight}{5pt}

\begin{document}

\chapter{Minimalbeispiel}
\newpage
Moin moin,
Zitat:
Zitat von Raute50 Beitrag anzeigen
Beginnt zum Beispiel auf Seite 34 eine neue SECTION in einem neuen CHAPTER so steht dieses oben an der korrekten Stelle. Aber wenn auf der selben Seite eine SUBSECTION beginnt, so wird die oben das erste Mal 2 Seiten spaeter erwaehnt und nicht schon auf der besagten Seite 34.

Code:
\begin{verbatim}
\fancyhead[CO]{\sffamily\nouppercase{\rightmark}}
\fancyhead[LE]{\sffamily\nouppercase{\leftmark}}
\end{verbatim}

ich behaupte einfach mal: auf Seite 34 kannst Du so gar keinen Abschnitt in der Kopfzeile bekommen, da sollte vielmehr das Kapitel auftauchen; wenn \begin{verbatim}\section\end{verbatim} und \begin{verbatim}\subsection\end{verbatim} auf Seite 34 starten, sollten auch beide in der Kopfzeile ab Seite 35 zu sehen sein...
Erstelle also bitte ein Minimalbeispiel, das den von Dir beschriebenen Fehler reproduziert.
Zitat:
Zitat von Raute50 Beitrag anzeigen
Bekomme ich das von Dir angedeutete Problem vielleicht einfach nicht, wenn ich immer die Hierarchie Chapter->Section->Subsection befolge und nie in einem neuen Chapter zuerst eine Subsection beginne, bevor ich eine Section begonnen habe ... Denn das mache ich ... und bislang konnte ich kein richtiges Problem feststellen.
Solange Du die Hierarchie einhaeltst ist das auch OK; damit wollte ich lediglich darauf hinweisen, da{\ss} besagter \begin{verbatim}\mysecmark\end{verbatim} andernfalls ungewollte Ergebnisse produzieren koennte -- genauer: wohlmoeglich den letzten Abschnitt des vorherigen Kapitels mit nun auch noch falscher Nummer ausgeben. ;-)

MfG

\newpage
\section{new section}
Hier beginnt eine neue \textit{section} ...

und es folgt Text und so ....

\subsection{new subsection}

In der obersten Zeile ist davon noch nichts zu sehen ....

Es wird lediglich die \textit{new section} aufgefuehrt!

\newpage
Oben sollte wieder das Kapitel stehen

\newpage
und nun sind beide Namen zu lesen ...

Perfekt waere alles, wenn ich schon 2 Seiten eher sowohl \textit{new section} als auch \textit{new subsection} lesen koennte ...

\end{document}


Das jetzige Aussehen ist schon nah dran an meinem Wunsch. Wenn es sich nicht verbesseren laesst, bin ich schon ziemlich dankbar!
Sollten aber die letzten Prozent dieser Aufgabe noch geloest werden koennen, waere ich total dankbar!

In diesem Sinne ...