Sie sind hier

Farbig hinterlegte Kopfzeilen

In der Komödie 1/2006 stand ein Aufsatz, wie man mit den Mitteln von KOMA-script komplette Kopfzeilen farbig hinterlegt.

Ich wollte die Anleitung nun verwenden mit scrlayer-scrpage, aber es gibt ein kleines Problem: der Farbbalken im Kopf hat auf der ersten Seite ein paar Millimeter Abstand zur oberen Seitenkante, auf der nächsten Seite schon weniger und auf der dritten Seite (Titelseite nicht mitgerechnet) fehlt der Abstand.

Außerdem musste ich die Beschriftung in der Kopfzeile mit einer "raisebox" anheben, damit sie überhaupt im Kopf gedruckt wird.

Vielleicht weiß jemand, wie man mit dem heutigen KOMA-script Kopfzeilen besser farbig hinterlegt. Jedenfalls wäre ich dankbar für einen Hinweis, wie man den Farbbalken daran hindert, sich ein wenig nach oben zu verschieben im Laufe der Seiten.

\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half,
x11names, headheight=3em]{scrartcl}
\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc} \usepackage{babel,
 xcolor, scrlayer-scrpage, blindtext}
 
\setheadwidth{page}
\colorlet{headbackground}{DeepSkyBlue3}
 
\newpagestyle{coloredhead}{% 
  {\makebox[0pt][l]{% 
      \color{headbackground}% 
      \rule[\dp\strutbox]{\linewidth}{\headheight}}% 
    \makebox[0pt][l]{}% 
    \makebox[\linewidth]{\raisebox{3ex}{\textcolor{white}{\textbf{\textsc{Hier steht der Text der Kopfzeile}}}}{}}% 
    \makebox[0pt][r]{}% 
}% 
{\makebox[0pt][l]{% 
    \color{headbackground}% 
    \rule[\dp\strutbox]{\linewidth}{\headheight}}% 
  \makebox[0pt][l]{}% 
  \makebox[\linewidth]{\raisebox{3ex}{\textcolor{white}{\textbf{\textsc{Hier steht der Text der Kopfzeile}}}}}% 
  \makebox[0pt][r]{}% 
}% 
{\makebox[0pt][l]{% 
    \color{headbackground}% 
    \rule[\dp\strutbox]{\linewidth}{\headheight}}% 
  \makebox[0pt][l]{}% 
  \makebox[\linewidth]{\raisebox{3ex}{\textcolor{white}{\textbf{\textsc{Hier steht der Text der Kopfzeile}}}}}% 
  \makebox[0pt][r]{}% 
}% 
}{% 
{\pagemark\hfill}% 
{\hfill\pagemark}% 
{\hfill\pagemark\hfill}% 
} 
\pagestyle{coloredhead}
 
\title{Titel}
 
\begin{document}
\maketitle{}
 
\blinddocument
 
\end{document}

In Deinem MWE fehlt schlicht ein Minus:

\rule[-\dp\strutbox]{\linewidth}{\headheight}}%

Deshalb wird bei Dir die farbige Linie in die falsche Richtung verschoben. Dadurch ist die benötigte Höhe für die Kopfzeile größer als die eingestellte, was scrlayer-scrpage (im Gegensatz zu scrpage2) auf den Folgeseiten automatisch korrigiert. Auf der nächsten Seite ist die Kopfzeilenhöhe damit zwar etwas größer, aber der kopfzeilenhohe Balken wird ja wieder nach oben verschoben, so dass die Kopfzeilenhöhe erneut vergrößert wird ... Dadurch entsteht das von von Dir beschriebene Verhalten. Gleichzeitig bekommst Du aber für jede Seite mit dem Farbbalken eine Warnung, dass die Kopfzeilenhöhe zu gering ist und vergrößert wird.

Bei Verwendung von scrlayer-scrpage bietet sich allerdings die Definition einer zusätzlichen Ebene an.

Falls Du nur den Bereich der Kopfzeile farblich hinterlegen möchtest, dann findest Du ein ausführliches Beispiel dafür in der KOMA-Script Anleitung oder dem Buch im Abschnitt "Definition komplexer Seitenstile" im Kapitel "Zusätzliche Möglichkeiten von scrlayer-scrpage".

Wenn Du den gesamten Kopfbereich färben möchtest, dann wäre das folgende eine Möglichkeit:

\documentclass[pagesize, ngerman, fontsize=12pt, parskip=half,
  x11names,headheight=3em]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel,xcolor,blindtext,layout}
 
\usepackage[automark]{scrlayer-scrpage}
 
\DeclareLayer[{% neue Ebene
    background,
    align=lt,
    area={0pt}{0pt}{\paperwidth}{\dimexpr\voffset+2.54cm-\headsep\relax},
    contents={\color{DeepSkyBlue3}\rule{\layerwidth}{\layerheight}}
}]{scrheadings.head.background}
 
%% zu allen Seitenstilen hinzufügen
\AddLayersAtBeginOfPageStyle{@everystyle@}{scrheadings.head.background}
 
%% alternativ zu bestimmten Seitenstilen hinzufügen:
%\AddLayersAtBeginOfPageStyle{scrheadings}{scrheadings.head.background}
%\AddLayersAtBeginOfPageStyle{plain.scrheadings}{scrheadings.head.background}
 
% Inhalt von Kopf- und Fußzeile
\clearpairofpagestyles
\chead{\headmark}
\cfoot[\pagemark]{\pagemark}
 
\begin{document}
\title{Titel}
\author{Autor}
\maketitle
\blinddocument
\end{document}

Die bei der Ebenendeklaration verwendeten Optionen sind alle in der Anleitung bzw. im Buch erklärt. Und Du müsstest noch entscheiden, ob alle Seiten den farbigen Kopf haben sollen oder zum Beispiel nur die mit dem Seitenstil scrheadings.

Gruß
Elke

Ja danke. Klappt in beiden Varianten.

Wie mir das Minus abhanden kam, weiß ich nicht, es fehlt ja in allen drei rule-Definitionen. Wie hast Du das gemerkt? Wahrscheinlich hast Du den Code verstanden, im Gegensatz zu mir...

Ich habe den Code aus dem PDF nicht abgetippt, sondern das PDF in Acrobat Pro geöffnet, den Code -- leider samt Zeilennummern -- markiert und dann "als Tabelle" in Libre Office Calc importiert, eine Kolumne die Zeilennummern, die zweite Kolumne den Code. Dabei hat wohl irgendeine Instanz zeigen wollen, wie schlau sie ist und das Minus einkassiert. Grumpf. Ich bin überhaupt nicht auf die Idee gekommen, es könnte sich um eine Fehler beim Kopieren handeln.

Herzlichen Dank also, mit der zweiten Lösung mit scrlayer werde ich noch herumspielen.

Gruß,
Alexander

In meinem Beispiel ist die Berechnung der Höhe des Layers nicht korrekt. Der Layer sollte stattdessen wie folgt definiert werden

\DeclareLayer[{% neue Ebene
    background,
    align=lt,
    area={0pt}{0pt}{\paperwidth}{\dimexpr\voffset+1in+\topmargin+\headheight\relax},
    contents={\color{DeepSkyBlue3}\rule{\layerwidth}{\layerheight}}
}]{scrheadings.head.background}
Comments for "Farbig hinterlegte Kopfzeilen" abonnieren