Латексное удаление пробелов между элементами в списке

Ответы:

172

С пакетом enumitem это проще:

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

пример

Пакет enumitem предоставляет множество функций для настройки маркеров, нумерации и длины.

Пакет paralist предоставляет очень компактные списки: compactitem, compactenum и даже списки внутри абзацев, такие как inparaenum и inparaitem.

Стефан
источник
15
Если вы хотите удалить интервал глобально для каждого списка в вашем документе, просто вставьте \setlist[itemize]{noitemsep}преамбулу.
Fabian Winkler
Это не работает на моей машине, может быть, версия пакета?
RSFalcon7
7
@ RSFalcon7: Вам нужно указать enumitemпакет заранее: \usepackage{enumitem} \setlist[itemize]{noitemsep}... также установка определенного значения для элемента itemsep для всего документа работает таким же образом,\setlist[itemize]{itemsep=1cm}
Петермайсснер 02 окт.13,
@marvin_dpr Спасибо, проблема немного устарела, но я думаю, что моя установка texlive была не самой лучшей. После переустановки все вернулось как должно было быть.
RSFalcon7 02
1
Я также хотел бы добавить, что эта nolistsepопция теперь устарела и что ее преемник nosep"убивает все вертикальные интервалы".
larsac07
38

Вы можете сделать что-то вроде этого:

\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}
Барт Кирс
источник
10

Этот вопрос уже задавался на /tex/10684/vertical-space-in-lists . В ответе, получившем наибольшее количество голосов, также упоминался enumitemпакет (здесь ответил Стефан), но мне также нравится этот, который включает в себя создание вашей собственной среды детализации вместо загрузки нового пакета:

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

Что следует использовать так:

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

Источник: https://tex.stackexchange.com/a/136050/12065

Вальдир Леонсио
источник
1

compactitem делает свою работу.

\usepackage{paralist}

...

\begin{compactitem}[$\bullet$]
    \item Element 1
    \item Element 2
\end{compactitem}
\vspace{\baselineskip} % new line after list
Vertexwahn
источник