Látex Eliminar espacios entre elementos de la lista


Respuestas:


172

Es más fácil con el paquete 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}

ejemplo

El paquete enumitem proporciona muchas características para personalizar viñetas, numeración y longitudes.

El paquete paralist proporciona listas muy compactas: compactitem, compactenum e incluso listas dentro de párrafos como inparaenum e inparaitem.


15
Si desea eliminar el espaciado globalmente para cada lista en su documento, simplemente incluya \setlist[itemize]{noitemsep}su preámbulo.
Fabian Winkler

Esto no funciona en mi máquina, ¿podría ser la versión del paquete?
RSFalcon7

7
@ RSFalcon7: Debe especificar el enumitempaquete de antemano: \usepackage{enumitem} \setlist[itemize]{noitemsep}... también la configuración de itemsep para todo el documento en un cierto valor funciona de esa manera\setlist[itemize]{itemsep=1cm}
petermeissner

@marvin_dpr Gracias, el problema es un poco viejo, pero creo que mi instalación de texlive no fue la mejor. Después de la reinstalación, todo volvió a ser como se suponía.
RSFalcon7

1
También me gustaría agregar que la nolistsepopción ahora está en desuso , y que su sucesor es nosep, que "mata todo el espaciado vertical".
larsac07

38

Podrías hacer algo como esto:

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

10

Esta pregunta ya se hizo en /tex/10684/vertical-space-in-lists . La respuesta más votada también mencionó el enumitempaquete (aquí respondido por Stefan), pero también me gusta este, que implica crear su propio entorno de detallado en lugar de cargar un nuevo paquete:

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

Que debería usarse así:

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

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


1

compactitem hace el trabajo.

\usepackage{paralist}

...

\begin{compactitem}[$\bullet$]
    \item Element 1
    \item Element 2
\end{compactitem}
\vspace{\baselineskip} % new line after list
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.