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


Відповіді:


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 надає безліч функцій для налаштування маркерів, нумерації та довжини.

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


15
Якщо ви хочете видалити пробіли в усьому світі для кожного списку у вашому документі, просто \setlist[itemize]{noitemsep}введіть у преамбулу.
Фабіан Вінклер

Це не працює на моїй машині, може бути версія пакета?
RSFalcon7,

7
@ RSFalcon7: Вам потрібно вказати enumitemпакет заздалегідь: \usepackage{enumitem} \setlist[itemize]{noitemsep}... також встановлення певного значення елемента для всього документа для певного значення працює таким чином\setlist[itemize]{itemsep=1cm}
petermeissner

@marvin_dpr Дякую, проблема трохи застаріла, але я думаю, що моя установка texlive була не найкращою. Після перевстановлення все повернулось як слід.
RSFalcon7,

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.