Latex Usuń odstępy między pozycjami na liście

Odpowiedzi:

172

Z pakietem enumitem jest łatwiej:

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

przykład

Pakiet enumitem zapewnia wiele funkcji dostosowywania punktorów, numeracji i długości.

Pakiet paralist zapewnia bardzo zwarte listy: compactitem, compactenum, a nawet listy w akapitach, takich jak inparaenum i inparaitem.

Stefan
źródło
15
Jeśli chcesz globalnie usunąć odstępy dla każdej listy w twoim dokumencie, po prostu umieść \setlist[itemize]{noitemsep}w preambule.
Fabian Winkler
To nie działa na moim komputerze, czy może to być wersja pakietu?
RSFalcon7
7
@ RSFalcon7: Musisz enumitemwcześniej określić pakiet: \usepackage{enumitem} \setlist[itemize]{noitemsep}... również ustawienie pozycji itemsep dla całego dokumentu na określoną wartość działa w ten sposób\setlist[itemize]{itemsep=1cm}
petermeissner
@marvin_dpr Dzięki, problem jest trochę stary, ale myślę, że moja instalacja texlive nie była najlepsza. Po ponownej instalacji wszystko wróciło tak, jak powinno.
RSFalcon7
1
Chciałbym również dodać, że ta nolistsepopcja jest obecnie przestarzała , a jej następcą jest nosep, co „zabija wszystkie pionowe odstępy”.
larsac07
38

Możesz zrobić coś takiego:

\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}
Bart Kiers
źródło
10

To pytanie zostało już zadane na /tex/10684/vertical-space-in-lists . Najwyżej oceniona odpowiedź enumitemdotyczyła również pakietu (tutaj odpowiedział Stefan), ale podoba mi się również ten, który polega na utworzeniu własnego środowiska do tworzenia pozycji zamiast ładowania nowego pakietu:

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

Które powinny być używane w ten sposób:

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

Źródło: https://tex.stackexchange.com/a/136050/12065

Waldir Leoncio
źródło
1

compactitem wykonuje pracę.

\usepackage{paralist}

...

\begin{compactitem}[$\bullet$]
    \item Element 1
    \item Element 2
\end{compactitem}
\vspace{\baselineskip} % new line after list
Vertexwahn
źródło