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:
- Como definir uma cor de fundo para o ambiente da figura?
- Caixa colorida de canto arredondado ao redor da figura
- Caixas de cores de fundo ao redor da figura completa em LaTeX
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
\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 usandomdframed
que redefine o figure
ambiente (portanto não adaptando o uso de figure
no seu documento):
\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).