Section, Subsection und Paragraph in Kopfzeile

Schriftbild, Absätze und Auflistungen einstellen


Eduard
Forum-Guru
Forum-Guru
Beiträge: 348
Registriert: Sa 2. Mai 2015, 22:02

Section, Subsection und Paragraph in Kopfzeile

Beitrag von Eduard »

Hallo,

ich würde gerne, dass in der Kopfzeile jeweils der Titel der Section, Subsection und des Paragraph erscheint. Ich bekomme das leider bisher nur den Section-Teil hin.

Wenn Section und Subsection auf einer Seite sind, so soll Section in der Kopfzeile erscheinen.
\documentclass[12pt]{scrartcl}
\usepackage{authblk}
\usepackage[english,main=ngerman]{babel}
\usepackage[babel]{csquotes}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}
\usepackage{graphicx}				
\usepackage{geometry}
\usepackage{microtype}                		
%\geometry{a4paper} 					
\usepackage{setspace}

\usepackage[maxcitenames=5, citestyle=authoryear-ibid, style=authoryear, autocite=footnote, maxbibnames=99]{biblatex}
\DefineBibliographyStrings{german}{ 
  andothers = {et al} 
} 




\renewcommand{\thesection}{\Alph{section}}
\renewcommand{\thesubsection}{\Roman{subsection}}
\renewcommand{\thesubsubsection}{\arabic{subsubsection}}

\setcounter{secnumdepth}{\subparagraphnumdepth}
\setcounter{tocdepth}{\subparagraphtocdepth}


\AtEveryCite{% 
   \renewcommand*{\multinamedelim}{\addslash}% 
   \renewcommand*{\finalnamedelim}{\multinamedelim}% 
}

\RedeclareSectionCommand[%
  beforeskip=-0.5\baselineskip,
  afterskip=0.5\baselineskip,
  tocindent=7em, 
  tocnumwidth=2.1em
]{paragraph}

\RedeclareSectionCommand[%
  beforeskip=-0.25\baselineskip,
  afterskip=0.25\baselineskip
]{subparagraph}

\DeclareSectionCommand[,
    indent=0pt,
      tocindent=9.2em, 
     tocnumwidth=3em
  ]{subparagraph}
  
\DeclareNewSectionCommand[% 
style=section, 
level=\numexpr\subparagraphnumdepth+1\relax, 
counterwithin=subparagraph, 
beforeskip=-0.25\baselineskip, 
afterskip=0.25\baselineskip, 
indent=0pt, 
tocindent=9.2em, 
tocnumwidth=3em 
]{subsubparagraph} 

\setcounter{secnumdepth}{\subsubparagraphnumdepth} 
\setcounter{tocdepth}{\subsubparagraphtocdepth}
 

\usepackage[automark,headsepline,markcase=noupper]{scrlayer-scrpage} 
\clearmainofpairofpagestyles
\ihead{\leftmark} 
\ohead{\pagemark} 
\setkomafont{pageheadfoot}{\normalfont\normalcolor}

\begin{document}

\section{Überschrift 1}

\newpage

\subsection{Überschrift 2}

\newpage

\paragraph{Überschrift 3}

\newpage

\section{Überschrift 1}
\subsection{Überschrift 2}

\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Re: Section, Subsection und Paragraph in Kopfzeile

Beitrag von esdd »

Eduard hat geschrieben: ich würde gerne, dass in der Kopfzeile jeweils der Titel der Section, Subsection und des Paragraph erscheint. Ich bekomme das leider bisher nur den Section-Teil hin.

Wenn Section und Subsection auf einer Seite sind, so soll Section in der Kopfzeile erscheinen.
Leider verstehe ich aus der Beschreibung überhaupt nicht, was wo in der Kopfzeile stehen soll.

In einem Artikel-Dokument mehr als die Abschnitte (section) in der Kopfzeile haben zu wollen, führt auch immer wieder zu überraschenden Ergebnissen, da Abschnittsüberschriften (\section) keine neuen Seiten beginnen.

Außerdem ist der Platz in der Kopfzeile begrenzt und wenn man zuviel reinpackt, erschwert das die Orientierung im Dokument.

Eduard
Forum-Guru
Forum-Guru
Beiträge: 348
Registriert: Sa 2. Mai 2015, 22:02

Beitrag von Eduard »

Zurzeit steht bei mir in der Kopfzeile immer nur die Überschrift, die ich unter section eingegeben habe. Ich würde gerne, dass auf Seiten, auf denen section nicht erscheint, die Überschrift in der Kopfzeile erscheint, die ich unter subsection eingegeben habe. Das kann man wohl mit fancyhdr machen, aber ich habe gehört, dass man fancyhdr nicht mehr benutzten soll.

Hier wird eine Lösung angeboten:
https://texwelt.de/fragen/7688/fancyhdr ... subsection

Ich habe bei mir nun folgendes geändert:
\pagestyle{scrheadings}
\clearscrheadfoot
\ohead[\pagemark]{\pagemark}
\ihead{\ifstr{\rightbotmark}{\leftmark}{}{\rightbotmark}}
\setkomafont{pageheadfoot}{\normalfont\normalcolor}
Leider steht jetzt aber immer nur der Titel, der unter subsection eingegeben wurde. Wenn auf einer Seite section und subsection stehen würde ich gerne, dass der Titel der, der unter section eingegeben wurde erscheint.

\documentclass[12pt]{scrartcl}
\usepackage{authblk}
\usepackage[english,main=ngerman]{babel}
\usepackage[babel]{csquotes}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}
\usepackage{graphicx}            
\usepackage{geometry}
\usepackage{microtype}                      
%\geometry{a4paper}                
\usepackage{setspace}

\usepackage[maxcitenames=5, citestyle=authoryear-ibid, style=authoryear, autocite=footnote, maxbibnames=99]{biblatex}
\DefineBibliographyStrings{german}{ 
  andothers = {et al} 
} 




\renewcommand{\thesection}{\Alph{section}}
\renewcommand{\thesubsection}{\Roman{subsection}}
\renewcommand{\thesubsubsection}{\arabic{subsubsection}}

\setcounter{secnumdepth}{\subparagraphnumdepth}
\setcounter{tocdepth}{\subparagraphtocdepth}


\AtEveryCite{% 
   \renewcommand*{\multinamedelim}{\addslash}% 
   \renewcommand*{\finalnamedelim}{\multinamedelim}% 
}

\RedeclareSectionCommand[%
  beforeskip=-0.5\baselineskip,
  afterskip=0.5\baselineskip,
  tocindent=7em, 
  tocnumwidth=2.1em
]{paragraph}

\RedeclareSectionCommand[%
  beforeskip=-0.25\baselineskip,
  afterskip=0.25\baselineskip
]{subparagraph}

\DeclareSectionCommand[,
    indent=0pt,
      tocindent=9.2em, 
     tocnumwidth=3em
  ]{subparagraph}
  
\DeclareNewSectionCommand[% 
style=section, 
level=\numexpr\subparagraphnumdepth+1\relax, 
counterwithin=subparagraph, 
beforeskip=-0.25\baselineskip, 
afterskip=0.25\baselineskip, 
indent=0pt, 
tocindent=9.2em, 
tocnumwidth=3em 
]{subsubparagraph} 

\setcounter{secnumdepth}{\subsubparagraphnumdepth} 
\setcounter{tocdepth}{\subsubparagraphtocdepth}
 
\usepackage[autooneside=false,headsepline,markcase=noupper]{scrlayer-scrpage}
\automark[subsection]{section}

\pagestyle{scrheadings}
\clearscrheadfoot
\ohead[\pagemark]{\pagemark}
\ihead{\ifstr{\rightbotmark}{\leftmark}{}{\rightbotmark}}
\setkomafont{pageheadfoot}{\normalfont\normalcolor}

\begin{document}

\section{Überschrift 1}

\newpage

\subsection{Überschrift 2}

\newpage

\paragraph{Überschrift 3}

\newpage

\section{Überschrift 1}
\subsection{Überschrift 2}

\end{document}

Gast

Beitrag von Gast »

Die Sache mit dem minimal in Minimalbeispiel scheinst du noch nicht recht verstanden zu haben. Wenn du alle guten Ratschläge in den Wind schießen willst, dann suchst du eventuell nach
\documentclass{scrartcl}

\usepackage[autooneside=false]{scrlayer-scrpage}
\usepackage{blindtext}% Gut, um Minimalbeispiele klein zu halten
\automark[subsection]{section}
\begin{document}
\blinddocument
\end{document}
oder auch nach:
\documentclass{scrartcl}

\usepackage{scrlayer-scrpage}
\usepackage{blindtext}% Gut, um Minimalbeispiele klein zu halten
\automark{section}
\automark*{subsection}
\begin{document}
\blinddocument
\end{document}
oder auch nach:
\documentclass{scrartcl}

\usepackage[autooneside=false]{scrlayer-scrpage}
\usepackage{blindtext}% Gut, um Minimalbeispiele klein zu halten
\automark[section]{subsection}
\begin{document}
\blinddocument
\end{document}
wobei dabei dann schon sehr überraschende Ergebnisse auftreten können, wie man bereits an dem Beispiel sieht. Manchmal sind auch Spielereien mit \ifstr und \leftfirstmark oder \leftbotmark etc. notwendig, um irgendwie zurecht zu biegen, was man sich vorgestellt hat. Meist geht das aber irgendwann dann doch wieder in die Hose.

Aufgrund der ganzen \newpage in deinem Code würde ich ohnehin vermuten, dass du die falsche Klasse verwendest und eigentlich scrreprt mit \chapter die bessere Lösung wäre. Aber das kann ich nur vermuten, die Informationslage ist etwas dünn.

Eduard
Forum-Guru
Forum-Guru
Beiträge: 348
Registriert: Sa 2. Mai 2015, 22:02

Beitrag von Eduard »

Nun habe ich die Lösung für mein Problem gefunden:

1) Auf Seiten, auf denen nur \section steht, erscheint die Überschrift in der Kopfzeile

2) Auf Seiten, auf denen \subsection steht, erscheint die Unterüberschrift in der Kopfzeile

3) Auf Seite, auf denen \section und \subsection stehen, erscheint nur die Überschrift (\section)

\documentclass{scrartcl}

\usepackage[autooneside=false,headsepline,markcase=noupper]{scrlayer-scrpage}
\automark[subsection]{section}

\pagestyle{scrheadings}
\clearscrheadfoot
\ohead[\pagemark]{\pagemark}
\ihead{\headmark}

\begin{document}

\section{Überschrift}
\subsection{Unterüberschrift}

\newpage

\subsection{Unterüberschrift}

\end{document}

Gast

Beitrag von Gast »

Option markcase=noupper ist eine Notfalloption, die man nur dann verwenden sollte, wenn das wirklich notwendig ist. Bei Verwendung von KOMA-Script-Klassen und Paketen, die mit KOMA-Script kompatibel sind, ist es meist nicht notwendig. Option headsepline ist oftmals besser bei \documentclass untergebracht, weil dann auch andere Pakete wie typearea angemessen darauf reagieren können.

BTW: \pagestyle{scrheadings} ist durch das Laden von scrlayer-scrpage bereits Voreinstellung und damit überflüssig. \clearscrheadfoot ist veraltet. Aktuell wäre \clearpairofpagestyles, wie in Abschnitt 18.2 zu lesen. \ohead[\pagemark]{\pagemark} geht auch einfach per \ohead*{\pagemark}. In dem Fall macht das sicher keinen großen Unterschied, aber bei komplizierteren Argumenten ist die Sternvariante sicher einfacher und weniger fehleranfällig.

Ich gehe davon aus, dass das eigentliche Problem beantwortet ist und setze den Status entsprechend, was du zukünftig auch gerne selbst tun darfst.

Antworten