\ Begin {itemize} [kapalı] öncesinde boşluğu kaldırın


102

Latex'te, itemize'dan önce eklenen boşluğu nasıl ortadan kaldırırım?

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

6
TeX - LaTeX'e daha uygun olduğu için bu soruyu konu dışı olarak kapatmak için oy kullanıyorum .
Werner


Tex.stackexchange.com/q/86054/157031 adresinde bu sorunun doğru yanıtları var . (PatrickT tarafından paylaşılan bağlantı da yerinde)
Cyriac Antony

Yanıtlar:


64

Ürün \vspace{-5mm}boyutundan önce deneyin .


106
\ vspace, mahvolmaya giden yoldur. LaTeX ile savaşmamalı, aksine onu kucaklamalısın.
Eric

26
evet, ama bazen kavga başa çıkamayacak kadar fazla.
Stefano Borini

30
Kucaklaşmanın üstesinden gelemeyecek kadar çok olduğunu ve dövüşün daha kolay olduğunu söylüyorsunuz :-)
Joachim Breitner

2
Bu \ vspace {-3,5 mm} olmalıdır .
Jason

10
@Jason ve diğerleri
Joce

114

Bu tür bir sorunu çözmenin yolu, ilgili liste ortamını yeniden tanımlamaktır. enumitemPaket bu tür bir şey yapmak benim favori yoludur; ya tüm listeler için ya da her liste için ayrı ayrı değiştirilebilen birçok seçenek ve parametreye sahiptir.

İşte istediğini düşündüğüm şeyi nasıl yapacağın (gibi bir şey):

\ usepackage {enumitem}
\ setlist {nolistsep}

veya

\ usepackage {enumitem}
\ setlist {nosep}

2
Mükemmel. [Stefano Borini] 'nin cevabı kadar kolay, ancak bu çözüm, iç içe geçmiş listeler olsa bile işe yarıyor. Teşekkür ederim.
devsnd

27
Seçenekleri [topsep = 0px, partopsep = 0px] olarak ayarlasam bile listeden önceki dikey boşluk hala orada - dolayısıyla IMHO bu cevap çalışmıyor.
Robert

2
@Robert, neden negatif bir sayı kullanmıyorsun? Bu benim için çalışıyor: \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz

@Robert: Enumitem belgelerine göre, bir listeden önceki ve sonraki dikey boşluk tarafından verilir \parsep + \topsep [+ \partopsep], bu nedenle herhangi bir pozitif değeri telafi etmek için \topsepya ayarlamanız ya da \partopsepnegatif bir sayı belirlemeniz gerekir \parsep.
balu

44

Daha \vspace{-\topsep}önce kullanın \begin{itemize}.

\setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}Sonra kullanın \begin{itemize}.

Ve listesinden sonra alanı için kullanmak \vspace{-\topsep}sonra \end{itemize}.

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

5
Güzel! Maalesef enumitem beamer ile uyumsuzdur, bu yüzden paketten bağımsız yöntemleri severim. topsepbenim için çok agresifti, bu yüzden \ vspace {-0.5 \ topsep} ile gittim
craq

15

Bunu başarmanın en temiz yolu, enumitem paketini ( https://ctan.org/pkg/enumitem ) kullanmaktır. Örneğin,

görüntü açıklamasını buraya girin

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

Ayrıca, bu ayarı listelerde global olarak kullanmak istiyorsanız,

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

Ancak, bu paketin Latex'te sunum yapmak için kullanılan beamer paketi ile iyi çalışmadığını unutmayın .


Başka bir yerde belirtildiği (ve düzeltildiği) gibi, enumitem'in son sürümleri, listenin üstündeki ve altındaki ve öğeler arasındaki boşluğu kaldırmak için tasarlanmış bir [nosep] seçeneği içerir ... ancak bunu da kullanıyorsanız bunu yapmaz parskip paketi. Herbert Voß, ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Peter Flynn

13

LaTeX'in bunu yapmanın "uygun" yolu, istediğiniz aralığı belirlemenizi sağlayan bir paket kullanmaktır. Bu tür birkaç paket var ve bu iki sayfa bunların listelerine bağlantı veriyor ...


4
CTAN'ı ( ctan.org ) işaret etmek asla kötü bir fikir değildir .
dmckee --- eski moderatör kedi yavrusu

20
Bununla birlikte, latekste herhangi bir şeyi yapmanın "uygun" bir yolu olduğunu iddia etmek genellikle kötü bir fikirdir;).
cheshirekow

7

Paralist paketten çok memnunum . Alanı ortadan kaldırma seçeneğinin yanı sıra, materyal boyutunun kompakt sürümleri, ortamları numaralandırma ve açıklama gibi başka güzel şeyler de ekler.


1
Fabian özellikle asparaitem, asparaenum ve asparadesc ve compactittem, compactenum ve compactdesc gibi diğer şeylere atıfta bulunmaktadır. aspara yine de yeni bir paragraf oluşturur. Onları benim gibi önceki paragraf olmadan bir masaya koyarsanız, bu hala biraz can sıkıcıdır, ancak bunu düzeltmek için daha az çirkin bir hack olduğundan şüpheleniyorum.
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
Bu, listedeki beyaz boşlukların çoğunu azaltır, ancak listenin hemen üstündeki ve altındaki beyaz boşlukların bir kısmını kaldıramaz.
jevon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.