# Nested quotes have smaller and smaller paragraph skips

I'm using Memoir and \abnormalparskip{<length>}.

Every time I start a new \begin{quote}, the space between paragraphs gets smaller and smaller until it's basically gone.

Here is a minimal test case:

\documentclass{memoir}

\setlength{\parindent}{0em}
\abnormalparskip{1em}

\begin{document}

This is a a normal paragraph. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\begin{quote}

This is the first paragraph in a quote. It is not spaced right.

This paragraph is spaced smaller than the one before it.

\begin{quote}

This is yet another paragraph.

Now you can see the spacing is gone.

\end{quote}

\end{quote}

\end{document}


Which results in this:

How do get it so that the paragraph skip is consistently the same size?

• That's by design. quote is a list, and nested lists have smaller \parsep (which is used as \parskip in the list). You would have to redefine the \@listi, \@listii etc commands to change this. Or reset \parskip inside the quote enviroment. – Ulrike Fischer Jun 17 '15 at 16:43

As Ulrike Fischer mentions in her comment, one option is to change \parskip inside the list internally used by quote; for consistency's sake, the same modification will be required for the quotation environment. The following example code shows the necessary redefinitions:

\documentclass{memoir}

\setlength{\parindent}{0em}
\newlength\myparskip
\setlength\myparskip{1em}
\abnormalparskip{\myparskip}

\makeatletter
\renewenvironment{quote}%
{\list{}{\rightmargin\leftmargin}%
\parskip=\myparskip\item[]}%
{\endlist}
\renewenvironment{quotation}%
{\list{}{\listparindent 1.5em%
\itemindent    \listparindent
\rightmargin   \leftmargin
\parsep        \z@ \@plus\p@}%
\parskip=\myparskip\item[]}%
{\endlist}
\makeatother

\begin{document}

This is a a normal paragraph. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\begin{quote}

This is the first paragraph in a quote. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\begin{quote}

This is another paragraph in a quote. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\begin{quote}

This is yet another paragraph in a quote. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\end{quote}
\end{quote}
\end{quote}

\end{document}


The result:

As it can be deduced from the name given to \abnormalparskip, the author of the memoir class doesn't like documents with a nonzero \parskip. And I heartily agree with him.

If you want your document to be as ugly as possible (and possibly uglier), here's how you can do.

\documentclass{memoir}

\setlength{\parindent}{0em}
\abnormalparskip{1em}

\makeatletter
\renewcommand*{\list}[2]{%
\ifnum \@listdepth >5\relax
\@toodeep
\else
\fi
\rightmargin\z@
\listparindent\everylistparindent
\itemindent\z@
\csname @list\romannumeral\the\@listdepth\endcsname
\def\@itemlabel{#1}%
\let\makelabel\@mklab
\@nmbrlistfalse
#2\relax
\@trivlist
\ifm@mnzpskip
\parsep=\parskip
\else
\parskip\parsep
\fi
\parindent\listparindent
\parshape \@ne \@totalleftmargin \linewidth
\ignorespaces}
\makeatother

\begin{document}

This is a a normal paragraph. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\begin{quote}

This is the first paragraph in a quote. It is not spaced right.

This paragraph is spaced smaller than the one before it.

\begin{quote}

This is yet another paragraph.

Now you can see the spacing is gone.

\end{quote}

\end{quote}

\end{document}


Instead of fully copying the definition of \list and modifying it, a quicker patch is possible.

\documentclass{memoir}
\usepackage{etoolbox}

\setlength{\parindent}{0em}
\abnormalparskip{1em}

\makeatletter
\patchcmd{\list}
{\parskip\parsep}
{\ifm@mnzpskip\parsep\parskip\else\parskip\parsep\fi}
{}{}
\makeatother

\begin{document}

This is a a normal paragraph. It will space correctly from the next.

This is the second paragraph to show how it is spaced correctly.

\begin{quote}

This is the first paragraph in a quote. It is not spaced right.

This paragraph is spaced smaller than the one before it.

\begin{quote}

This is yet another paragraph.

Now you can see the spacing is gone.

\end{quote}

\end{quote}

\end{document}

• I've read the documentation on \abnormalparskip and while I agree in most contexts, it works well in my current context. That said, your solution seems not as clean as the other one here. – sdegutis Jun 17 '15 at 19:42
• @sdegutis To the contrary: it preserves the \parskip in every environment based on \list, not just quote or quotation. – egreg Jun 17 '15 at 19:43
• Oh that's neat. Although I only use quote. – sdegutis Jun 17 '15 at 19:48
• I like your patch, it seems cleaner. – sdegutis Jun 17 '15 at 20:06