Seite 1 von 1

Größe einer shaded-Box ändern

Verfasst: So 28. Mär 2010, 23:50
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

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

Verfasst: Mo 29. Mär 2010, 09:12
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?

Verfasst: Mo 29. Mär 2010, 10:07
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 ;)

Verfasst: Mo 29. Mär 2010, 14:07
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}

Verfasst: Mo 29. Mär 2010, 21:48
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?

Verfasst: Di 30. Mär 2010, 07:47
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.

Verfasst: Di 30. Mär 2010, 09:27
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ß