124

What is the best way to format a list as to remove the spaces between list items.

Dave
  • 2,849
  • 4
  • 28
  • 20

5 Answers5

205

It's easier with the enumitem package:

\documentclass{article}
\usepackage{enumitem}
\begin{document}
Less space:
\begin{itemize}[noitemsep]
  \item foo
  \item bar
  \item baz
\end{itemize}

Even more compact:
\begin{itemize}[noitemsep,nolistsep]
  \item foo
  \item bar
  \item baz
\end{itemize}
\end{document}

example

The enumitem package provides a lot of features to customize bullets, numbering and lengths.

The paralist package provides very compact lists: compactitem, compactenum and even lists within paragraphs like inparaenum and inparaitem.

prab4th
  • 231
  • 1
  • 2
  • 11
Stefan
  • 3,550
  • 1
  • 18
  • 18
  • 20
    If you want to remove the spacing globally for every list in your document just put `\setlist[itemize]{noitemsep}` in your preamble. – Fabian Winkler Mar 13 '13 at 15:52
  • This doesn't work in my machine, could be the package version? – RSFalcon7 Mar 18 '13 at 14:17
  • 11
    @RSFalcon7 : You need to specify the ``enumitem`` package beforehand: ``\usepackage{enumitem} \setlist[itemize]{noitemsep}`` ... also setting the itemsep for the whole document to a certain value works that way ``\setlist[itemize]{itemsep=1cm}`` – petermeissner Oct 02 '13 at 08:15
  • @marvin_dpr Thanks, the problem is a bit old, but I think that my installation of texlive wasn't the best. After the reinstallation everything returned as it was supposed to be. – RSFalcon7 Oct 02 '13 at 15:17
  • How do you get rid of the bullets? – Paweł Czopowik Feb 28 '15 at 20:45
  • 4
    I would also like to add that the `nolistsep` option is [now deprecated](http://ctan.uib.no/macros/latex/contrib/enumitem/enumitem.pdf), and that its successor is `nosep`, which "kills all vertical spacing". – larsac07 May 15 '16 at 18:48
49

You could do something like this:

\documentclass{article}

\begin{document}

Normal:

\begin{itemize}
  \item foo
  \item bar
  \item baz
\end{itemize}

Less space:

\begin{itemize}
  \setlength{\itemsep}{1pt}
  \setlength{\parskip}{0pt}
  \setlength{\parsep}{0pt}
  \item foo
  \item bar
  \item baz
\end{itemize}

\end{document}
Mitja
  • 1,969
  • 30
  • 35
Bart Kiers
  • 166,582
  • 36
  • 299
  • 288
13

This question was already asked on https://tex.stackexchange.com/questions/10684/vertical-space-in-lists. The highest voted answer also mentioned the enumitem package (here answered by Stefan), but I also like this one, which involves creating your own itemizing environment instead of loading a new package:

\newenvironment{myitemize}
{ \begin{itemize}
    \setlength{\itemsep}{0pt}
    \setlength{\parskip}{0pt}
    \setlength{\parsep}{0pt}     }
{ \end{itemize}                  } 

Which should be used like this:

\begin{myitemize} 
  \item one 
  \item two 
  \item three 
\end{myitemize}

Source: https://tex.stackexchange.com/a/136050/12065

Community
  • 1
  • 1
Waldir Leoncio
  • 10,853
  • 19
  • 77
  • 107
2

compactitem does the job.

\usepackage{paralist}

...

\begin{compactitem}[$\bullet$]
    \item Element 1
    \item Element 2
\end{compactitem}
\vspace{\baselineskip} % new line after list
Vertexwahn
  • 7,709
  • 6
  • 64
  • 90
0

You can use this with negative numbers to change the separation manually

\begin{itemize}
\itemsep-1.5em
  \item foo
  \item bar
  \item baz
\end{itemize}
aljoshoh
  • 1
  • 1