Cor de fundo para carros flutuantes existentes (por exemplo, sem definir um novo ambiente)?

Cor de fundo para carros flutuantes existentes (por exemplo, sem definir um novo ambiente)?

Estou tentando fazer com que todas as minhas figuras (incluindo a legenda) tenham um fundo com uma cor decente.

Já encontrei essas perguntas com algumas respostas legais:

Mas todas essas respostas têm em comum o fato de definirem alguns novos ambientes ou comandos que precisam ser colocados dentro das figuras ou substituí-las completamente.

Existe uma maneira de colocar uma cor de fundo atrásexistirflutua sem ter que alterar o conteúdo desses carros alegóricos existentes?

Responder1

insira a descrição da imagem aqui

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

Responder2

Aqui está uma implementação elementar usandomdframedque redefine o figureambiente (portanto não adaptando o uso de figureno seu documento):

insira a descrição da imagem aqui

\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 daqui, seria simples aplicar um estilo diferente a um float diferente (como table, por exemplo).

informação relacionada