O colorframed
pacote (e seu antecessor framed
) adiciona espaço vertical extra quando dentro de outro ambiente.
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{colorframed}
\colorlet{shadecolor}{lightgray}
\begin{document}
This is text before quotation, but it must be longer than one line for comparison purposes.
\begin{snugshade*}
Purely fictional thinking leads to testing text inside shaded text environments.
\end{snugshade*}
This is text between quotation, but it must be longer than one line for comparison purposes.
\begin{quotation}\begin{snugshade*}
Purely fictional thinking leads to testing text inside shaded text environments.
\end{snugshade*}\end{quotation}
This is text after quotations, but it must be longer than one line for comparison purposes.
\end{document}
Algum jeito de arrumar isso?
Responder1
Pesquisei colorframed
o código do snugshade*
ambiente e o invadi para criar um quotedsnugshade*
ambiente que admitisse um parâmetro opcional para controlar a quantidade de recuo.
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{colorframed}
\colorlet{shadecolor}{lightgray}
\makeatletter
\newenvironment{quotedsnugshade*}[1][2em]{%
\def\FrameCommand##1{\hskip\@totalleftmargin
\colorframedcolorbox{shadecolor}{##1}%
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
\MakeFramed {\advance\hsize-\width
\advance\hsize-2\dimexpr#1\relax %%% ADDED
\@totalleftmargin\dimexpr#1\relax %%% ADDED
\linewidth\hsize
\advance\labelsep\fboxsep
\@setminipage}%
}{\par\unskip\@minipagefalse\endMakeFramed}
\makeatother
\begin{document}
This is text before quotations, but it must be longer than one line for comparison purposes.
\begin{quotedsnugshade*}
Purely fictional thinking leads to testing text inside shaded text environments.
\end{quotedsnugshade*}
This is text after quotations, but it must be longer than one line for comparison purposes.
\begin{quotation}
Purely fictional thinking leads to testing text inside quotation environment.
\end{quotation}
This is text after quotations, but it must be longer than one line for comparison purposes.
\begin{quotedsnugshade*}[2cm]
Purely fictional thinking leads to testing text inside shaded text environments.
\end{quotedsnugshade*}
\noindent\rule{2cm}{1pt}\dotfill margins are 2cm each\dotfill\rule{2cm}{1pt}
\end{document}
Observe que isso não é testado com o conteúdo da coisa sombreada sendo em si uma lista.
Responder2
Com o tcolorbox
pacote você pode ter fundo colorido, quebras de página e margens ajustadas de uma só vez (o espaço acima e abaixo pode ser ajustado se necessário):
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{quack}[1][]{enhanced,breakable,frame hidden,colback=lightgray,sharp corners,size=small,left skip=1cm,right skip=1cm,#1}
\begin{document}
This is text between quotation, but it must be longer than one line for comparison purposes.
\begin{quack}
Purely fictional thinking leads to testing text inside shaded text environments.
\end{quack}
This is text after quotations, but it must be longer than one line for comparison purposes.
\end{document}