Größe einer shaded-Box ändern

Schriftbild, Absätze und Auflistungen einstellen


gasty

Größe einer shaded-Box ändern

Beitrag von gasty »

Hey alle zusammen,

ich versuche jetzt schon seit einiger Zeit Sections als weiße Schrift auf weißem Hintergrund zu realisieren. Ich habe dabei zwei Ansätze, die ich derzeit verfolge; leider ist keiner momentan befriedigend.

Wenn ich mittels \begin{shaded} \end{shaded} eine solche Box einfüge ist sie extrem groß. Gibt es da eine Möglichkeit, die höhe manuell zu ändern? Beispielcode:
\documentclass[a4paper, 10pt]{article}

\usepackage[compact]{titlesec}
\usepackage{xcolor}
\usepackage{framed}

\titlespacing{\section}{0pt}{*6}{*2.1}
\titlespacing{\subsection}{0pt}{*6}{*1.8}
\titlespacing{\subsubsection}{0pt}{*6}{*0.8}
\titleformat{\section}{\color{white}\small}{\thesection}{1em}{}
\titleformat{\subsection}{\bfseries\small}{\thesubsection}{1em}{}
\titleformat{\subsubsection}{\bfseries\small}{\thesubsubsection}{1em}{}

\definecolor{shadecolor}{named}{black}
\begin{document}

\begin{shaded}
\section{\color{white}Section}
\end{shaded}
\subsection{Subsection}
 At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
\end{document}
Der andere Ansatz benutzt \colorbox anstelle der shaded-Umgebung, also sowas wie
\documentclass[a4paper, 10pt]{article}

\usepackage[compact]{titlesec}
\usepackage{xcolor}
\usepackage{framed}

\titlespacing{\section}{0pt}{*6}{*2.1}
\titlespacing{\subsection}{0pt}{*6}{*1.8}
\titlespacing{\subsubsection}{0pt}{*6}{*0.8}
\titleformat{\section}{\color{white}\small}{\thesection}{1em}{}
\titleformat{\subsection}{\bfseries\small}{\thesubsection}{1em}{}
\titleformat{\subsubsection}{\bfseries\small}{\thesubsubsection}{1em}{}

\definecolor{shadecolor}{named}{black}
\begin{document}

\section{\colorbox{black}{Section\hspace{\columnwidth}}}
\subsection{Subsection}
 At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
\end{document}
Dabei treten zwei Probleme auf. Zum einen weiß ich nicht, wie ich \hspace genau so einstellen kann, dass die restliche Zeile genau ausgefüllt wird. Zum anderen ist die Section-Nummer nicht von der Box umrandet.

Hoffe, ihr könnt mir da weiterhelfen. Ich bin leider eher ein dilettantischer Anwender von Tex und hab nicht viel Zeit, mich lange in die Thematik einzuarbeiten. Also dachte ich, ich hör mal bei Leuten nach, die eh schon Ahnung haben. Wäre wirklich für Ratschläge dankbar.

Gruß, Klaus

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Größe einer shaded-Box ändern

Beitrag von KOMA »

gasty hat geschrieben:ich versuche jetzt schon seit einiger Zeit Sections als weiße Schrift auf weißem Hintergrund zu realisieren.
Darf ich so unverschämt sein zu fragen, welchen Zweck Du damit verfolgst?
Darf ich außerdem fragen, wozu Du dabei dann überhaupt shaded brauchst und warum Du dort die Hintergrundfarbe auf Schwarz setzt?

gasty

Beitrag von gasty »

Oh man, so ein blöder Fehler an einer entscheidenden Stelle. Das sollte eigentlich "weiße Schrift auf schwarzem Hintergrund" heißen. Der Beispiel-Code ist allerdings richtig ;)

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Lösung mit KOMA-Script-Klasse scrartcl statt article:
\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newcommand*{\sectionbox}[1]{\colorbox{black}{\color{white}%
    \parbox{\dimexpr \linewidth-2\fboxsep\relax}{%
      #1}}}
\addtokomafont{section}{\sectionbox}
\begin{document}
\blinddocument

\end{document}

gasty

Beitrag von gasty »

Okay super, dank dir soweit. Ich hatte noch ein paar kleinere Probleme mit den Fonts, die ich jetzt aber alleine in den Griff bekommen habe. Das einzige, was mir noch nicht ganz gefällt, ist die Höhe der schwarzen Box. Gibt es da eine Möglichkeit die Höhe etwas zu verringern?

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

xcolor und color verwenden bei den Hintergründen von \colorbox als Freiraum rundherum \fboxsep. Man kann also durch ändern von \fboxsep (mit \setlength oder \addtolength) diesen Freiraum auf allen vier Seiten gleichzeitig ändern.

Eine Änderung nur oben ist allenfalls dadurch erreichbar, dass man LaTeX eine andere Höhe des Inhalts der \parbox vorgaukelt. Das kann eventuell auch dadurch erfolgen, dass man innerhalb von \parbox gleich mit einer \vspace*-Anweisung mit negativem Wert beginnt. Ausprobiert habe ich das nicht.

Eine Änderung nur unten müsste auf ähnliche Weise herbeigetrickts werden.

Eine Alternative, um nur den Anfang und das Ende zu ändern wäre, dass man sich die Definition von \colorbox (einschließlich der Unteranweisungen) für eine eigene Anweisung kopiert und dort in der \vbox die \kern-Anweisungen am Anfang und Ende ändert.

Ich finde die vertikale Ausdehung des Hintergrunds übrigens recht ausgewogen. Dafür halte ich von dem Kasten selbst gar nichts. Insbesondere in der Ausprägung mit weißer Schrift auf schwarzem Grund ist der viel zu mächtig.

gasty

Beitrag von gasty »

Mit \addtolength hats geklappt. Ich weiß, dass das ganze ein wenig mächtig aussieht, aber mir gefällts. Ob ichs letzten Endes in meiner Arbeit verwenden werde, mal sehen. Auf jeden Fall bin ich froh, dass ich jetzt eine Vorlage hab die mir persönlich gefällt. Daher also nochmal danke für die Antworten.

Gruß

Antworten