# How to highlight an entire paragraph?

I'd like to highlight paragraphs such that the highlight color appears as one whole rectangle underlying the entire paragraph. I have looked around but nothing gives me the desired effect so far.

For example \fcolorbox{} from xcolor cannot highlight an entire paragraph; \hl{} from soul leaves out spacings between lines uncolored.

I am wondering how I can do this?

-
use package mdframed. You'll get the documentation with running texdoc mdframed –  Herbert Jun 10 '12 at 19:27
The answers to yesterday's related question show how to achieve an uncoloured frame. –  dgs Jun 10 '12 at 20:54
Sorry. Wanted to show how to accomplish that in HTML, but the board does not handle styles. –  Alexander Bogomolny Jun 11 '12 at 3:28

Here's a list of other possible solutions

1. A solution that admits page breaks using mdframed:

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}

\begin{document}

\lipsum[4]
\begin{mdframed}[hidealllines=true,backgroundcolor=blue!20]
\lipsum[2]
\end{mdframed}
\lipsum[4]

\end{document}


The environments provided by the mdframed package are highly customizable so, for example, using the (inner)leftmargin, (inner)rightmargin options, you can produce this (the textwidth remains unaltered and the frame extends a little into the margins):

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}

\begin{document}

\lipsum[4]
\begin{mdframed}[hidealllines=true,backgroundcolor=blue!20,innerleftmargin=3pt,innerrightmargin=3pt,leftmargin=-3pt,rightmargin=-3pt]
\lipsum[2]
\end{mdframed}
\lipsum[4]

\end{document}


2. Here's now a solution using the framed package and its shaded environment; this solution also admits page breaks:

\documentclass{article}
\usepackage{xcolor}
\usepackage{framed}
\usepackage{lipsum}

\begin{document}

\lipsum[4]
\lipsum[2]
\lipsum[4]

\end{document}


3. Now a solution using the tcolorbox package; this solution admits page breaks inside tcolorbox if you load the breakable library and use the breakable key:

\documentclass{article}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\usepackage{lipsum}

\begin{document}

\lipsum[4]
\begin{tcolorbox}[breakable,notitle,boxrule=0pt,colback=blue!20,colframe=blue!20]
\lipsum[2-20]
\end{tcolorbox}
\lipsum[4]

\end{document}


4. A solution using the adjustbox package (no page breaks allowed):

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}

\begin{document}

\lipsum[4]

\lipsum[4]

\end{document}


5. And finally, one solution using the fancypar package (this solution won't accept page breaks either):

\documentclass{article}
\usepackage{fancypar}
\usepackage{lipsum}

\begin{document}

\lipsum[4]
\ZebraPar[colorone=blue!20,colortwo=blue!20]{\lipsum[4]}
\lipsum[4]

\end{document}


-
Another option would be where the box extends slightly into the margins so that the paragraph flow does not get altered. –  Peter Grill Jun 10 '12 at 19:52
@PeterGrill yes; I added a note about the flexibility of mdframed and a new example. –  Gonzalo Medina Jun 10 '12 at 20:05
Can you provide a small list of packages. For example: adjustbox, tcolorbox and framed. I think all packages have their advantages. –  Marco Daniel Jun 10 '12 at 21:40
@MarcoDaniel yes; it's a god idea. I've updated my answer with a list of examples using various packages. –  Gonzalo Medina Jun 11 '12 at 3:45

A combination of \colorbox and a \parbox works, as long as your paragraph doesn't need to be broken over pages. That won't work.

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}
\noindent\colorbox{yellow}{%
\parbox{\dimexpr\linewidth-2\fboxsep}% a box with line-breaks that's just wide enough
\lipsum[1]%
}
}
\end{document}


-
The overfull box can be avoided very simple by \parbox{\dimexpr\linewidth-2\fboxsep} –  Marco Daniel Jun 10 '12 at 19:39
@MarcoDaniel Nice solution to the overfull box :-) –  azetina Jun 10 '12 at 19:42
@MarcoDaniel: Thanks, I included that. So \dimexpr means something like "calculate the following"? Where would I find an explanation of such macros? I didn't find anything in latex2e nor in macros2e. –  doncherry Jun 10 '12 at 19:49
@doncherry those are e-TeX macros: texdoc etex. –  Gonzalo Medina Jun 10 '12 at 19:50

Is the todonotes package a possiblity? If so, Highlighting a Paragraph in LaTeX by Hinnerk Brügmann provides a solution. For some reason or the other the lipsum package didn't work well with it. The user provides the following code:

\documentclass[letterpaper]{article}
\usepackage{lipsum}
\usepackage[bordercolor=white,backgroundcolor=gray!30,linecolor=black,colorinlistoftodos]{todonotes}
\newcommand{\rework}[1]{%
\todo[color=yellow,inline]{Rework: {#1}}%
}
\begin{document}
\lipsum[2]
%------------------------------
% Update suggested by @Fran
%------------------------------
\rework{\protect\lipsum[2]}
%------------------------------
\lipsum[2]
\end{document}


-
You can solve the lipsum problem in this way: \rework{\protect\lipsum[2]} –  Fran Feb 1 at 13:26
@Fran I will amend as necessary. Thanks –  azetina Feb 1 at 18:35