<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to HowTo_PageHeadBackgroundColor</title><link>https://sourceforge.net/p/koma-script/wiki-de/HowTo_PageHeadBackgroundColor/</link><description>Recent changes to HowTo_PageHeadBackgroundColor</description><atom:link href="https://sourceforge.net/p/koma-script/wiki-de/HowTo_PageHeadBackgroundColor/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 08 Jul 2025 08:28:09 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/koma-script/wiki-de/HowTo_PageHeadBackgroundColor/feed" rel="self" type="application/rss+xml"/><item><title>HowTo_PageHeadBackgroundColor modified by Markus Kohm</title><link>https://sourceforge.net/p/koma-script/wiki-de/HowTo_PageHeadBackgroundColor/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="wie-eine-hintergrundfarbe-fur-den-seitenkopf-festgelegt-werden-kann"&gt;Wie eine Hintergrundfarbe für den Seitenkopf festgelegt werden kann&lt;/h1&gt;
&lt;p&gt;Die KOMA-Script-Anleitung &lt;a class="" href="https://www.ctan.org/pkg/koma-script/scrguide-de.pdf" rel="nofollow"&gt;&lt;code&gt;scrguide-de.pdf&lt;/code&gt;&lt;/a&gt; zeigt eine Kopfzeile mit gefärbtem Hintergrund. Die Frage, wie man dergleichen für ein beliebiges Dokument erreichen kann, drängt sich daher fast auf.&lt;/p&gt;
&lt;p&gt;Bei KOMA-Script sind für Kopf- und Fuß-Definitionen, die über die Möglichkeiten der KOMA-Script-Klassen hinaus gehen, die Paket &lt;a class="" href="https://www.ctan.org/pkg/scrlayer" rel="nofollow"&gt;&lt;code&gt;scrlayer&lt;/code&gt;&lt;/a&gt; und &lt;a class="" href="https://www.ctan.org/pkg/scrlayer-scrpage" rel="nofollow"&gt;&lt;code&gt;scrlayer-scrpage&lt;/code&gt;&lt;/a&gt; zuständig. Dabei bietet das Paket &lt;code&gt;scrlayer&lt;/code&gt; mit der Möglichkeit der Ebenen-Definition und der Definition von Seitenstilen, die sich aus der Anwendung dieser Ebenen zusammensetzen, die Grundlage. Das Paket &lt;code&gt;scrlayer-scrpage&lt;/code&gt; stellt eine Anwendung dieser Grundlagen dar, die eine nahtlose und komfortable Integration der Ebenen-Seitenstile sowohl mit den KOMA-Script-Klassen als auch den Standardklassen und vielen anderen Klassen, die auf diesen beiden Familien basieren,  bietet.&lt;/p&gt;
&lt;p&gt;Um nun den Hintergrund des Seitenkopfes einzufärben, definiert man einfach eine neue Ebene:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\DeclareLayer&lt;/span&gt;[
  head,
  background,
  contents=&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\color&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;DeepSkyBlue3&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\rule&lt;/span&gt;&lt;span class="na"&gt;[-\dp\strutbox]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\layerwidth&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\layerheight&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;
]&lt;span class="nb"&gt;{&lt;/span&gt;head.background&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Dabei legt die Eigenschaft &lt;code&gt;head&lt;/code&gt; die Position und Größe der Ebene so fest, dass diese genau den Seitenkopf umfasst. Man könnte Position und Größe auch über die Eigenschaft &lt;code&gt;area&lt;/code&gt;  oder einzeln über &lt;code&gt;voffset&lt;/code&gt;, &lt;code&gt;hoffset&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt; und &lt;code&gt;width&lt;/code&gt; festlegen. &lt;code&gt;head&lt;/code&gt; ist hier eine willkommene Vereinfachung. In der Anleitung sind weitere solche Vereinfachungen für andere Bereiche der Seiten dokumentiert.&lt;/p&gt;
&lt;p&gt;Die Eigenschaft &lt;code&gt;background&lt;/code&gt; besagt, dass es sich um eine Hintergrundebene handelt, also eine Ebene, die vor dem eigentlichen Seitentext ausgegeben werden soll. &lt;code&gt;scrlayer-scrpage&lt;/code&gt; gibt den Inhalt des Seitenkopfes selbst, also in der Regel den Kolumnentitel mit der Wiederholung von Kapitel- oder Abschnittsüberschriften, ebenfalls mit dieser Eigenschaft aus. Würde man stattdessen &lt;code&gt;foreground&lt;/code&gt; verwenden, würde also der farbige Balken &lt;em&gt;über&lt;/em&gt; dem eigentlichen Kopfinhalt ausgegeben und diesen somit überschreiben. Wird keine der beiden Eigenschaften explizit angegeben, so würde in der Voreinstellung der Inhalt sowohl im Hintergrund als auch im Vordergrund ausgegeben und damit ebenfalls der eigentliche Kopfinhalt überschrieben.&lt;/p&gt;
&lt;p&gt;Als Inhalt wird nach der Änderung der aktuellen Farbe einfach eine &lt;code&gt;\rule&lt;/code&gt; der Größe &lt;code&gt;\layerwidth&lt;/code&gt; und &lt;code&gt;\layerheight&lt;/code&gt; ausgegeben. Die beiden Anweisungen &lt;code&gt;\layerwidth&lt;/code&gt; und &lt;code&gt;\layerheight&lt;/code&gt; können innerhalb einer Ebenendefinition wie Längen verwendet werden und geben die Breite und Höhe der aktuellen Ebene wieder. Das ist insbesondere bei Ebenen praktisch, die nicht über die explizite Angabe von Position und Größe definiert wurden, sondern über Vereinfachungen wie &lt;code&gt;head&lt;/code&gt;. Da eine &lt;code&gt;\rule&lt;/code&gt; normalerweise &lt;em&gt;auf&lt;/em&gt; der Grundlinie steht, wird diese noch um die Tiefe einer Standardtextzeile &lt;code&gt;\dp\strutbox&lt;/code&gt; nach unten verschoben, so dass sie tatsächlich genau den Kopfbereich umfasst.&lt;/p&gt;
&lt;p&gt;Alternativ zur Verschiebung über das optionale Argument von &lt;code&gt;\rule&lt;/code&gt; könnte man die Ebene übrigens statt als Text-Ebene auch als Bild-Ebene deklarieren:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\DeclareLayer&lt;/span&gt;[
  background,
  mode=picture,
  head,
  contents=&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\color&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;DeepSkyBlue3&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\rule&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\layerwidth&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\layerheight&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;
]&lt;span class="nb"&gt;{&lt;/span&gt;head.background&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Damit erfolgt die Ausgabe von &lt;code&gt;contents&lt;/code&gt; nicht auf der Grundlinie, sondern ausgehend vom unteren Rand der Ebene. Dies ist auch nützlich, wenn man mit einer &lt;code&gt;picture&lt;/code&gt;-Umgebung oder &lt;a class="" href="https://www.ctan.org/pkg/pgf" rel="nofollow"&gt;TikZ&lt;/a&gt; in die Ebene zeichnen will, beispielsweise um mit einem Farbverlauf statt einer einzelnen Farbe zu arbeiten.&lt;/p&gt;
&lt;p&gt;Zusätzlich zur Deklaration der Ebene muss man natürlich noch dafür sorgen, dass die Ebene auch verwendet wird. Dazu fügt man die Ebene einem Seitenstil hinzu. &lt;code&gt;scrlayer&lt;/code&gt; bietet die Möglichkeit, Ebenen wahlweise am Anfang oder am Ende eines Ebenen-Seitenstils oder auch vor oder nach einem bestimmten anderen Seitenstil einzufügen. Wir wollen, dass die Farbe im Hintergrund und damit als erstes ausgegeben wird, also fügen wir sie mit &lt;code&gt;\AddLayersAtBeginOfPageStyle&lt;/code&gt; ganz am Anfang ein.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\documentclass&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;scrartcl&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="na"&gt;[x11names]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;xcolor&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="na"&gt;[automark]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;scrlayer-scrpage&lt;span class="nb"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;blindtext&lt;span class="nb"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;\DeclareLayer&lt;/span&gt;[
  background,
  mode=picture,
  head,
  contents=&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\color&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;DeepSkyBlue3&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\rule&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\layerwidth&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\layerheight&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;
]&lt;span class="nb"&gt;{&lt;/span&gt;head.background&lt;span class="nb"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;\AddLayersAtBeginOfPageStyle&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;scrheadings&lt;span class="nb"&gt;}{&lt;/span&gt;head.background&lt;span class="nb"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\title&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Titel&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\author&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Autor&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\maketitle&lt;/span&gt;
&lt;span class="k"&gt;\blinddocument&lt;/span&gt;
&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Da bei Verwendung von &lt;code&gt;scrartcl&lt;/code&gt; die Voreinstellung von &lt;code&gt;scrlayer-scrpage&lt;/code&gt; der &lt;code&gt;plain&lt;/code&gt;-Seitenstil &lt;code&gt;plain.scrheadings&lt;/code&gt; keinen Kopfinhalt hat, würde es keinen Sinn ergeben, diesen Seitenstil mit dem Kopfhintergrund zu versehen. Daher wird die Ebene im Beispiel nur dem &lt;code&gt;headings&lt;/code&gt;-Stil &lt;code&gt;scrheadings&lt;/code&gt; hinzugefügt.&lt;/p&gt;
&lt;p&gt;Wollte man die Ebene allen Ebenen-Seitenstilen (auch &lt;code&gt;empty&lt;/code&gt;!) hinzufügen, so könnte man einfach&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\AddLayersAtBeginOfPageStyle&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;@everystyle@&lt;span class="nb"&gt;}{&lt;/span&gt;head.background&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;verwenden.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Markus Kohm</dc:creator><pubDate>Tue, 08 Jul 2025 08:28:09 -0000</pubDate><guid>https://sourceforge.net41c4f42858d669ca443345223514f4d4b0420c86</guid></item></channel></rss>