# Too much whitespace before lists when changing the \parskip length

I have the following in my preamble:

\addtolength{\parskip}{\baselineskip}
\setlength{\parindent}{0 pt}


Now there is too much whitespace before an enumerate list environment, in the example I have put an \mbox{} but it is the same with text. How do I decrease it without hacks like
\hspace{1mm}\\[-10mm]?

-
"A solution to (nuke) is an "integral solution" to (more nukes)"? –  Martin Scharrer Apr 1 '11 at 21:00
@Martin: Yes. It is an important equation :P. –  Jonas Teuwen Apr 1 '11 at 23:45
@JonasTeuwen Would you mind reuploading the image using the official stackexchange interface, i.e. the image icon on top of the text field (shortcut: CTRL+G)? The server it is hosted on seems to be down right now. –  diabonas Mar 4 '12 at 21:50
@diabonas: Unfortunately, I could't find the it anymore. I have deleted it. –  Jonas Teuwen Mar 4 '12 at 22:26

This is actually a "conceptual bug" in LaTeX: \parskip is added before and after lists, even when they don't start/end a paragraph. See this answer for details.

Solution: Don't change the \parskip length, but load the parskip package or use one of the KOMA-script classes or memoir.

-
Which one would you recommend: parskip or the KOMA-script classes? –  Jonas Teuwen Apr 1 '11 at 21:04
@Jonas: I recommend the KOMA-script classes -- be aware, however, that their default page layout is different from that of the standard classes. –  lockstep Apr 1 '11 at 21:07

Changing \parindent and \parskip is considered as one of the "deadly sins" in l2tabu and should be avoided. You can use the parskip package, or one of the options provided by the KOMA-Script document classes.

However, if you decide to continue with the modifications to \parskip and \parindent, you can reduce the vertical space before and after the list by loading the enumitem package and using \setenumerate to change the value of topsep; simply add these lines to the preamble of your document (using the value that best suits your needs):

\usepackage{enumitem}

\setenumerate{topsep=-\baselineskip}

-
Thanks for showing me that it is a "deadly sin", I'll use the parskip package. –  Jonas Teuwen Apr 1 '11 at 21:03

After \addtolength{\parskip}{\baselineskip} in the preamble

\begin{enumerate}\setlength{\itemsep}{-\baselineskip}
\item  good

I agree with the remarks about changing \parindent and \parskip. –  Alain Matthes Apr 1 '11 at 21:03
You can prefer to have a null indent but to add space to the parskip. It's a typography choice. After the problem is to know the side effects. For example in a mathematics exam it's sometimes useful to change itemsep if you use enumerate to ask questions. But the use of parskip package is better solution. –  Alain Matthes Apr 1 '11 at 21:10