Eliminar espacio antes de \ begin {itemize} [cerrado]

101

En Latex, ¿cómo elimino el espacio insertado antes de detallar?

\begin{itemize} % produces lots of vertical space
\item ...
\item ...
\end{itemize}
Alexandru
fuente
6
Estoy votando para cerrar esta pregunta como fuera de tema porque se adapta mejor a TeX - LaTeX .
Werner
Hay respuestas correctas a esta pregunta en tex.stackexchange.com/q/86054/157031 . (El enlace compartido por PatrickT también está en el punto)
Cyriac Antony

Respuestas:

64

Pruébelo \vspace{-5mm}antes de detallar.

Stefano Borini
fuente
106
\ vspace es el camino a la ruina. No debes luchar contra LaTeX, sino abrazarlo.
Eric
26
sí, pero a veces la pelea es demasiado para manejar.
Stefano Borini
30
Quieres decir que el abrazo es demasiado para manejar y la pelea es más fácil :-)
Joachim Breitner
1
Debe ser \ vspace {-3.5mm} .
Jason
10
@Jason y todo: la respuesta de Paolo a continuación también es simple y mucho mejor: \ vspace {- \ topsep}
Joce
114

La forma de solucionar este tipo de problema es redefinir el entorno de lista relevante. El enumitempaquete es mi forma favorita de hacer este tipo de cosas; tiene muchas opciones y parámetros que se pueden variar, ya sea para todas las listas o para cada lista individualmente.

He aquí cómo hacer (algo así como) lo que creo que quieres:

\ usepackage {enumitem}
\ setlist {nolistsep}

o

\ usepackage {enumitem}
\ setlist {nosep}
Will Robertson
fuente
2
Perfecto. Tan fácil como la respuesta de [Stefano Borini], pero esta solución funciona incluso si hay listas anidadas. Gracias.
2012
27
Incluso si configuro las opciones en [topsep = 0px, partopsep = 0px] el espacio vertical antes de que la lista todavía esté allí, por lo tanto, en mi humilde opinión, esta respuesta no funciona.
Robert
2
@Robert, ¿por qué no usar un número negativo? Esto funciona para mí: \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz
@Robert: De acuerdo con los documentos enumitem, el espacio vertical antes y después de una lista viene dado por \parsep + \topsep [+ \partopsep], por lo que debe establecer \topsepo \partopsepen un número negativo para compensar cualquier valor positivo de \parsep.
balu
44

Úselo \vspace{-\topsep}antes \begin{itemize}.

Usar \setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}después \begin{itemize}.

Y para el espacio después de la lista, use \vspace{-\topsep}after \end{itemize}.

\vspace{-\topsep}
\begin{itemize}
  \setlength{\parskip}{0pt}
  \setlength{\itemsep}{0pt plus 1pt}
  \item ...
  \item ...
\end{itemize}
\vspace{-\topsep}
PeaGon
fuente
5
¡Agradable! Desafortunadamente, enumitem es incompatible con beamer, así que me gustan los métodos independientes del paquete. topsepfue demasiado agresivo para mí, así que elegí \ vspace {-0.5 \ topsep} `
craq
14

La forma más limpia de lograr esto es usar el paquete enumitem ( https://ctan.org/pkg/enumitem ). Por ejemplo,

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
\noindent Here is some text and I want to make sure
there is no spacing the different items. 
\begin{itemize}[noitemsep]
  \item Item 1
  \item Item 2
  \item Item 3
\end{itemize}
\noindent Here is some text and I want to make sure
there is no spacing between this line and the item
list below it.
\begin{itemize}[noitemsep,topsep=0pt]
  \item Item 1
  \item Item 2
  \item Item 3
\end{itemize}
\end{document}

Además, si desea utilizar esta configuración globalmente en todas las listas, puede utilizar

\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\setlist[itemize]{noitemsep, topsep=0pt}

Sin embargo, tenga en cuenta que este paquete no funciona bien con el paquete beamer que se utiliza para hacer presentaciones en Latex.

usuario3613932
fuente
Como se señaló (y se corrigió) en otra parte, las versiones recientes de enumitem incluyen una opción [nosep] que está diseñada para eliminar el espacio encima y debajo de la lista, así como entre los elementos ... pero no hace esto si también está utilizando el paquete parskip. Herbert Voß publicó una solución a esto en ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Peter Flynn
13

Las formas "adecuadas" de LaTeX para hacerlo es usar un paquete que le permita especificar el espaciado que desea. Hay varios paquetes de este tipo, y estas dos páginas enlazan con listas de ellos ...

Stobor
fuente
4
Nunca es una mala idea señalar CTAN ( ctan.org ).
dmckee --- ex-moderador gatito
20
Sin embargo, generalmente es una mala idea afirmar que existe una forma "adecuada" de hacer cualquier cosa con el látex;).
Cheshirekow
7

Estoy muy contento con el paquete paralista . Además de agregar la opción para eliminar el espacio, también agrega otras cosas agradables como versiones compactas de los entornos detallar, enumerar y describir.

Fabian Steeg
fuente
1
Específicamente, Fabián se refiere a asparaitem, asparaenum y asparadesc y a otras cosas como compactittem, compactenum y compactdesc. aspara crea un nuevo párrafo todavía. Esto sigue siendo un poco molesto si los coloca en una tabla sin un párrafo anterior, como yo, pero sospecho que hay un truco menos feo para solucionarlo.
Thomas Levine
6
\renewcommand{\@listI}{%
\leftmargin=25pt
\rightmargin=0pt
\labelsep=5pt
\labelwidth=20pt
\itemindent=0pt
\listparindent=0pt
\topsep=0pt plus 2pt minus 4pt
\partopsep=0pt plus 1pt minus 1pt
\parsep=0pt plus 1pt
\itemsep=\parsep}
Alexey Malistov
fuente
2
Esto reduce gran parte del espacio en blanco alrededor de la lista, pero no elimina algunos de los espacios en blanco inmediatamente arriba y debajo de la lista.
jevon