204

I'm somewhat of a LaTeX noob, and this is driving me completely nuts.

When I type

\documentclass{article}
\usepackage{enumitem}

\begin{document}
    Some text
    \begin{itemize}[noitemsep]
        \item Item 1
        \item Item 2
        \item Item 3
    \end{itemize}
\end{document}

I don't want the space which appears in between the text "Some text" and the itemization to be there:

screenshot

When I search around on Google all I see is tons of long, complicated advice on this site, StackOverflow, forums, etc. on how to not fix the problem ("parskip is evil", etc.), or tons of vague/confusing answers on what package to look at, with no actual example for me to learn from.

So while this question is already asked many times, I have never found a single concrete answer to this question.

The question couldn't be simpler: How do I "properly" get rid of this extra space?

7 Answers 7

222

That space is governed by topsep. Set it to 0pt.
You can customize itemize/enumerate environments very easily using the enumitem package.

enter image description here

\documentclass{article}
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
\noindent Some text
\begin{itemize}[noitemsep]
  \item Item 1
  \item Item 2
  \item Item 3
\end{itemize}
\bigskip\bigskip
Some text
\begin{itemize}[noitemsep,topsep=0pt]
  \item Item 1
  \item Item 2
  \item Item 3
\end{itemize}
\end{document}

To set this globally, use

\usepackage{enumitem}
\setlist[itemize]{noitemsep, topsep=0pt}

See section 5 Global settings (p 9) of the enumitem documentation for more details on this and perhaps creating your own list environment that has these predefined settings.

16
  • 2
    Bonus question: Do you happen to know if there's any way to change the default value for the whole document? :)
    – user541686
    Commented Dec 8, 2012 at 3:32
  • 16
    Is this answer still valid? I didn't work for me.
    – piepi
    Commented Feb 4, 2018 at 5:33
  • 3
    @piepi: Yes. You must be doing something different. For example, using the beamer class (or something else).
    – Werner
    Commented Feb 5, 2018 at 16:15
  • 2
    Please mention that you are using the package enumitem. Just copying the itemize block won't work.
    – Thomas
    Commented Apr 21, 2020 at 11:19
  • 2
    @Thomas: You'll see that I have \usepackage{enumitem} in the preamble, so that means that I am "using the package enumitem."
    – Werner
    Commented Apr 21, 2020 at 15:18
16

The enumitem package now provides [nosep] to suppress the space above and below lists as well as the space between items. However, this option does not suppress the space above and below the list if you are also using the parskip package in your document.

9
  • 1
    This answer doesn't make sense... parskip doesn't provide a nosep option.
    – Werner
    Commented Oct 13, 2016 at 21:20
  • 1
    Sorry, I was not as explicit as I should have been: the [nosep] option in the enumitem package does not work if you are also using the parskip package in the document. Commented Oct 23, 2016 at 21:17
  • 1
    So how do I suppress the space above and below lists if I am using parskip? Commented Feb 14, 2018 at 8:49
  • 1
    You have to do it manually: \kern-\parskip\begin{itemize} then your \items and then \end{itemize}\kern-\parskip. I am assuming there is a typographical reason why you want to do this: if you use parskip then you presumably expect space above and below lists. It looks a little weird having space between paragraphs but not before and after lists. Commented Feb 15, 2018 at 20:30
  • 1
    You'd need to provide more information than 'not working'. What I suggested works fine in a default 'article' type document Commented Jan 4, 2020 at 12:13
16

An alternative to this is to just use:

\usepackage{paralist}

And the compactitem environment:

\begin{compactitem} 
    \item This is entry number one, compact 
    \item This is entry number two, compact 
\end{compactitem}

to see more on this, check: Compact lists with paralist.

3
  • Can you please check the link, looks suspicious, it redirects me to a scam website Commented Sep 1, 2019 at 4:20
  • Broken link indeed. You will have to Google "Compact lists paralist".
    – PLG
    Commented Sep 2, 2019 at 8:03
  • 2
    This is incompatible with beamer
    – Spenhouet
    Commented Sep 8, 2019 at 13:52
7

In some cases you might need to add \nointerlineskip after an itemize environment to get rid of spacing below.

4
  • This makes the vertical spacing after the environment inconsistent. Commented Apr 21, 2019 at 11:45
  • 5
    This is the only thing that worked for me with beamer
    – Spenhouet
    Commented Sep 8, 2019 at 13:53
  • 2
    Is there another option to get rid of the space above itemize / enumerate?
    – mhellmeier
    Commented Jan 12, 2021 at 14:38
  • An extra environment according to texfaq.org/FAQ-complist together with \vspace{-0.5\topsep} and \nointerlineskip before and after worked for me with beamer. Nice thing: no additional package needed.
    – mfg
    Commented Jul 26, 2023 at 9:32
7

Between an itemize environment and its preceding text, a length, \parskip, also adds to that space. Enumitem package does not control it. To completely eliminate that space without changing \parskip, you can use

\setlist{nosep,topsep=-\parskip}

to offset that space globally. You may also set it per-environment.

1
  • This answer is very helpful! You can also set-up a key to use which does this if you only want it for some lists: \SetEnumitemKey{noparskip}{nosep, topsep=-\parskip}
    – jw5801
    Commented Jun 27, 2023 at 7:28
5

This worked for me, add minus topsep=-8pt

\begin{itemize}[noitemsep,topsep=-8pt]
3
  • When I try this, the text noitemsep,topsep=-8pt is appearing verbatim at each item, instead of being used to adjust the spacings.
    – Della
    Commented May 28, 2022 at 12:49
  • 1
    @Della you need to import enumitem Commented Jun 7, 2022 at 10:18
  • 2
    jxy's answer is the more robust version of this using topsep=-\parskip
    – jw5801
    Commented Jun 27, 2023 at 7:33
0

For people that still can't figure it out, just do the dumb-down straight-to-the-point method \vspace*{-#mm} underneath the item for example, enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .