[Tex/LaTex] Robust colored background for parts of the document

adjustboxcolor

I would like to set off certain parts of my document by giving them a colored background. With the help of adjustbox I was able to write an environment that does more or less what I want: It puts its contents in a borderless, unpadded box with a colored background.

\usepackage{adjustbox}
\newenvironment{shaded}
  {\par\noindent\adjustbox{frame=0pt,bgcolor=yellow,minipage=\textwidth}\bgroup}
  {\egroup\par}

The problem is that this is, well, a box. It cannot be broken across pages, and it doesn't play nice with floats etc., which cannot be encountered while creating a box. (Thanks to the minipage option, footnotes are captured at the bottom of the shaded area instead of disappearing entirely). For my particular use, restructuring the document to avoid these problems is not an option.

So the question is: Are there any solutions for creating a colored background that are as transparent as possible? I've seen a number of answers for coloring tables, code snippets, boxing that supports page breaks, complete pages(a, b), etc., but nothing I can see how to adapt for more general use.

Complete MWE:

\documentclass{article}

\usepackage{xcolor,adjustbox}

\newenvironment{shaded}
  {\par\noindent\adjustbox{frame=0pt,bgcolor=yellow,minipage=\textwidth}\bgroup}
  {\egroup\par}

\begin{document}

\section{Regular section}
This section is not highlighted. 
This text is just padding to indicate the natural line length. 

\begin{shaded}
This is set with a colored background.

\section{Highlighted section}
This entire section is, 
actually.\footnote{This footnote is trapped in the minipage.}

\begin{table}
This float triggers an error and disappears.
\end{table}

\end{shaded}

\section{The rest of the document}
\end{document}

Best Answer

The following packages can be used for shade environments and they allow page breaks:

Here a suggestion using framed:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{framed,xcolor}
\colorlet{shadecolor}{red!20}
\usepackage{blindtext}

\begin{document}
\blindtext
\begin{shaded}
\blindtext\blindtext
\blindtext\blindtext
\end{shaded}
\blindtext
\end{document}

A more modern package which allows you a comfortable configuration of the frame is the package mdframed. Below is a simple example with a shaded background.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{mdframed}
\newmdenv[hidealllines=true,backgroundcolor=red!20]{shaded}
\usepackage{blindtext}

\begin{document}
\blindtext
\begin{shaded}
\blindtext\blindtext
\blindtext\blindtext
\end{shaded}
\blindtext
\end{document}

Related questions are: