Sie sind hier

Kopfzeilen 2. Anlauf

Ich habe mein Problem nochmals überarbeitet, bin aber an einigen Stellen an meine (bisherigen) Grenzen gestoßen, da mir noch Details und Beispiele fehlen. Eigentlich funktioniert in der Regel alles so, wie ich es gern haben will, aber manchmal (in Extremsituationen) halt dann doch nicht so. Das entsprechende Verhalten ist im Code beschrieben.

Dann ist da noch an deiner Anmerkung, dass man \thesection nicht in die Kopfteile schreiben soll. Mir ist aber bislang nichts besseres eingefallen.

Meine Bitte: Ich kann nicht erwarten, dass du mir diese Probleme im Detail bereinigst. Ich wäre aber dennoch dankbar, wenn ich weitere Details (etwa Hinweise auf Beispiele) bekomme, mit Hilfe deren ich mich weiter einarbeiten kann.

Danke im voraus.

Hier mein LaTeX-Code:

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[%		 		  				 
	,parskip			= half		
	,chapterprefix	= true
	,numbers			= noenddot		
	]{scrbook} 	
% ---------------------------------------------------------------------
\usepackage{selinput}    
\SelectInputMappings{%  
  adieresis={ä},
  germandbls={ß},
  Euro={},
}
\usepackage[ngerman]{babel}
\usepackage{lipsum,mwe}
% ---------------------------------------------------------------------
%%% Formatierung der Gliederungen %%%
% --
%% CHAPTER
\renewcommand*{\thechapter}{\Roman{chapter}}
\addtokomafont{chapter}{\centering\scshape} 
%% ----
%% TODO: Abstand zwischen Kapitel I und der eigentlichen Überschrift kleiner
%% ----
%% SECTION
\newcounter{mysection}	% Wegen Kopfzeile Kap. I, $x ohne Punkt	
\renewcommand{\themysection}{\S\hspace{2pt}\arabic{section}}	
\renewcommand*{\thesection}{\S\hspace{2pt}\arabic{section}.---} % Geht dies auch anders?
\addtokomafont{section}{\centering}
%% SUBSECTION
\newcounter{mysubsection}
\renewcommand*{\themysubsection}{\arabic{subsection}}	% Wegen Kopfzeile Kap. I, $x ohne Punkt
\renewcommand*{\thesubsection}{\arabic{subsection}.} 	% Geht dies auch anders?
%% -- Eintrag in das TOC
% KAPITEL
\renewcommand*{\addchaptertocentry}[2]{%  Seite 524 / http://www.komascript.de/node/1780
   \ifstr{#1}{}{% keine Nummer:
    \addtocentrydefault{chapter}{#1}{#2}% wie bisher
   }{% mit Nummer:
    \addtocentrydefault{chapter}{}{\chapapp\ #1.--- #2}%
	}%
}
% SECTION
\renewcommand*{\addsectiontocentry}[2]{%  Seite 526 / 
	\addtocontents{toc}{\protect\addvspace{\protect.5\baselineskip}}  % Leerzeile
  		\ifstr{#1}{}{% keine Nummer:
    			\addtocentrydefault{section}{#1}{#2}% wie bisher
  			}{% mit Nummer:
    			\addtocentrydefault{section}{}{#1{\enskip\itshape#2}}%
  }%
}
% ----
% TODO: Eintrag Section in TOC in der Form §x. und nicht §x.-
% ----
% SUBSECTION
\renewcommand*{\addsubsectiontocentry}[2]{%  Seite 526 / 
  \ifstr{#1}{}{% keine Nummer:
    \addtocentrydefault{subsection}{#1}{#2}% 
  }{% mit Nummer:
	   \addtocentrydefault{subsection}{}{#1\autodot{\enskip}{#2}}%
  }%
}
%%% Kopf/Fuss %%%
\usepackage{scrlayer-scrpage}
\clearscrheadfoot
% 
\renewcommand*{\chapterpagestyle}{empty}
\renewcommand*{\chaptermarkformat}{}					% KOMA-script 5.5. /285
\renewcommand*{\sectionmarkformat}{}					% Ohne Abschnittsnummer
%%
\ohead[]{\pagemark}					% Seitennummer stets außen
\cehead[]{\scshape\leftmark}			% Chapter
\cohead[]{\scshape\rightbotmark}	% Section
%%
\rehead[]{\normalfont{Kap.\enskip\thechapter, \themysection}}	% Format Kap. I, §1
\lohead[]{\normalfont{Nr.\hspace{2pt}\themysubsection}}			% Format Nr. x 
								% x = Nr. der Subsection auf aktueller Seite unten 
%%%% 
\begin{document}
%
\tableofcontents
%
\chapter{Erstes Kapitel}
%%
\lipsum[1]
\section{Erstes Kapitel, erster Abschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, erster Abschnitt, erster Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, erster Abschnitt, zweiter Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, erster Abschnitt, dritter Unterabschnitt}
\lipsum[1]
\lipsum[1]
\section{Erstes Kapitel, zweiter Abschnitt}
\paragraph{TODO: }
Hier muss ich nochmals in der Literatur suchen. 
Beispielsweise ergibt \verb|\lipsum[1-3]| Nr. 2, was falsch ist, denn es muss Nr. 1 lauten. 
\verb|\lipsum[1]| ergibt Nr. 3, was aber erst auf der Seite 6 oben zum Tragen kommt (eventuell von der Seite 4 stammt). 
Also: Wo nachschauen was passiert? 
 
Textzeile (wegen oben), damit das Problem sichtbar wird.
 
\paragraph{Anmerkung: }Ansonsten ist auf den Seiten 4 und 5 alles in der Kopfzeile in Ordnung.
 
\subsection{Erstes Kapitel, zweiter Abschnitt, erster Unterabschnitt}
\lipsum[1] % \lipsum[1-3]
\subsection{Erstes Kapitel, zweiter Abschnitt, zweiter Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, zweiter Abschnitt, dritter Unterabschnitt}
\lipsum[1 - 2]
%
\section{Erstes Kapitel, dritter Abschnitt}
\subsection{Erstes Kapitel, dritter Abschnitt, erster Unterabschnitt}
\lipsum[1] % \lipsum[1-3]
\subsection{Erstes Kapitel, dritter Abschnitt, zweiter Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, dritter Abschnitt, dritter Unterabschnitt}
\lipsum[1 - 2]
%
\end{document}
Bild von Markus Kohm

Das Problem, das Du mit »Nr. 2« hast, wo eigentlich »Nr. 1« hingehört, ist genau das angesprochene Problem und der Grund, warum man die Zähler nicht direkt in die Kopfzeile schreiben darf, sondern immer über den Mark-Mechanismus gehen muss. Sonst passiert genau das, weil der Umbruch erst erfolgt, wenn die Kopfzeile bereits steht. Genau dafür hat Knuth den Mark-Mechanismus erfunden.

Aufgrund Deiner sehr kreativen Kopfzeilen wirst Du vermutlich die e-TeX-Erweiterung des Mark-Mechanismus benötigen oder die Marken auf andere Weise erweitern müssen. Wobei ich es noch immer sehr seltsam finde, dass auf den linken Seiten zwar die Nummer von Kapitel und Abschnitt aber der Titel des Kapitels steht und auf rechten Seiten zwar die Nummer des Unterabschnitts aber der Titel des Abschnitts. Hätte ich den Code nicht und daraus sehen können, was da gemacht wird, hätte ich im Leben nicht kapiert, was das für Nummern sind. OK, ich bin natürlich relativ blöd. Vielleicht ist das Werk ja nur für Leute mit einem IQ ab 150 gedacht, die das auf den ersten Blick erkennen.

Ich habe jetzt trotzdem einmal etwas gebastelt, das zeigt, was möglich ist und wie die Mark-Geschichte funktioniert. Dabei habe ich mich komplett auf die e-TeX-Erweiterungen (siehe e-TeX-Manual) gestützt und die normalen LaTeX-Mark-Anweisungen mit \markboth etc. außen vor gelassen. Ich denke, es ist leichter zu verstehen, wenn man nicht zwei Konzepte miteinander mischt. Neben den verwendeten Anweisungen gäbe es auch noch beispielsweise \topmarks. Das ist dann quasi das \botmarks der vorherigen Seite.

Außerdem habe ich die dicksten Hunde im Code beseitigt, wirklich sauber ist das so noch nicht, aber es geht schon einmal in die richtige Richtung.

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[%
  ,parskip			= half		
  ,chapterprefix	= true
  ,numbers			= noenddot		
]{scrbook} 	
% ---------------------------------------------------------------------
\usepackage{selinput}    
\SelectInputMappings{%  
  adieresis={ä},
  germandbls={ß},
  Euro={},
}
\usepackage[ngerman]{babel}
\usepackage{mwe}% KOMA: mwe lädt auch lipsum
% ---------------------------------------------------------------------
%%% Formatierung der Gliederungen %%%
% --
%% CHAPTER
\renewcommand*{\thechapter}{\Roman{chapter}}
\renewcommand*\raggedchapter{\centering}% KOMA: Kapitelüberschriften zentrieren
\addtokomafont{chapter}{\scshape}
%% ----
%% TODO: Abstand zwischen Kapitel I und der eigentlichen Überschrift kleiner
%% KOMA: Siehe \RedeclareSectionCommand in der KOMA-Script-Anleitung
%% ----
%% SECTION
\renewcommand*{\thesection}{\arabic{section}}
\renewcommand*{\sectionformat}{\S\kern2pt\thesection\autodot---}% KOMA: Nummer in der Überschrift
\renewcommand*{\addsectiontocentry}[2]{%
  \addtocontents{toc}{\protect\addvspace{\protect.5\baselineskip}}% Leerzeile,
                                % KOMA: Stört allerdings die
                                % Seitenumbruchkontrolle im
                                % Inhaltsverzeichnis, was aber wegen der
                                % halben Leerzeile ohnehin keine Rolle spielen
                                % dürte.
  \ifstr{#1}{}{%
    \addtocentrydefault{section}{#1}{#2}%
  }{%
    \addtocentrydefault{section}{\S\kern2pt#1---}{\itshape #2}% KOMA: Wenn wir mehr
                                % Platz für die Nummer brauchen, machen wir
                                % das mit \RedeclareSectionCommand!
  }%
}
\addtokomafont{section}{\centering}% KOMA: Das ist jenseits der
                                % Spezifikation. Diesseits wäre, entweder
                                % \raggedsection oder \sectionlinesformat
                                % umzudefinieren. 
%% SUBSECTION
\renewcommand*{\thesubsection}{\arabic{subsection}}
\renewcommand*{\subsectionformat}{\thesubsection.\enskip}% KOMA: Nummer in der Überschrift
%% -- Eintrag in das TOC
% KAPITEL
\renewcommand*{\addchaptertocentry}[2]{%  Seite 524 / http://www.komascript.de/node/1780
  \ifstr{#1}{}{% keine Nummer:
    \addtocentrydefault{chapter}{#1}{#2}% wie bisher
  }{% mit Nummer:
    \addtocentrydefault{chapter}{\chapapp\ #1.---}{#2}% KOMA: Wenn wir mehr
                                % Platz für die Nummer brauchen, machen wir
                                % das mit \RedeclareSectionCommand!
  }%
  % KOMA: Hier fehlt Code für die Gleitumgebungsverzeichnisse, so dass diverse
  % Optionen von KOMA-Script nicht mehr funktionieren!
}
\RedeclareSectionCommand[tocnumwidth=6em]{chapter}% KOMA: Siehe Kommentar oben.
%%% Kopf/Fuss %%%
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles% KOMA: so heißt die Anweisung jetzt richtig
% 
\renewcommand*{\chapterpagestyle}{empty}
\renewcommand*{\chaptermarkformat}{Kap.\enskip\thechapter}
\renewcommand*{\sectionmarkformat}{\thesection}
\renewcommand*{\subsectionmarkformat}{Nr.~\thesubsection}
%%
\ohead*{\pagemark}% Seitennummer stets außen im Kopf
\newmarks\chapternumbermark
\newmarks\chaptertitlemark
\newmarks\sectionnumbermark
\newmarks\sectiontitlemark
\newmarks\subsectionnumbermark
\newmarks\subsectiontitlemark
\renewcommand*{\chaptermark}[1]{%
  \marks\chapternumbermark{\chaptermarkformat}%
  \marks\chaptertitlemark{#1}%
}
\renewcommand*{\sectionmark}[1]{%
  \marks\sectionnumbermark{\sectionmarkformat}%
  \marks\sectiontitlemark{#1}%
}
\renewcommand*{\subsectionmark}[1]{%
  \marks\subsectionnumbermark{\subsectionmarkformat}%
  \marks\subsectiontitlemark{#1}%
}
 
\cehead{\scshape\firstmarks\chaptertitlemark}	% Chapter
\cohead{\scshape\botmarks\sectiontitlemark}	% Section
%%
\rehead{\normalfont\firstmarks\chapternumbermark, \S\kern2pt\botmarks\sectionnumbermark}	% Format Kap. I, §1
\lohead{\normalfont\botmarks\subsectionnumbermark} % Format Nr. x 
			% x = Nr. der Subsection auf aktueller Seite unten 
%%%% 
\begin{document}
%
\tableofcontents
%
\chapter{Erstes Kapitel}
%%
\lipsum[1]
\section{Erstes Kapitel, erster Abschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, erster Abschnitt, erster Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, erster Abschnitt, zweiter Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, erster Abschnitt, dritter Unterabschnitt}
\lipsum[1]
\lipsum[1]
\section{Erstes Kapitel, zweiter Abschnitt}
\paragraph{TODO: }
Hier muss ich nochmals in der Literatur suchen. 
Beispielsweise ergibt \verb|\lipsum[1-3]| Nr. 2, was falsch ist, denn es muss Nr. 1 lauten. 
\verb|\lipsum[1]| ergibt Nr. 3, was aber erst auf der Seite 6 oben zum Tragen kommt (eventuell von der Seite 4 stammt). 
Also: Wo nachschauen was passiert? 
 
Textzeile (wegen oben), damit das Problem sichtbar wird.
 
\paragraph{Anmerkung: }Ansonsten ist auf den Seiten 4 und 5 alles in der Kopfzeile in Ordnung.
 
\subsection{Erstes Kapitel, zweiter Abschnitt, erster Unterabschnitt}
%\lipsum[1] % 
\lipsum[1-3]
\subsection{Erstes Kapitel, zweiter Abschnitt, zweiter Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, zweiter Abschnitt, dritter Unterabschnitt}
\lipsum[1 - 2]
%
\section{Erstes Kapitel, dritter Abschnitt}
\subsection{Erstes Kapitel, dritter Abschnitt, erster Unterabschnitt}
\lipsum[1] % \lipsum[1-3]
\subsection{Erstes Kapitel, dritter Abschnitt, zweiter Unterabschnitt}
\lipsum[1]
\subsection{Erstes Kapitel, dritter Abschnitt, dritter Unterabschnitt}
\lipsum[1 - 2]
%
\end{document}

Man muss das natürlich nicht unbedingt so machen. Vieles lässt sich auch anders lösen. Aber die generelle Richtung würde von der technischen Seite her ich so gehen – wenn ich denn einen solchen Kopf erzielen wollte.

Abstände etc. musst Du natürlich ggf. noch anpassen.

Markus, danke. Ich werde versuchen alles zu verstehen. Ich denke, dass \usepackage{emarks} in der Präambel fehlt. Mit diesem geht alles "über die Bühne". Oder hattest du ein anderes benutzt?

Schönen Abend noch.
Ulrich

--
Ulrich

Bild von Markus Kohm

Das Paket emarks wird dafür nicht benötigt. Das soll jetzt nicht heißen, dass man es nicht verwenden kann. Aber dann sollte man es auch wirklich verwenden. Es nur zu laden, ist überflüssig.

Comments for "Kopfzeilen 2. Anlauf" abonnieren