2009-06-29 19 views
74

En Latex, ¿cómo elimino el espacio insertado antes de detallar?Eliminar espacio antes de begin {itemize}

\begin{itemize} % produces lots of vertical space 
\item ... 
\item ... 
\end{itemize} 
+5

Voy a cerrar esta pregunta como fuera de tema porque es más adecuada en [tex.se]. – Werner

Respuesta

50

Pruebe \vspace{-5mm} antes del artículo.

+1

Acepto su solución porque es más simple (cuando se usa junto con \ newcommand) que los demás – Alexandru

+72

\ vspace es el camino a la ruina. No debes luchar contra LaTeX, sino abrazarlo. – Eric

+14

sí, pero a veces la pelea es demasiado para manejar. –

11

La manera "correcta" de hacerlo es utilizar un paquete que le permite especificar el espaciado que desea. Hay varios de estos paquetes, y estas dos páginas enlazan a las listas de ellos ...

+4

Nunca es una mala idea apuntar a CTAN (http://www.ctan.org/) . – dmckee

+12

Sin embargo, en general, es una mala idea afirmar que existe una forma "adecuada" de hacer algo en el látex;). – cheshirekow

5
\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} 
+1

Esto reduce una gran cantidad de espacio en blanco alrededor de la lista, pero no elimina algunos de los espacios en blanco inmediatamente encima y debajo de la lista. – jevon

7

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

+0

Específicamente, Fabian 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 todavía es un poco molesto si los estás poniendo en una tabla sin un párrafo anterior, como yo, pero sospecho que hay un truco menos feo para arreglar esto. –

87

La forma de solucionar este tipo de problema es redefinir el entorno de lista relevante. El paquete enumitem 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.

Así es como hay que hacer (algo así) qué es lo que creo que usted quiere:

 
\usepackage{enumitem} 
\setlist{nolistsep} 
+2

Perfecto. Tan fácil como la respuesta de [Stefano Borini], pero esta solución funciona incluso si hay listas anidadas. Gracias. – devsnd

+18

Incluso si configuro las opciones en [topsep = 0px, partopsep = 0px] el espacio vertical antes de que la lista siga allí, por lo tanto, en mi humilde opinión, esta respuesta no funciona. – Robert

+0

@Robert, ¿por qué no utilizar un número negativo? Esto funciona para mí: '\ begin {enumerate} [topsep = -5px, partopsep = 0px] ...' – zkurtz

31

Uso \vspace{-\topsep} antes \begin{itemize}.

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

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

\vspace{-\topsep} 
\begin{itemize} 
    \setlength{\parskip}{0pt} 
    \setlength{\itemsep}{0pt plus 1pt} 
    \item ... 
    \item ... 
\end{itemize} 
\vspace{-\topsep} 
+0

¡Agradable! Desafortunadamente, enumitem es incompatible con beamer, por lo que me gustan los métodos independientes del paquete. 'topsep' era demasiado agresivo para mí, así que fui con \ vspace {-0.5 \ topsep}' – craq

7

La forma más limpia para que usted pueda lograr esto es utilizar el paquete de enumitem (http://mirror.hmc.edu/ctan/macros/latex/contrib/enumitem/enumitem.pdf). Por ejemplo,

enter image description here

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

Por otra parte, si desea utilizar esta opción de forma global a través de 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 beamer paquete que se utiliza para hacer presentaciones en Latex.

+0

Como se señaló (y corrigió) en otro lugar, las versiones recientes de enumitem incluyen una opción [nosep] que está diseñada para eliminar el espacio de arriba y debajo de la lista, así como entre los elementos ... pero no lo hace si también está utilizando el paquete parskip. Herbert Voß publicó una solución para esto en c.t.t. - \ setlist {partopsep = - \ parskip, parsep = 0pt} –

Cuestiones relacionadas