¿Color de fondo para los flotadores existentes (por ejemplo, sin definir un nuevo entorno)?

¿Color de fondo para los flotadores existentes (por ejemplo, sin definir un nuevo entorno)?

Estoy tratando de hacer que todas mis figuras (incluido el título) tengan un fondo de un color decente.

Ya encontré estas preguntas con algunas buenas respuestas:

Pero todas estas respuestas tienen en común que definen algunos entornos o comandos nuevos que deben colocarse dentro de las figuras o reemplazarlas por completo.

¿Hay alguna manera de poner un color de fondo detrás?existenteflota sin tener que cambiar el contenido de estos flotadores existentes?

Respuesta1

ingrese la descripción de la imagen aquí

\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}

Respuesta2

Aquí hay una implementación elemental usandomdframedque redefine el figureentorno (por lo tanto, no adapta el uso de figureen su documento):

ingrese la descripción de la imagen aquí

\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}

A partir de aquí, sería sencillo aplicar un estilo diferente a un flotante diferente (como table, por ejemplo).

información relacionada