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:
- Wie lege ich eine Hintergrundfarbe für die Figurenumgebung fest?
- Farbiges Kästchen mit abgerundeten Ecken um die Figur
- Hintergrundfarbfelder um die gesamte Abbildung in LaTeX
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
\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 mitmdframed
das die figure
Umgebung neu definiert (und daher die Verwendung von figure
in Ihrem Dokument nicht anpasst):
\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
.