43

I use this code now:

\documentclass[11pt]{article}
\usepackage{enumerate}
\begin{document}
\begin{enumerate}
\item a
\item b
\item c
\end{enumerate}
\end{document}

I want to decrease the line spacing between a,b,c. Can someone help me do this?

And how do I remove the space BEFORE enumerate?

66

Better to use the latest and powerful enumitem package.

\documentclass[11pt]{article}
\usepackage{enumitem}
\begin{document}
Some text here.
\begin{enumerate}[topsep=0pt,itemsep=-1ex,partopsep=1ex,parsep=1ex]
\item a
\item b
\item c
\end{enumerate}
Some more text.
\end{document}

Here you may have to adjust these parameters as per your needs:

  1. \topsep: space between first item and preceding paragraph.
  2. \partopsep: extra space added to \topsep when environment starts a new paragraph.
  3. \itemsep: space between successive items.

In the above code the parameters are set locally. If you want, you can make them global with the help of \setlist[enumerate]{topsep=0pt,itemsep=-1ex,partopsep=1ex,parsep=1ex}. For details, refer the enumitem manual at texdoc.

You can suppress all of these spaces by using nolistsep.

\documentclass[11pt]{article}
\usepackage{enumitem}
\begin{document}
\noindent Some text here.
\begin{enumerate}[nolistsep]
\item a
\item b
\item c
\end{enumerate}
Some more text.
\end{document}

enter image description here

21

Instead of using a package, you can also use the built-in features and define a new environment

\newenvironment{tight_enumerate}{
\begin{enumerate}
  \setlength{\itemsep}{0pt}
  \setlength{\parskip}{0pt}
}{\end{enumerate}}

This will nicely squeeze the items close together. If you need them even closer, you can use negative numbers, but be careful not to cause overlapping text.

  • How can I use this approach to affect whole document? – 71GA Sep 11 '15 at 17:20
  • If you replace all enumerates in the document with tight_enumerate it should work out. If you don't want to do that you can also use \renewenvironment{enumerate} instead to overwrite the original enumerate settings (for this document) – Michiel Sep 21 '15 at 8:52
  • I think this is correct way of doing it. In my case, I only wanted to modify enumerate for only specific list not all. – Joarder Kamal Sep 21 '15 at 20:51
12

enumitem offers ready-made options for eliminating the space between items and paragraphs within the list (noitemsep) or all vertical spacing (nosep):

Standard enumitem options for killing vertical spacing

\documentclass[11pt]{article}
\usepackage{enumitem, kantlipsum}
\begin{document}
  \paragraph{List without vertical spacing between items and paragraphs:}
  \kant[2]
  \begin{enumerate}[noitemsep]
    \item a
    \item b
    \item c
  \end{enumerate}
  Something after the list.

  \paragraph{List without vertical spacing:}
  \kant[3]
  \begin{enumerate}[nosep]
    \item a
    \item b
    \item c
  \end{enumerate}
  Something after the list.
\end{document}

Note, however, that nolistsep is now considered deprecated and should not be used.

7

Use the enumitem package instead of enumerate

\usepackage[shortlabels]{enumitem}

then it will support the same suntax as the enumerate package.

The enumerate package does not provide any extra configurations other than the label.

  • Ah that worked great. enumitem was breaking some of my previous enumerate commands. – Raffi Khatchadourian Apr 14 '15 at 23:47

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.