section, subsection in Kopfzeile mit fancyhdr Thema ist als GELÖST markiert

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


Hannes2272

section, subsection in Kopfzeile mit fancyhdr

Beitrag von Hannes2272 »

Hallo Leute,
ich suche schon eine Zeit lang nach einer Möglichkeit mir mit fancyhdr eine Custom-Kopf-/Fußzeile zu machen und dabei dann auf JEDER Seite in die Kopfzeile die Nummer und den Namen der jeweils ersten Section, ODER Subsection (ODER Subsubsection, ODER Paragraph, ODER Subparagraph) haben - also einfach jeweil die erste Überschrift (egal welche Art) in die Kopfzeile schreiben. Nur eine, erste Überschrift. Auf jeder Seite. Keine Unterscheidung ob gerade oder ungerade Seite.

Ich habe etwas probiert, aber ich kam zu nichts...
Am Anfang wäre ich ja schonmal zufrieden, wenn es mit Section und Subsection funktioniert.

Habe mit \leftmark und \rightmark gespielt, aber habe das Problem, dass die gewünschte Überschrift manchmal in leftmark und manchmal in rightmark steht...
\documentclass[10pt]{article}
\PassOptionsToPackage{a4paper,twoside,width=165mm,top=20mm,bottom=35mm}{geometry}

\usepackage{polyglossia}
\usepackage{geometry}
\usepackage{fancyhdr} % custom head-/foot-line

\setdefaultlanguage[variant=austrian,latesthyphen=true]{german}
\geometry{centering}

\pagestyle{fancy} % eigener Seitenstil
\fancyhf{} % alle Kopf- und Fußzeilenfelder bereinigen

%TODO: set head-, footline
\fancyhead[L] %	Kopfzeile links
{
	\leftmark\ ooo \rightmark % <-- sollte geändert werden
}

\fancyhead[R] %	Kopfzeile recths
{
	\thepage
}

\begin{document}
\section{Überschrift-Ebene1-1}
1. Seite - hier sollte "1 Überschrift-Ebene1-1" in der Kopfzeile stehen
\\Some Text

\subsection{Überschrift-Ebene2-1.1}
Some Text

\newpage
2. Seite - hier sollte "1.2 Überschrift-Ebene2-1.2" in der Kopfzeile stehen
\\Some Text

\subsection{Überschrift-Ebene2-1.2}
Some Text

\section{Überschrift-Ebene1-2}
Some Text

\newpage
3. Seite - hier sollte "2 Überschrift-Ebene1-2" in der Kopfzeile stehen (wenn auf aktueller Seite keine Überschrift steht, dann solllte die letzte Überschrift der vorherigen Seite übernommen werden...)
\\Some Text

\newpage
4. Seite - hier sollte "2 Überschrift-Ebene1-2" in der Kopfzeile stehen
\\Some Text

\newpage
5. Seite - hier sollte "2.1 Überschrift-Ebene2-2.1" in der Kopfzeile stehen
\\Some Text

\subsection{Überschrift-Ebene2-2.1}
Some Text

\newpage
6. Seite - hier sollte "2.1 Überschrift-Ebene2-2.1" in der Kopfzeile stehen - von vorheriger Seite
\\Some Text

\newpage
7. Seite - hier sollte "2.1 Überschrift-Ebene2-2.1" in der Kopfzeile stehen - von vorherigen Seiten
\\Some Text
% usw...
\end{document}
Ist das überhaupt irgendwie möglich, was ich da vorhabe? Das Ganze mit Section, Subsection sollte schon iwie funktionieren denke ich... Ist es aber dann auch noch möglich, wenn man zB. subsubsection und paragraph mitnehmen will/mit berücksichtigen will?

Danke Euch ;)
lg

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

\documentclass[10pt]{article}
\PassOptionsToPackage{a4paper,twoside,width=165mm,top=20mm,bottom=35mm}{geometry}

\usepackage{polyglossia}
\usepackage{geometry}
\usepackage{fancyhdr} % custom head-/foot-line

\setdefaultlanguage[variant=austrian,latesthyphen=true]{german}
\geometry{centering}

\pagestyle{fancy} % eigener Seitenstil
\fancyhf{} % alle Kopf- und Fußzeilenfelder bereinigen

%TODO: set head-, footline
\chead{\rightmark}
\rhead{\thepage}

\renewcommand\sectionmark[1]{\markright{\thesection~#1}}
\renewcommand\subsectionmark[1]{\markright{\thesubsection~#1}}
\renewcommand\subsubsectionmark[1]{\markright{\thesubsubsection~#1}}
\renewcommand\paragraphmark[1]{\markright{#1}} %???

\begin{document}
\section{Überschrift-Ebene1-1}
1. Seite - hier sollte "1 Überschrift-Ebene1-1" in der Kopfzeile stehen
\\Some Text

\subsection{Überschrift-Ebene2-1.1}
Some Text

\newpage
2. Seite - hier sollte "1.2 Überschrift-Ebene2-1.2" in der Kopfzeile stehen
\\Some Text

\subsection{Überschrift-Ebene2-1.2}
Some Text

\section{Überschrift-Ebene1-2}
Some Text

\newpage
3. Seite - hier sollte "2 Überschrift-Ebene1-2" in der Kopfzeile stehen (wenn auf aktueller Seite keine Überschrift steht, dann solllte die letzte Überschrift der vorherigen Seite übernommen werden...)
\\Some Text

\newpage
4. Seite - hier sollte "2 Überschrift-Ebene1-2" in der Kopfzeile stehen
\\Some Text

\newpage
5. Seite - hier sollte "2.1 Überschrift-Ebene2-2.1" in der Kopfzeile stehen
\\Some Text

\subsection{Überschrift-Ebene2-2.1}
Some Text

\newpage
6. Seite - hier sollte "2.1 Überschrift-Ebene2-2.1" in der Kopfzeile stehen - von vorheriger Seite
\\Some Text

\newpage
7. Seite - hier sollte "2.1 Überschrift-Ebene2-2.1" in der Kopfzeile stehen - von vorherigen Seiten
\\Some Text
% usw...
\end{document}

Hannes2272

Vielen Dank! --> Genau so wollte ich es

Beitrag von Hannes2272 »

Vielen Dank,
das war die erhoffte Antwort, genau so wollte ich es...

Ich habe das Beispiel noch ein bisschen ausgebaut, vl. hilft es jemanden weiter der mal dasselbe sucht:
\documentclass[10pt]{article}
\PassOptionsToPackage{a4paper,twoside,width=165mm,top=20mm,bottom=35mm}{geometry}
\usepackage{polyglossia}
\usepackage{geometry}
\usepackage{fancyhdr} % custom head-/foot-line
\setdefaultlanguage[variant=austrian,latesthyphen=true]{german}
\geometry{centering}
% Inhaltsverzeichnis: Ebene hinzufügen
\setcounter{tocdepth}{4} % \paragraph in inhaltsverzeichnis mit nummer
\setcounter{secnumdepth}{4} % \paragraph im text mit nummer
\setcounter{tocdepth}{5} % \subparagraph in inhaltsverzeichnis mit nummer
\setcounter{secnumdepth}{5} % \subparagraph im text mit nummer
% Kopf-/Fußzeile
\pagestyle{fancy} % eigener Seitenstil
\fancyhf{} % alle Kopf- und Fußzeilenfelder bereinigen
%TODO: set head-, footline
\fancyhead[L] %	Kopfzeile links
{
	\rightmark % <-- sollte geändert werden
}
\fancyhead[R] %	Kopfzeile recths
{
	\thepage
}

% set \markright for setting \rightmark
\renewcommand\sectionmark[1]{\markright{\thesection~#1}} % mit Nummer
%\renewcommand\sectionmark[1]{\markright{#1}} % ohne Nummer
\renewcommand\subsectionmark[1]{\markright{\thesubsection~#1}} % mit Nummer
%\renewcommand\subsectionmark[1]{\markright{#1}} % ohne Nummer
\renewcommand\subsubsectionmark[1]{\markright{\thesubsubsection~#1}} % mit Nummer
%\renewcommand\subsubsectionmark[1]{\markright{#1}} % ohne Nummer
\renewcommand\paragraphmark[1]{\markright{\theparagraph~#1}} % mit Nummer
%\renewcommand\paragraphmark[1]{\markright{#1}} % ohne Nummer
\renewcommand\subparagraphmark[1]{\markright{\thesubparagraph~#1}} % mit Nummer
%\renewcommand\subparagraphmark[1]{\markright{#1}} % ohne Nummer

\begin{document}
\markright{Custom-Text}
\tableofcontents
\newpage

\section{Überschrift-Ebene1-1}
1. Seite - hier sollte "1 Überschrift-Ebene1-1" in der Kopfzeile stehen
\\Some Text
\subsection{Überschrift-Ebene2-1.1}
Some Text
\newpage

2. Seite - hier sollte "1.2 Überschrift-Ebene2-1.2" in der Kopfzeile stehen
\\Some Text
\subsection{Überschrift-Ebene2-1.2}
Some Text
\subsubsection{subsubTest1}
Some Text
\paragraph{paragraphTest1}
Some Text
%\section{Überschrift-Ebene1-2}
Some Text
\newpage

3. Seite - hier sollte "1.2.1.1 paragraphTest1" in der Kopfzeile stehen (wenn auf aktueller Seite keine Überschrift steht, dann solllte die letzte Überschrift der vorherigen Seite übernommen werden...)
\\Some Text
\newpage

4. Seite - hier sollte "1.2.1.1 paragraphTest1" in der Kopfzeile stehen
\\Some Text
\newpage

5. Seite - hier sollte "1.2.1.2 paragraphTest2" in der Kopfzeile stehen
\\Some Text
\paragraph{paragraphTest2}
\subsection{Überschrift-Ebene2-1.3}
Some Text
\newpage

6. Seite - hier sollte "1.3 Überschrift-Ebene2-1.3" in der Kopfzeile stehen - von vorheriger Seite
\\Some Text
\newpage

7. Seite - hier sollte "1.3 Überschrift-Ebene2-1.3" in der Kopfzeile stehen - von vorherigen Seiten
\\Some Text
% usw...
\end{document}
lg
Hannes :D

Hannes2272

oh, sry

Beitrag von Hannes2272 »

das "sollte geändert werden" gehört natürlich weg nun... :roll:

Antworten