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:
- ¿Cómo establecer un color de fondo del entorno de la figura?
- Cuadro de color con esquinas redondeadas alrededor de la figura.
- Cuadros de color de fondo alrededor de la figura completa en LaTeX
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
\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 usandomdframed
que redefine el figure
entorno (por lo tanto, no adapta el uso de figure
en su 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 de aquí, sería sencillo aplicar un estilo diferente a un flotante diferente (como table
, por ejemplo).