PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : header ändern mit fancyhdr



marco_h
02-07-2009, 14:14
liebe latex-profis,

ich bräuchte bitte wiedermal dringend eure hilfe. ich muss für ein dokument die kopfzeile umdefinieren, dass diese wie in diesem buch aussieht: http://www.amazon.de/gp/reader/0387747303/ref=sib_dp_pt#reader-page

sprich: auf der linken seite von aussen nach innen: seite, kapitelnummer und titel des kapitels
auf der rechten seite von aussen nach innen: seite, sectionname und sectionnummer.

herzlichen dank für eure hilfe, ich weiss es sehr zu schätzen! danke.
anbei ein minimalbeispiel mit meinem definitionsversuch.

danke nochmals und liebe grüße
marco

bobmalaria
02-07-2009, 18:28
hi,

ich persönlich war nie ein freund von fancyhdr und verwende seit jeher scrpage2. damit lässt sich, wie ich finde, einfach dein gewünschtes schriftbild erhalten


\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage{blindtext}%wie imemr nur zu testen

\usepackage{scrpage2} %laden des paketes
\clearscrheadfoot %alle formatierungen löschen

%für gerade seiten
\lehead[\pagemark]{\pagemark\hspace{1cm}\headmark}

%für ungerade seiten
\rohead[\pagemark]{\headmark\hspace{1cm}\pagemark}

%pagestyle aktivieren
\pagestyle{scrheadings}

\begin{document}
\Blinddocument %nur zum testen
\end{document}

marco_h
02-07-2009, 19:37
hallo bobmalaria,

danke für deine rückmeldung! ich bin aber noch immer auf der suche bzw. habeich die hoffnung noch nicht aufgegeben eine lösungsvariante mittels fancyhdr zu erhalten ;-)

danke und liebe grüße an alle
marco

bobmalaria
02-07-2009, 23:55
da kann ich nur fragen

warum? :D

das eine oder das andere paket. was macht das für einen unterschied und ich finde die codemenge im vergleich zu dem was du versucht hast sehr überschaubar

gruss

marco_h
03-07-2009, 07:13
wo du recht hast, hast du rechst ;) !
aber der grund ist der, dass die vorlage mit der ich arbeite (vom verlag vorgegeben) auf der \documentclass{book} basiert und nicht auf srcbook... wenn dies nicht der fall wäre, hatte ich deine lösung bereits übernommen. kurzum: bitte um hilfe - auch wenn es mit fancyhdr mühsam ist, danke!
marco

u_fischer
03-07-2009, 09:29
Wieso sollte es mit fancyhdr mühsam sein? Du musst einfach nur die Befehle von scrpage2 übersetzen.

\clearscrheadfoot=\fancyhf{}
\headmark= \leftmark oder \rightmark
\pagemark=\thepage
\lehead etc: \lhead usw. Schau in die Doku.
\pagestyle{scrheadings}=\pagestyle{fancy}

Eventuell brauchst du noch ein \nouppercase.

Ulrike Fischer

marco_h
03-07-2009, 10:11
danke für die rückmeldung ulrike, jedoch überfordert mich dein posting etwas, da ich ein latex-neuling bin. aus der doku werde ich bezüglich meinem problem auch nicht schlau - höchstens verwirrter... auf ein neues.
PS: sorry für mein unvermögen!

bobmalaria
03-07-2009, 11:08
hi,

alo erstmal wird der verlang nicht merken können welches paket du benutzt hast und scrpage2 geht auch mit der dokumentenklasse book.

aber mit der fancyhdr doku kommt man doch eigentlich genau dahin wo du hin möchtest.


\documentclass[numbers=noenddot]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage{blindtext}%wie imemr nur zu testen

%\usepackage[headsepline]{scrpage2}
%\clearscrheadfoot
%\lehead[\pagemark]{\pagemark\hspace{1cm}\leftmark:\rightmark}
%
%\rohead[\pagemark]{\pagemark}
%\pagestyle{scrheadings}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter\ #1}{}}
\fancyhf{} % clear all header fields
\fancyhead[LE]{\thepage\hspace{1cm}\nouppercase{\leftmark}} %left (even pages)
\fancyhead[RO]{\nouppercase{\rightmark}\hspace{1cm}\thepage} %right (odd pages)
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers
\renewcommand{\headrulewidth}{0pt} % and the line
\fancyhead[RO]{\thepage} %pagenumber on plain pages (chapterstart)
}

\renewcommand{\headrulewidth}{0.4pt} %linie



\begin{document}
\Blinddocument %nur zum testen
\end{document}

ps: man vergleiche ergebnis und codemenge :)

marco_h
03-07-2009, 21:48
lieber bobmalaria,

großartig, genau das habe ich gesucht! 1000 dank für deine hilfe und geduld mit meinen problemen ;)

zwei kleinigkeiten noch: a) bei den subsections in den headers wird ein punkt angefügt (1.2. section). wie kann man diesen entfernen?
b) beim header des vorwortes wird chapter betitelt. hier sollte der chaptername entfernt sein.

ich hoffe das wars nun :o

DANKE!
marco

bobmalaria
04-07-2009, 01:39
hi,

zu a) du meinst sicher die section, die subsection sollte in der kopfzeile nicht auftauchen... jetzt muss ich auch ein wenig herummaulen ;) das steht nämlich direkt in der fancyhdr doku. siehe rote zeile.


\documentclass[numbers=noenddot]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage{blindtext}%wie imemr nur zu testen

%\usepackage[headsepline]{scrpage2}
%\clearscrheadfoot
%\lehead[\pagemark]{\pagemark\hspace{1cm}\leftmark:\rightmark}
%
%\rohead[\pagemark]{\pagemark}
%\pagestyle{scrheadings}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter\ #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{} % clear all header fields
\fancyhead[LE]{\thepage\hspace{1cm}\nouppercase{\leftmark}} %left (even pages)
\fancyhead[RO]{\nouppercase{\rightmark}\hspace{1cm}\thepage} %right (odd pages)
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers
\renewcommand{\headrulewidth}{0pt} % and the line
\fancyhead[RO]{\thepage} %pagenumber on plain pages (chapterstart)
}
\renewcommand{\headrulewidth}{0.4pt} %linie
\begin{document}
\Blinddocument %nur zum testen
\end{document}

zu b)
ich weiß nicht genau was du meinst, aber lokal kannst du auf den pagestyle plain schalten um die kopfzeile zu deaktivieren. oder du kannst \marboth{}{} lokal aufrufen um den text in der kopfzeile selbst zu gestalten. auch dazu mehr in der fancyhdr doku.



\thispagestyle{plain}

gruss

marco_h
04-07-2009, 17:18
hallo,

nein, bei punkt a) meinte ich etwas anderes und zwar versuche ich es nun anhand deines bsp zu erklären: auf seite 1 ist die section als "1.1 Überschrift auf Ebene 1 (section)" benannt. im header auf S. 3 jedoch als "1.1. Überschrift auf Ebene 1". nach 1.1 steht ein punkt, dieser sollte nicht aufscheinen. bezüglich punkt b) werde ichs versuchen...

lg marco

rais
05-07-2009, 10:17
Moin moin,


nein, bei punkt a) meinte ich etwas anderes und zwar versuche ich es nun anhand deines bsp zu erklären: auf seite 1 ist die section als "1.1 Überschrift auf Ebene 1 (section)" benannt.
auf welches Beispiel beziehst Du Dich? Ich seh' auf Seite 1 nur die Paginierung in der Kopfzeile ...

MfG

marco_h
05-07-2009, 13:06
hallo,

anbei der code:


\documentclass[11pt,ngerman, a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fancyhdr}
\usepackage{blindtext}

\makeatletter
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}
\thispagestyle{empty}
\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother \clearpage{\pagestyle{empty}\cleardoublepage}

\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter\ #1}{}}
%\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{} % clear all header fields
\fancyhead[LE]{\thepage\hspace{1cm}\nouppercase{\leftmark}} %left (even pages)
\fancyhead[RO]{\nouppercase{\rightmark}\hspace{1cm}\thepage} %right (odd pages)
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers
\renewcommand{\headrulewidth}{0pt} % and the line
\fancyhead[RO]{\thepage} %pagenumber on plain pages (chapterstart)
}

\renewcommand{\headrulewidth}{0.4pt} %linie

\begin{document}

\Blinddocument


\chapter{test}
test

\end{document}

rais
06-07-2009, 01:06
Moin moin,


anbei der code (...)
auch hier seh ich nur die Paginierung in der Kopfzeile auf Seite 1 -- soll laut Code ja auch so sein, schließlich beginnt auf dieser Seite ein Kapitel -- mit Deiner Erklärung kann ich immer noch nix anfangen ...

MfG

marco_h
07-07-2009, 09:25
hallo rais,

jetzt bin ich mit meinem latein am ende - auch bei den erklärungen ;)
ich hoffe es klappt nun anhand der beiden screenshots. vergleiche bitte die section-überschrift auf seite 1 mit jenem header-eintrag auf seite 3. auf seite 1 steht "1.1 Überschrift auf Ebene 1 (section)" und im header "1.1. Überschrift auf Ebene 1 (section)". der punkt nach 1.1 sollte doch verschwinden bzw. ist fehl am platz, oder?
sorry für mein leihenhaftes u alles andre als typografisches vokabular! hoffe es klappt nun... danke!

lg marco

rais
07-07-2009, 09:43
Moin Marco,

vergleiche bitte die section-überschrift auf seite 1 mit jenem header-eintrag auf seite 3. auf seite 1 steht "1.1 Überschrift auf Ebene 1 (section)" und im header "1.1. Überschrift auf Ebene 1 (section)". der punkt nach 1.1 sollte doch verschwinden bzw. ist fehl am platz, oder?

ach so, da hab ich zu viel auf die Kopfzeilen geschaut :o

Eine mögliche Lösung hat Dir bobmalaria doch in Beitrag #10 bereits geliefert ...

MfG

marco_h
10-07-2009, 18:48
hallo, sorry für meine verzögerte rückmeldung, war nicht im lande... also: diese lösung ist auch nicht das gelbe vom ei... weicht leider von meinem gewünschten header ab. hmmmm :(

rais
10-07-2009, 21:42
Moin moin,

diese lösung ist auch nicht das gelbe vom ei... weicht leider von meinem gewünschten header ab.
:confused: was hat das mit Deinem header zu tun?
Um die dort rot eingefärbte Zeile geht es ... das Teil, das Du in Deinem eigenen Beispiel nur einzukommentieren bräuchtest.

MfG