Hintergrundfarbe für vorhandene Floats (z. B. ohne Definition einer neuen Umgebung)?

Hintergrundfarbe für vorhandene Floats (z. B. ohne Definition einer neuen Umgebung)?

Ich versuche, allen meinen Abbildungen (einschließlich der Bildunterschrift) einen Hintergrund mit einer anständigen Farbe zu verleihen.

Ich habe bereits diese Fragen mit einigen netten Antworten gefunden:

Allen Antworten ist jedoch gemeinsam, dass sie einige neue Umgebungen oder Befehle definieren, die in die Abbildungen eingefügt werden müssen oder die Abbildungen vollständig ersetzen müssen.

Gibt es eine Möglichkeit, eine Hintergrundfarbe hinzuzufügenbestehendeFloats, ohne den Inhalt dieser vorhandenen Floats ändern zu müssen?

Antwort1

Bildbeschreibung hier eingeben

\documentclass{article}

\makeatletter

\def\foo#1\normalcolor\vbox\bgroup#2!!{%
\def\@xfloat ##1[##2]{#1%
 \normalcolor
      \hbox\bgroup{\color{yellow}\leaders\vrule\hskip\columnwidth\hskip-\columnwidth}%
      \vbox \bgroup\aftergroup\egroup
#2}}
\expandafter\foo\@xfloat{#1}[#2]!!

\makeatother

\usepackage{color}
\begin{document}

\begin{figure}
a\\b\\c
\caption{yes no}
\end{figure}

one two three

\end{document}

Antwort2

Hier ist eine elementare Implementierung mitmdframeddas die figureUmgebung neu definiert (und daher die Verwendung von figurein Ihrem Dokument nicht anpasst):

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{lipsum,mdframed,xcolor}% http://ctan.org/pkg/{lipsum,mdframed,xcolor}
\let\oldfigure\figure% Store old figure environment start
\let\endoldfigure\endfigure% Store old figure environment end
\renewenvironment{figure}[1][htbp]% Redefine figure
  {\oldfigure[#1]\mdframed[backgroundcolor=blue!15]}
  {\endmdframed\endoldfigure}
\begin{document}
\lipsum[1]
\begin{figure}[ht]
  \centering\includegraphics{example-image-a}
  \caption{This is a figure}
\end{figure}
\lipsum[2]
\end{document}

Von hier aus wäre es ein Kinderspiel, einem anderen Float (wie beispielsweise ) einen anderen Stil anzuwenden table.

verwandte Informationen