Latex remove espaços entre itens na lista

Respostas:

172

É mais fácil com o pacote enumitem:

\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}

exemplo

O pacote enumitem oferece muitos recursos para personalizar marcadores, numeração e comprimentos.

O pacote paralist fornece listas muito compactas: compactitem, compactenum e até listas dentro de parágrafos como inparaenum e inparaitem.

Stefan
fonte
15
Se você deseja remover o espaçamento globalmente para cada lista em seu documento, basta inserir \setlist[itemize]{noitemsep}seu preâmbulo.
Fabian Winkler
Isso não funciona na minha máquina, poderia ser a versão do pacote?
RSFalcon7 de
7
@ RSFalcon7: Você precisa especificar o enumitempacote de antemão: \usepackage{enumitem} \setlist[itemize]{noitemsep}... também definir o itemsep de todo o documento para um determinado valor funciona dessa maneira\setlist[itemize]{itemsep=1cm}
petermeissner
@marvin_dpr Obrigado, o problema é um pouco antigo, mas acho que minha instalação do texlive não foi das melhores. Após a reinstalação, tudo voltou ao normal.
RSFalcon7
1
Eu também gostaria de acrescentar que a nolistsepopção agora está obsoleta , e que sua sucessora é nosep, que "elimina todo o espaçamento vertical".
larsac07
38

Você poderia fazer algo assim:

\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}
Bart Kiers
fonte
10

Esta pergunta já foi feita em /tex/10684/vertical-space-in-lists . A resposta mais votada também mencionou o enumitempacote (aqui respondido por Stefan), mas também gosto deste, que envolve a criação de seu próprio ambiente de itemização em vez de carregar um novo pacote:

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

Que deve ser usado assim:

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

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

Waldir Leoncio
fonte
1

compactitem faz o trabalho.

\usepackage{paralist}

...

\begin{compactitem}[$\bullet$]
    \item Element 1
    \item Element 2
\end{compactitem}
\vspace{\baselineskip} % new line after list
Vertexwahn
fonte