Elimina lo spazio prima di \ begin {itemize} [closed]


101

In Latex, come faccio a eliminare lo spazio inserito prima dell'elemento?

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

6
Voto per chiudere questa domanda come fuori tema perché è più adatta su TeX - LaTeX .
Werner


Ci sono risposte corrette a questa domanda in tex.stackexchange.com/q/86054/157031 . (Anche il link condiviso da PatrickT è pertinente)
Ciriaco Antony

Risposte:


64

Prova \vspace{-5mm}prima dell'elemento.


106
\ vspace è la strada che porta alla rovina. Non devi combattere LaTeX, ma piuttosto abbracciarlo.
Eric

26
sì, ma a volte la lotta è troppo da gestire.
Stefano Borini

30
Vuoi dire che l'abbraccio è troppo da gestire e la lotta è più facile :-)
Joachim Breitner

1
Dovrebbe essere \ vspace {-3,5 mm} .
Jason

10
@Jason e tutti: anche la risposta di Paolo sotto è semplice e molto migliore: \ vspace {- \ topsep}
Joce

114

Il modo per risolvere questo tipo di problema è ridefinire l'ambiente dell'elenco pertinente. Il enumitempacchetto è il mio modo preferito per fare questo genere di cose; ha molte opzioni e parametri che possono essere variati, sia per tutti gli elenchi che per ogni elenco individualmente.

Ecco come fare (qualcosa di simile) quello che penso tu voglia:

\ Usepackage {} enumitem
\ Setlist {} nolistsep

o

\ Usepackage {} enumitem
\ Setlist {} nosep

2
Perfetto. Facile come la risposta di [Stefano Borini], ma questa soluzione funziona anche se ci sono elenchi annidati. Grazie.
devsnd

27
Anche se imposto le opzioni su [topsep = 0px, partopsep = 0px] lo spazio verticale prima che l'elenco sia ancora lì - quindi IMHO questa risposta non funziona.
Robert

2
@ Robert, perché non utilizzare un numero negativo? Questo funziona per me: \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz

@Robert: Secondo i documenti enumitem, lo spazio verticale prima e dopo un elenco è dato da \parsep + \topsep [+ \partopsep], quindi devi impostare \topsepo \partopsepun numero negativo per compensare qualsiasi valore positivo di \parsep.
balu

44

Usa \vspace{-\topsep}prima \begin{itemize}.

Usa \setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}dopo \begin{itemize}.

E per lo spazio dopo l'elenco, usa \vspace{-\topsep}dopo \end{itemize}.

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

5
Bello! Sfortunatamente enumitem è incompatibile con beamer, quindi mi piacciono i metodi indipendenti dal pacchetto. topsepera troppo aggressivo per me, quindi sono andato con \ vspace {-0.5 \ topsep} `
craq

14

Il modo più pulito per farlo è usare il pacchetto enumitem ( https://ctan.org/pkg/enumitem ). Per esempio,

inserisci qui la descrizione dell'immagine

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

Inoltre, se desideri utilizzare questa impostazione a livello globale negli elenchi, puoi utilizzare

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

Tuttavia, nota che questo pacchetto non funziona bene con il pacchetto beamer che viene utilizzato per fare presentazioni in Latex.


Come notato (e corretto) altrove, le versioni recenti di enumitem includono un'opzione [nosep] che è progettata per rimuovere lo spazio sopra e sotto l'elenco così come tra gli elementi ... ma non lo fa se stai usando anche il pacchetto parskip. Herbert Voß ha pubblicato una soluzione a questo su ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Peter Flynn

13

Il modo "corretto" di farlo in LaTeX è usare un pacchetto che ti permetta di specificare la spaziatura che desideri. Esistono diversi pacchetti di questo tipo e queste due pagine contengono collegamenti a elenchi di essi ...


4
Non è mai una cattiva idea indicare CTAN ( ctan.org ).
dmckee --- gattino ex moderatore il

20
Tuttavia, è generalmente una cattiva idea affermare che esiste un modo "corretto" per fare qualsiasi cosa in lattice;).
cheshirekow

7

Sono molto soddisfatto del pacchetto paralist . Oltre ad aggiungere l'opzione per eliminare lo spazio, aggiunge anche altre cose carine come le versioni compatte degli ambienti di itemize, enumerate e descrivi.


1
In particolare, Fabian si riferisce ad asparaitem, asparaenum e asparadesc e ad altre cose come compactittem, compactenum e compactdesc. aspara crea ancora un nuovo paragrafo. Questo è ancora leggermente fastidioso se li metti in una tabella senza un paragrafo precedente, come me, ma sospetto che ci sia un trucco meno brutto per risolvere questo problema.
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}

2
Ciò riduce molto lo spazio bianco intorno all'elenco, ma non riesce a rimuovere alcuni spazi immediatamente sopra e sotto l'elenco stesso.
jevon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.