Kopfzeile mit fancyhdr gestalten

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


brundle
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 19. Mai 2010, 16:12

Kopfzeile mit fancyhdr gestalten

Beitrag von brundle »

Hallo Leute,

hoffe mir kann jemand mit folgendem Problem helfen. Ich hab mich (auf sanften Drucks meines Betreuers) entschieden, meine Masterarbeit in Latex zu schreiben. Bin jetzt mit dem Layout Framework soweit ganz zufrieden, nur bekomme ich meine Unterkapitel (subsections) nicht in die Kopfzeile. Dazu verwende ich das Package "fancyhdr". Also auf der linken Seite der Kopfzeile kommt wie ich es will das jeweilige Hauptkapitel (Section), nur eben auf der rechten Seite nicht das Unterkapitel.

Vielleicht kann mir jemand den Code (nicht von mir geschrieben - versteh ihn auch nicht wirklich) soweit ergänzen, dass das Unterkapitel nun doch erscheint.
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}

\begin{document}

\pagenumbering{roman}

%Kopfzeile

\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\lhead{\bfseries\leftmark}
\rhead{}

%Kopfzeile

\input{Titelseite} %Titelseite

\newpage~\thispagestyle{empty}\newpage\thispagestyle{empty}
\begin{Large}{\textbf{Acknowledgment}}

\newpage~\thispagestyle{empty}\newpage\thispagestyle{empty}
\textbf{Abstract}

\newpage~\thispagestyle{empty}\newpage
\setcounter{page}{1}
\end{Large}
\tableofcontents %Inhaltsverzeichnis
\thispagestyle{empty}

%\addcontentsline{toc}{section}{Abstract} --> so fügt man eine zeile ohne automatischer nummerierung ins inhaltsverzeichnis ein

\newpage
\setcounter{page}{1}
\pagenumbering{arabic}

\input{Einleitung} %Introduction
\newpage
\input{Concepts} %Concepts
\newpage
\input{Experiment} %Experiment



\end{document}

Vielen Dank!

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 825
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Grundgerüst

Beitrag von localghost »

Dein Code-Schnipsel ist vollkommen unbrauchbar. Du lässt wichtige Informationen einfach weg. Außerdem liegen die externen Dateien, die in deinem Code eingelesen werden, hier nicht vor. Für Standardklassen empfehle ich wegen größerer Flexibilität immer titlesec statt fancyhdr. Daher folgendes als Grundgerüst.
\documentclass[11pt,a4paper,ngerman,twoside]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]]{inputenc}
\usepackage{babel}
\usepackage[bindingoffset=1cm,includeheadfoot,margin=3cm]{geometry}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption}
\usepackage[bf,pagestyles,raggedright]{titlesec}
\usepackage{blindtext}

% Einstellungen für Layout (titlesec)
\newpagestyle{main}{%
  \headrule
  \sethead[\thepage][][\bfseries\thesection\quad\sectiontitle]{\bfseries\thesubsection\quad\subsectiontitle}{}{\thepage}
  \setfoot[][][]{}{}{}
}
\pagestyle{main}

\begin{document}
  \blinddocument
\end{document}
Du solltest dir den Wechsel zu einer Klasse überlegen, die wirklich Kapitel (chapter) und nicht nur Abschnitte (section) bietet. Dass ist einer solchen Arbeit angemessen und Du wirst sie brauchen. Des weiteren ist die Verwendung einer entsprechenden Klasse aus KOMA Script ratsam.


MfG
Thorsten
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: openSUSE 13.1 (Linux 3.11.6), TeX Live 2013, TeXworks 0.5 (r1349)
³ Lernt gerade TeX (und versucht, es zu verstehen).

brundle
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 19. Mai 2010, 16:12

Beitrag von brundle »

danke für deine antwort,

leider funktioniert das nicht so ganz wie ich mir das vorgestellt habe. also es sollte ab dem inhaltsverzeichnis in der kopfzeile links das hauptkapitel und rechts das jeweilige unterkapitel stehen (beides ohne der Nummerierung), unten in der mitte die seitenzahl. welches package ich dafür verwende ist egal, da ich die formatierung minimalisitsch halten werde und das die einzigen einstellungen sind.

ein nun vollständiges minimalbsp.
\documentclass[a4paper,10pt]{article}

\usepackage{fancyhdr}
\pagestyle{fancy}

\begin{document}

\pagenumbering{roman}

\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\lhead{\bfseries\leftmark}
\rhead{}

%Kopfzeile

\newpage~\thispagestyle{empty}\newpage\thispagestyle{empty}
\begin{Large}{\textbf{Acknowledgment}}


\newpage~\thispagestyle{empty}\newpage
\setcounter{page}{1}
\end{Large}
\tableofcontents %Inhaltsverzeichnis
\thispagestyle{empty}


\newpage
\setcounter{page}{1}
\pagenumbering{arabic}

\section {Introduction}
\subsection{Research Objective}
\subsection{Research Method}
\newpage

\section{Process Modeling Approaches}
\subsection{Imperative}
\subsection{Declarative}

\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

article kennt keine Kapitel, also auch keine "Haupt-Kapitel" und "Unter-Kapitel". article kennt Abschnitte (\section) und Unterabschnitte (\subsection). Vermutlich meinst Du diese.

Wenn Du Kolumnentitel für Abschnitte und Unterabschnitte haben willst, brauchst Du \leftmark (enthält üblicherweise den Abschnitt) und \rightmark (enthält üblicherweise den Unterabschnitt) in der Kopfdefinition, beispielsweise:
\rhead{\bfseries\rightmark}
Fette Kolumnentitel finde ich übrigens ziemlich übergewichtig.
Da Dir die Voreinstellungen für \sectionmark und \subsectionmark von fancyhdr offenbar nicht zusagen, musst Du außerdem auch noch \subsectionmark umdefinieren:
\renewcommand*{\subsectionmark}[1]{\markright{#1}}
Zu \leftmark, \rightmark, \markboth, \markright, \lhead und \rhead siehe einfach die Anleitung des von Dir verwendeten fancyhdr.

Daneben fallen mir an Deinem Code noch folgende Dinge auf:
  • \Large ist eine Anweisung, genauer ein Umschalter. Diesen als Umgebung zu missbrauchen, birgt Gefahren. AFAIK habe ich heute erst ein einer anderen Antwort die Risiken näher erläutert und auch einen passenden Link gesetzt.
  • \pagenumbering ändert nicht nur den Nummerierungsstil, sondern setzt auch die Seitennummer zurück. Ein \setcounter{page}{1} ist in diesem Zusammenhang also völlig überflüssig.
  • Gerade wenn man aus irgendwelchen Gründen vor einer Überschrift eine neue Seite erzwingen will, ist \clearpage häufig einem einfachen \newpage vorzuziehen. \clearpage gibt nämlich auch noch alle übrig gebliebenen Gleitumgebungen aus. Damit wandern diese dann nicht reichlich unmotiviert in den nächsten Abschnitt.
  • Wenn Du tatsächlich vor jedem Abschnitt (\section) eine neue Seite beginnen willst, solltest Du vermutlich zu einer Klasse mit Kapiteln, beispielsweise report (oder besser scrreprt) wechseln und dann mit \chapter statt \section beginnen. Dabei wird nämlich u. a. automatisch eine neue Seite eingefügt. Falls Dir die Überschriften von report dabei zu mächtig sind, wäre das ein weiteres Argument für scrreprt. Dort sind die Überschriften schon in der Voreinstellung etwas gemäßigter und man kann die Einstellungen leicht weiter anpassen. Dann würde ich übrigens scrpage2 statt fancyhdr verwenden.
Falls Dich diese Hinweise nicht interessieren, ignoriere sie bitte einfach.

brundle
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 19. Mai 2010, 16:12

Beitrag von brundle »

Danke für deine Tipps! Ich werde versuchen mit Deinen Anweisungen die subsection in die Kopfzeile zu bringen.

Ja, mit Haupt- und Unterkapitel meine ich section und subsection.

brundle
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 19. Mai 2010, 16:12

Beitrag von brundle »

Hallo,

1)

mittlerweile habe ich es geschafft die Kopfzeile (nun mit chapter links und section rechts) mit scrpage2 zu erstellen. Leider schaffe ich es nicht die Nummerierung von chapter und section zu unterdrücken...Hat jemand Rat?

2)

Die Trennlinie habe ich beim scrpage2 Package mitdefiniert. Sie wird nun auch im Inhaltsverzeichnis angezeigt, wo sie nicht sein sollte. Mit thispage{empty} verschwindet sie zwar, mit ihr aber auch die Seitenummerierung. Mit thispage{plain} ändert sich gar nichts. Kann mir auch hier jemand weiterhelfen?

Vielen Danke!

Hier das Bsp.:
\documentclass[oneside,a4paper,10pt]{scrreprt}

\usepackage[english]{babel}
\usepackage[headsepline,plainheadsepline]{scrpage2} %Trennlinie

%Kopfzeile 
\ihead{\leftmark}
\ohead{\rightmark}
\chead{}
\pagestyle{scrheadings}
\automark[section]{chapter}
%Kopfzeile

\begin{document}
\pagenumbering{roman}
\tableofcontents

\newpage

\pagenumbering{arabic}

\chapter{blabla}
\section{blabla}

\newpage~

\end{document}



brundle
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 19. Mai 2010, 16:12

Beitrag von brundle »

Problem 2 hab ich mittlerweile schon gelöst. Musste den "plainheadsepline" Befehl aus der usepackage Definition löschen.

Bei Punkt 1 steh ich immer noch an :(

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Ich muss weg, daher nur ganz kurz: Schlag mal \sectionmarkformat in der KOMA-Script-Anleitung nach. Falls es mehrere Einträge im Index gibt, am besten alle lesen, aber ggf. ist der Eintrag im Kapitel über scrpage2 von größerer Relevanz, da Du scrpage2 verwendest.

brundle
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 19. Mai 2010, 16:12

Beitrag von brundle »

habe mir aus der koma-script anleitung folgenden befehl gebastelt:
\renewcommand{\chaptermark}[1]{\markright{\#1}} 
allerdings wird dann anstatt dem chapter "contents" in der kopfzeile angezeigt.
was ist falsch am code?

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Beitrag von DonCube »

\documentclass[oneside,a4paper,10pt]{scrreprt}
\usepackage[english]{babel}
\usepackage[headsepline]{scrpage2} %Trennlinie
\usepackage{blindtext}


%Alles leeren damit eigene Definition greift
\clearscrheadfoot
%Kopfzeile
\ihead{\leftmark}
\ohead{\rightmark}
%Automatische Kolumnen aktivieren
\automark[section]{chapter}
%pagestyle wählen
\pagestyle{scrheadings}

\begin{document}
\pagenumbering{roman}
\tableofcontents

\newpage

\pagenumbering{arabic}

\chapter{blabla}
\section{blabla}
\blindtext[5]

\end{document}

So sollte es gehen. Irgendwie hast du die Reihenfolge durcheinander gebracht. Übrigens bezüglich Seitenummerierung sind auch:

Frontmatter
Mainmatter
Backmatter



Interessante Befehle.....

Gruß
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Antworten