Das ist eine Folgefrage zu Wie kann ich Überschriften mit einer Hintergrundfarbe versehen?, die sich auf die Klasse scrartcl bezog. Versuche ich die dortige Antwort von @saputello bei Verwendung von scrbook auf die Kapitelüberschriften zu übertragen, erhalte ich

alt text

Außerdem bekomme ich (erwartungsgemäß) bei Verwendung der Option chapterprefix eine ganze Reihe von Fehlermeldungen.

Wie kann ich für Kapitelüberschriften einen farbigen Hintergrund erhalten? Ich möchte dabei keine Pakete nutzen, von denen bekannt ist, dass sie nicht mit KOMA-Script verwendet werden sollen, insbesondere nicht das Paket titlesec.

Code (angelehnt an die zitierte Antwort):

Open in Online-Editor
\documentclass{scrbook}
\usepackage{xcolor}
\usepackage[ngerman]{babel}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
}
\usepackage{blindtext}
\newsavebox\cbgbox
\newcommand*{\colorbackground}[1]{%
  \sbox\cbgbox{\color{white}\ignorespaces#1}%
  \ifdim\wd\cbgbox>.95\linewidth
    \colorbox{blue!70}{%
      \parbox[t]{\dimexpr\linewidth-2\fboxsep\relax}{\color{white}\ignorespaces#1}%
    }%
  \else
    \colorbox{blue!70}{\usebox\cbgbox}%
  \fi
}
%%%
\addtokomafont{chapter}{\colorbackground}% ACHTUNG: Muss das letzte
                                % \addtokomafont{chapter} sein!
%%%
\begin{document}
\title{Farbig hinterlegte Überschriften mit \KOMAScript}
\author{Enrico Saputello}
\maketitle

\chapter*{Vorwort}% oder auch \addchap
\blindtext
\tableofcontents
\blinddocument
\chapter{Und dann noch eine mehrzeilige Überschrift als weiteres Beispiel}
\blindtext
\end{document}

Update:

Ideal wäre es, wenn man \usekomafont{chapter} trotzdem noch "normal" an anderer Stelle verwenden kann (Danke an @Ulrike für den Hinweis). Ob der farbige Hintergrund so breit wie die Überschrift oder so breit wie der Text ist oder auf beiden Seiten symmetrisch ein klein wenig über den Textbereich hinausragt, ist mir dagegen egal.

gefragt 01 Apr '15, 12:04

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

geschlossen 06 Apr '15, 00:54

1

Siehe auch http://tex.stackexchange.com/questions/235227/background-color-across-the-entire-textwidth-for-chapter-headings-koma-script. Grundsätzlich muss man sich klar sein, dass Schriftbefehle an Stellen eingesetzt werden können, wo Boxen nichts zu suchen haben, oder seltsame Nebenwirkungen haben. Man kann ja niemanden daran hindern im Dokument irgendwo mal \usekomafont{section} zu verwenden. Ich würde also das hier nicht als Lösung sondern nur als Notlösung propagieren.

(01 Apr '15, 15:12) Ulrike Fischer

Nun am besten wäre es, wenn es vernünftige Hooks an allen sinnvollen Stellen gäbe (z.B. Anfang und Ende des Textes). KOMA patcht ja sowieso schon @startsection, dann könnte es ja noch ein paar weitere Befehle einbauen.

(01 Apr '15, 23:26) Ulrike Fischer

@Ulrike: Es gibt bereits Hooks, beispielsweise in SecDef und auch in scr@startsection. Man will aber hier sehr viel später eingreifen und außerdem nicht einfach etwas umschalten also ein paar Befehle einfügen sondern eine Box, die um einen ganz bestimmten Teil der Ausgabe gelegt werden soll.

(02 Apr '15, 08:43) saputello

@Saputello: Ich weiß, dass es Hooks gibt, aber offensichtlich keinen geeigneten -- zumindest nicht hinter dem Text-Argument. Sonst würdest du ja nicht den Schriftschalter "missbrauchen". Außerdem würde ich keine echten Boxen für den Hintergrund benutzen, sondern tikz-Marken platzieren und dann (vor der Section z.B. in \othersectionlevelsformat) mit tikz overlay den Hintergrund malen.

(02 Apr '15, 10:57) Ulrike Fischer

@Ulrike Kannst Du die tikz-Marken für Kapitel (darum geht es Elke) nicht über \chapterheadstartvskip und \chapterheadendvskip setzen?

(02 Apr '15, 11:58) saputello

@saputello: Vielleicht. Aber es wäre -- wie bei den Schriftbefehlen -- ein Hack. Ein-"vskip"-Befehl ist m.E. für Abstand da. Offizielle Hooks zu nutzen, bei denen man weiß, wo genau und unter welchen Bedingungen sie verwendet werden, wäre viel besser.

(02 Apr '15, 12:52) Ulrike Fischer

@Ulrike In der Anleitung wird aber erklärt, dass man die Anweisungen beispielsweise auch verwenden kann, um Linien über und unter Kapitelüberschriften einzufügen. Es ist also schon so etwas wie Hooks, die in der Voreinstellung für den Abstand sorgen.

Das Problem mit den ganzen Hooks ist doch, dass sie nie da sind, wo sie jemand gerade braucht und darüber hinaus, wenn sie zu häufig werden, entweder sich gegenseitig oder der Weiterentwicklung im Weg stehen.

(02 Apr '15, 13:22) saputello

Also wenn die Farbe über die ganze Linienbreite gehen soll, sind the vskip-Befehl wahrscheinlich ganz passend. Ansonsten: Ja, wahrscheinlich wird für irgendwelche Spezialfälle immer der passende Hook fehlen, und wer sie verwendet, sollte ein bisschen sorgsam umgehen. Dennoch sind offizielle Schnittstellen immer besser als "Seiteneffekte" ausnützen zu müssen.

(02 Apr '15, 14:21) Ulrike Fischer
Ergebnis 5 von 8 show 3 more comments

Mit der Version 3.19a funktionieren zwei Befehle, über die man Überschriften formatieren kann, die den chapter Überschriftenstil verwenden: \chapterlinesformat für solche Überschriften ohne Präfixzeile und \chapterlineswithprefixformat für diejenigen mit Präfixzeile. Beide Befehle erwarten drei Argumente: den Namen der Überschriftenebene, die Nummer der Überschrift und als drittes den eigentlichen Text der Überschrift. (In der Voreinstellung verwendet nur \chapter den Überschriftenstil chapter, aber man könnte weitere Überschriftenebenen entsprechend (um-)definieren.)

Mit diesen Befehlen lässt sich der Hintergrund der Kapitelüberschriften dann einfach färben.

Open in Online-Editor
\documentclass[
  chapterprefix
]{scrbook}[2015/10/03]
\usepackage[ngerman]{babel}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
}
\usepackage{blindtext}

\usepackage{xcolor}
\colorlet{chapterbackground}{blue!70}
\makeatletter
\renewcommand\chapterlinesformat[3]{%
  \colorbox{chapterbackground}{%
    \parbox[c][\dimexpr\totalheight+1em]{\dimexpr\linewidth-2\fboxsep}{%
      \raggedchapter%
      \@hangfrom{#2}#3%
    }}%
}
\renewcommand\chapterlineswithprefixformat[3]{%
  \colorbox{chapterbackground}{%
    \parbox[c][\dimexpr\totalheight+1em]{\dimexpr\linewidth-2\fboxsep}{%
      \raggedchapter%
      #2#3%
    }}%
}
\makeatother
\begin{document}
\title{Farbig hinterlegte Überschriften mit \KOMAScript}
\author{Enrico Saputello}
\maketitle

\chapter*{Vorwort}% oder auch \addchap
\KOMAScriptVersion

\blindtext
\tableofcontents
\blinddocument
\chapter{Und noch eine mehrzeilige Überschrift als weiteres Beispiel}
\blindtext
\end{document}

Ergebnis

alt text

alt text

Oder ohne die Option chapterprefix

alt text

Seit der KOMA-Script 3.19 gibt es außerdem den Befehl \sectionlinesformat, mit dem sich der Hintergrund freistehender Überschriften im section Stil einfach färben lässt. Ein Beispiel findet sich hier. Die Schrifteinstellungsbefehle \addtokomafont und \setkomafont sollten deshalb nicht mehr für derartige Formatierungen verwendet werden.

Permanenter link

beantwortet 29 Aug '15, 11:59

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 07 Okt '15, 14:00

@esdd Wow, super. Ich probiere und suche nun schon seit rund einem Jahr rum, um mein altes Template upzudaten, dass es wieder so wie in deinem Beispiel aussieht. Dank dir geht es nun. Weißt du zufällig, wie man nun noch ein wenig Abstand vor den Kapitel-Präfix bekommt (siehe http://cl.ly/ehrA/Screenshot_2016-01-14__4_01_AM.jpg)? Das wäre super, denn hust der Abgabetermin rückt näher und näher.

(14 Jan '16, 04:09) pattulus
1

@pattulus: Unmittelbar vor \colorbox die Länge \fboxsep vergrößern, beispielsweise \addtolength{\fboxsep}{.5em}. Dafür dann ggf. das +1em bei der Höhe der \parbox verkleinern. Hust, hust: Warum suchst Du seit einem Jahr danach? Die Anleitung zu KOMA-Script 3.19 erklärt das doch schon seit einem halben Jahr (siehe Kapitel 21). ;-)

(14 Jan '16, 07:39) saputello

@esdd Danke schön für die Schützenhilfe. Ich habe vorher das komplett anders gelöst mittels dem mdframed Paket. Die Lösung war etwa "voluminöser" und als LaTeX-Anfänger hat sich das debuggen anhand des Errorlogs als schwierig rausgestellt. Das ich bei den Komascript Docs suche stand quasi nicht auf meinem Plan. Frei nach dem Motto Schuster bleib bei deinen Leisten bin ich auch erst gestern drauf gekommen noch einmal von Null anzufangen und zu recherchieren, was es schon/noch gibt. Dann bin ich glücklicherweise hier gelandet und nun sieht alles so aus wie es soll.

(14 Jan '16, 20:56) pattulus

@pattulus Auch wenn die Frage und die Antwort hier von mir sind - der Dank sollte eher an Markus Kohm gehen, der letztes Jahr die neuen Befehle in KOMA-Script eingebaut hat, die jetzt eine saubere Lösung des Problems ermöglichen.

(15 Jan '16, 10:43) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×130
×57
×48

gestellte Frage: 01 Apr '15, 12:04

Frage wurde gesehen: 13,833 Mal

zuletzt geändert: 15 Jan '16, 10:43