Das ist eine Folgefrage zu Wie kann ich Überschriften mit einer Hintergrundfarbe versehen?, die sich auf die Klasse Außerdem bekomme ich (erwartungsgemäß) bei Verwendung der Option 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 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 gefragt 01 Apr '15, 12:04 esdd
Ergebnis 5 von 8
show 3 more comments
|
Mit der Version 3.19a funktionieren zwei Befehle, über die man Überschriften formatieren kann, die den 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 Oder ohne die Option Seit der KOMA-Script 3.19 gibt es außerdem den Befehl beantwortet 29 Aug '15, 11:59 esdd @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
(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
|
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.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.
@Ulrike: Es gibt bereits Hooks, beispielsweise in
SecDef
und auch inscr@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.@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.@Ulrike Kannst Du die tikz-Marken für Kapitel (darum geht es Elke) nicht über
\chapterheadstartvskip
und\chapterheadendvskip
setzen?@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.
@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.
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.