13

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]?

4
  • "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
15

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.

2
  • 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
7

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}
4
  • Thanks for showing me that it is a "deadly sin", I'll use the parskip package. – Jonas Teuwen Apr 1 '11 at 21:03
  • @JacobAkkerboom In the next sentence, the asker's example is almost explicitly listed as do not use. – mflo-ByeSE Mar 22 '16 at 0:55
  • @mfloren I should have been more clear and careful. I was personally using \setlength{\parindent}{0 em}, without changing \parskip. It seems that changing \parskip is what is really evil. I suppose I interpreted this answer as saying: "Never change either one of \parindent or \parskip". But I suppose the answerer is saying that this combination of changes is bad, as does his reference. This makes sense as the OP also uses the combination. – Jacob Akkerboom Mar 22 '16 at 8:58
  • 1
    With enumitem and the KOMAoptions parskip, I use \setlist{nosep,topsep=-\parskip} – Zouib Sep 2 '16 at 8:23
1

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

\begin{enumerate}\setlength{\itemsep}{-\baselineskip} 
 \item  good
 \item  bad
\end{enumerate}
3
  • I agree with the remarks about changing \parindent and \parskip. – Alain Matthes Apr 1 '11 at 21:03
  • Thanks, but it seems like it is bad practice to do so. – Jonas Teuwen 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.