Die Farbe von Überschriften kann ich bei KOMA-Script einfach einstellen durch \setkomafont oder \addtokomafont, beispielsweise durch

\addtokomafont{sectioning}{\color{white}}

Jedoch möchte ich eine Hintergrundfarbe einstellen, beziehungsweise Überschriften in eine farbige Box mit Textbreite setzen. Hier ist mein Ansatz als Makro:

\documentclass{scrartcl}
\usepackage{xcolor}
\addtokomafont{sectioning}{\color{white}}
\newcommand*{\heading}[1]{\colorbox{blue!70}{%
  \usekomafont{sectioning}#1}\par\bigskip}
\begin{document}
\heading{Einleitung}
Es folgt Text.
\end{document}

Überschrift mit Hintergrundfarbe

Das würde ich nur gern analog als \section, \subsection oder \paragraph verwenden, für richtige Überschriften, die auch im Inhaltsverzeichnis auftauchen. Wie ginge das?

Falls KOMA-Script-Features das nicht direkt abbilden können, ist auch TikZ oder PSTricks oder andere Lösung sehr willkommen.

gefragt 26 Jul '13, 10:13

Felix's gravatar image

Felix
1.3k525666
Akzeptiert-Rate: 47%

bearbeitet 26 Jul '13, 10:35

cgnieder's gravatar image

cgnieder
22.1k253463


Die in diesem Beitrag beschriebene Lösung sollte ab KOMA-Script 3.19 nicht mehr verwendet werden. Sie stellt lediglich eine Notlösung für ältere Versionen von KOMA-Script dar!

Man sollte es kaum für möglich halten, aber die Schnittstelle zur Schriftumschaltung bei KOMA-Script gibt das tatsächlich her. Man kann nämlich bei den meisten Elementen als letzten Befehl auch einen Befehl angeben, der ein Argument erwartet:

Open in Online-Editor
\documentclass{scrartcl}
\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>\linewidth
    \colorbox{blue!70}{%
      \parbox[t]{\linewidth}{\color{white}\ignorespaces#1}%
    }%
  \else
    \colorbox{blue!70}{\usebox\cbgbox}%
  \fi
}
\addtokomafont{section}{\colorbackground}% ACHTUNG: Muss das letzte
                                % \addtokomafont{section} sein!
\addtokomafont{subsection}{\colorbackground}% ACHTUNG: Muss das letzte
                                % \addtokomafont{subsection} sein!
\addtokomafont{subsubsection}{\colorbackground}% ACHTUNG: Muss das letzte
                                % \addtokomafont{subsubsection} sein!
\addtokomafont{paragraph}{\colorbackground}% ACHTUNG: Muss das letzte
                                % \addtokomafont{paragraph} sein!
\begin{document}
\title{Farbig hinterlegte Überschriften mit \KOMAScript}
\author{Enrico Saputello}
\maketitle
\begin{abstract}
Dieses Beispiel zeigt, wie man Überschriften bei \KOMAScript{} mit einem
farbigen Hintergrund versehen kann.
\end{abstract}
\section*{Vorwort}% oder auch \addsec
\blindtext
\tableofcontents
\blinddocument

\section{Und dann noch eine mehrzeilige Überschrift als weiteres Beispiel}
\blindtext
\end{document}

Ich habe hier absichtlich nicht das Element disposition (oder den Alias sectioning) verwendet, weil jenes Element auch noch an anderer Stelle als nur den Überschriften verwendet wird und eventuell auch nicht überall ein Argument erlaubt, weil danach ja noch das Element für die jeweilige Ebene folgt.

Ich habe mir außerdem erlaubt, Dir zu zeigen, dass Du mit \section* oder der Sternform einer andere Gliederungsebene \heading einsparen kannst.

Die Elemente für die weiteren Gliederungebenen bis hinunter zu \minisec sind übrigens der KOMA-Script-Anleitung zu entnehmen.

Mit dieser Umdefinierung sollte man übrigens die \label-Anweisung nicht mehr innerhalb des Arguments der Gliederungsüberschrift, sondern unbedingt danach setzen, weil sie sonst ggf. zweimal ausgeführt wird, wenn die Überschrift länger als eine Zeile ist.

Permanenter link

beantwortet 26 Jul '13, 10:57

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 08 Okt '15, 09:15

Hervorragend, danke!

(26 Jul '13, 11:14) Felix

Mit der Version 3.19a gibt es eine einfachere Möglichkeit Überschriften mit einem farbigen Hintergrund zu versehen. Dazu muss man nur den neuen Befehl \sectionlinesformat passend umdefinieren. Der Befehl ist für alle frei stehenden Überschriften im section Stil zuständig und seit der Version 3.19 auch in der Dokumentation zu KOMA-Script beschrieben.

Open in Online-Editor
\documentclass{scrartcl}[2015/09/15]
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{blindtext}

\usepackage{xcolor}
\colorlet{sectioncolor}{orange}
\makeatletter
\renewcommand\sectionlinesformat[4]{%
  \hspace*{#2}%
  \colorbox{sectioncolor}{%
    \parbox[t]{\dimexpr\textwidth-2\fboxsep-#2\relax}{%
      \raggedsection\color{white}\@hangfrom{#3}{#4}%
}}}
\makeatother

\begin{document}
\addsec{Vorwort}
\blindtext
\tableofcontents
\blinddocument

\section{Und dann noch eine mehrzeilige Überschrift als weiteres Beispiel}
\blindtext
\end{document}

alt text

Wenn man es noch etwas bunter möchte, lassen sich die verschiedenen Überschriftenebenen auch ganz einfach unterschiedlich färben.

Open in Online-Editor
\documentclass{scrartcl}[2015/09/15]
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{blindtext}

\usepackage{xcolor}
\colorlet{sectioncolor}{orange}
\colorlet{subsectioncolor}{purple}
\colorlet{subsubsectioncolor}{blue!50!black}
\makeatletter
\renewcommand\sectionlinesformat[4]{%
  \hspace*{#2}%
  \colorbox{#1color}{%
    \parbox[t]{\dimexpr\textwidth-2\fboxsep-#2\relax}{%
      \raggedsection\color{white}\@hangfrom{#3}{#4}%
}}}
\makeatother

\begin{document}
\addsec{Vorwort}
\blindtext
\tableofcontents
\blinddocument

\section{Und dann noch eine mehrzeilige Überschrift als weiteres Beispiel}
\blindtext
\end{document}

alt text

Ab der gleichen Version gibt es für die Kapitelüberschriften in den Klassen scrreprt und scrbook außerdem die Befehle \chapterlinesformat und \chapterlineswithprefixformat. Ein Beispiel dazu findet sich unter Wie kann ich bei einer KOMA-Script Klasse Kapitelüberschriften mit einer Hintergrundfarbe versehen?.

Permanenter link

beantwortet 27 Sep '15, 22:07

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 07 Okt '15, 14:01

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:

×131
×59
×48

gestellte Frage: 26 Jul '13, 10:13

Frage wurde gesehen: 19,838 Mal

zuletzt geändert: 08 Okt '15, 09:15