Пакет с цветной рамкой добавляет дополнительное вертикальное пространство в конце при нахождении внутри другой среды.

Пакет с цветной рамкой добавляет дополнительное вертикальное пространство в конце при нахождении внутри другой среды.

Пакет colorframed(и его предшественник framed) добавляет дополнительное вертикальное пространство внутри другой среды.

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

Есть ли способ это исправить?

решение1

Я изучил colorframedкод среды snugshade*и взломал его, чтобы создать quotedsnugshade*среду, допускающую необязательный параметр для управления величиной отступа.

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

Обратите внимание, что это не тестируется с содержимым затененного элемента, являющимся списком.

затененные среды

решение2

С помощью этого tcolorboxпакета вы можете одновременно использовать цветной фон, разрывы страниц и настраивать поля (при необходимости можно отрегулировать пространство сверху и снизу):

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

введите описание изображения здесь

Связанный контент