7

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

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:

| improve this answer | |
  • Really??? No mdframed example? :-) Made me think that there were perhaps two users with this userid!! – Peter Grill Mar 2 '13 at 19:43
  • @PeterGrill: Can I use my own package? I think it's a little bit egocentric. – Marco Daniel Mar 2 '13 at 19:50
  • @MarcoDaniel The boites package is a good illustration of how good TeX is at avoiding (unintentionally) rivers. The examples all use blah, blah...thanks for reminding me about the package. – Yiannis Lazarides Mar 2 '13 at 19:54
  • @YiannisLazarides: The package boites uses an interesting splitting algorithm which makes it interesting ;-) Of course the user won't see it ;-) – Marco Daniel Mar 2 '13 at 19:59
  • @MarcoDaniel: Nah I don't think so. It's not as if you are trying to sell it. If it bothers you, you can always add a disclaimer that you are the author. But, if I was new and didn't know about` mdframed, and came across this question I would conclude that framed` wass being recommended over mdframed. Plus mdframed is such an awesome package. I haven't used framed so I am not implying that there is anything wrong with that package. – Peter Grill Mar 2 '13 at 20:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.