# How to modify spacing around quotation environment?

I am almost there in my quest to reproduce the rather compact layout of the book I'm translating... one thing to go, though:

I successfully used the enumitem package to modify the vertical and horizontal spacing of the various list environments.

But how do I modify the vertical and horizontal spacing of the quotation environment? I have found lots of information on how to do it for theorems and formulas etc., but none of that seems to apply for quotation (or quote, for that matter).

\documentclass[twocolumn]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{enumitem}
\setlist{leftmargin=*,parsep=0pt,itemsep=2pt,topsep=2pt,partopsep=0pt}
\setlist[enumerate]{widest=0}

\newcommand{\sometext}{Some random text. Not using lipsum as I don't need that much text.}

\begin{document}
\sometext
\begin{itemize}
\item One item.
\item Another item.
\end{itemize}
\sometext
\begin{quotation}
\textbf{Note:} \emph{This has too much whitespace around it.}
\end{quotation}
\sometext
\end{document}


-

The quoting package provides a quoting environment with customizable font, margins, spacing... Just load it with \usepackage{quoting} and use either \begin{quoting}[vskip=0pt] ... \end{quoting} or set it up globally with \quotingsetup{vskip=0pt}:

\documentclass[twocolumn]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{enumitem}
\setlist{leftmargin=*,parsep=0pt,itemsep=2pt,topsep=2pt,partopsep=0pt}
\setlist[enumerate]{widest=0}

\usepackage{quoting}
\quotingsetup{vskip=0pt}

\newcommand{\sometext}{Some random text. Not using lipsum as I don't need that much text.}

\begin{document}
\sometext
\begin{itemize}
\item One item.
\item Another item.
\end{itemize}
\sometext
\begin{quoting}
\textbf{Note:} \emph{This has no extra white\-space around it.}
\end{quoting}
\sometext
\end{document}


-
Ummm, the word whitespace is a well-known case of a failure of TeX's hyphenation mechanism... You may want to add a discretionary hyphen, \-, to fix this in your MWE. :-) –  Mico Sep 27 '11 at 10:25
@Mico Thanks for pointing that out, fixed :-) –  diabonas Sep 27 '11 at 10:31
I find setting parameters for a package preferrable over redefining, or writing macros myself. (Assuming that the package authors know more about LaTeX than I do, which isn't hard at all.) Thanks for pointing out this package. –  DevSolar Sep 27 '11 at 11:22
Global settings may also be changed using \usepackage[vskip=0pt]{quoting}. –  lockstep Sep 27 '11 at 17:10
\documentclass[twocolumn]{scrbook}
\makeatletter
\renewenvironment{quotation}
{\list{}{\listparindent=0pt%whatever you need
\itemindent    \listparindent
\leftmargin=0pt%  whatever you need
\rightmargin=10pt%whatever you need
\topsep=0pt%%%%%  whatever you need
\parsep        \z@ \@plus\p@}%
\item\relax}
{\endlist}
\makeatother

\newcommand{\sometext}{Some random text. Not using lipsum as I don't need that much text.}

\begin{document}

\sometext
\begin{quotation}
\textbf{Note:} \emph{This has too much whitespace around it.}
\end{quotation}
\sometext
\end{document}


-
I tried to \setlength{\topsep}{0pt} at the global level, but it did not seem to affect the quotation environment, so I thought it had to be some other parameter... but it seems that the \topsep etc. has to be declared explicitly in the environent... is there a simple explanation as to why? –  DevSolar Sep 27 '11 at 10:20
your value is always overwritten by the definition of quotation –  Herbert Sep 27 '11 at 10:25
That explains it, thank you. –  DevSolar Sep 27 '11 at 10:56
On second thought, isn't this somewhat... I won't call it "buggy", but perhaps "flaky"? If the environment ignores global topsep settings, shouldn't it react on some other setting? Having to re-define the environment to change one parameter strikes me as a bit heavy-handed, especially since LaTeX apparently does not provide a way to either determine the standard definition for reference ("what are all the other things done by this environment, so I don't forget them in my redifinition"), or add a single value to the definition without having to redefine it completely... –  DevSolar Sep 27 '11 at 14:36