カラーフレームのパッケージは、別の環境内では最後に垂直方向のスペースを追加します。

カラーフレームのパッケージは、別の環境内では最後に垂直方向のスペースを追加します。

パッケージ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}

ここに画像の説明を入力してください

関連情報