Виключіть пробіл до \ початку {itemize} [закрито]


101

Як я можу видалити простір, вставлений перед деталізацією, у Latex?

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

6
Я голосую, щоб закрити це питання поза темою, оскільки воно краще підходить для TeX - LaTeX .
Вернер


На це питання є правильні відповіді в tex.stackexchange.com/q/86054/157031 . (Посилання, яке поділився PatrickT, також є пунктом)
Cyriac Antony,

Відповіді:


64

Спробуйте \vspace{-5mm}перед розміром.


106
\ vspace - це шлях до руйнування. Ви не повинні боротися з LaTeX, а скоріше приймати його.
Ерік

26
так, але іноді боротьба занадто сильна для вирішення.
Стефано Борині

30
Ви маєте на увазі, що обійми занадто сильні, і боротьба легша :-)
Йоахім Брейтнер

1
Це має бути \ vspace {-3.5mm} .
Джейсон

10
@Jason і все: відповідь Паоло нижче також проста і набагато краща: \ vspace {- \ topsep}
14-14

114

Спосіб виправити подібну проблему - це переосмислити відповідне середовище списку. enumitemПакет мій улюблений спосіб зробити такого роду речі; він має багато варіантів і параметрів, які можна змінювати, як для всіх списків, так і для кожного списку окремо.

Ось як зробити (щось на зразок) того, що це, я думаю, ви хочете:

\ usepackage {enumitem}
\ setlist {nolistsep}

або

\ usepackage {enumitem}
\ setlist {nosp}

2
Ідеально. Так само просто, як і відповідь [Стефано Борині], але це рішення працює, навіть якщо є вкладені списки. Дякую.
devsnd

27
Навіть якщо я встановив параметри [topsep = 0px, partopsep = 0px] вертикальний пробіл, перш ніж список все ще є - отже, IMHO ця відповідь не працює.
Роберт

2
@Robert, чому б не використати від’ємне число? Це працює для мене: \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz

@Robert: Згідно з документами enumitem, вертикальний пробіл до і після списку задається символом \parsep + \topsep [+ \partopsep], тому вам потрібно встановити \topsepабо \partopsepвід'ємне число, щоб компенсувати будь-яке позитивне значення \parsep.
balu

44

Використовуйте \vspace{-\topsep}раніше \begin{itemize}.

Використовувати \setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}після \begin{itemize}.

А для місця після списку використовуйте \vspace{-\topsep}після \end{itemize}.

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

5
Приємно! На жаль, enumitem несумісний з променем, тому мені подобаються незалежні від упаковки методи. topsepбув занадто агресивним для мене, тому я пішов з \ vspace {-0.5 \ topsep} `
craq

14

Найчистішим для вас способом цього є використання пакету enumitem ( https://ctan.org/pkg/enumitem ). Наприклад,

введіть тут опис зображення

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

Крім того, якщо ви хочете використовувати це налаштування в усьому світі за списками, ви можете використовувати його

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

Однак зауважте, що цей пакет не працює добре з пакетом променевих променів, який використовується для проведення презентацій у Латексі.


Як зазначалося (і виправлено) в інших місцях, останні версії enumitem містять параметр [nosp], який призначений для видалення місця над і під списком, а також між пунктами ... але це не робиться, якщо ви також використовуєте пакет parskip. Герберт Вос опублікував рішення для цього на ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Пітер Флін

13

"Правильні" способи LaTeX зробити це - використовувати пакет, який дозволяє вказати потрібний інтервал. Такого пакету є кілька, і ці дві сторінки посилаються на їхні списки ...


4
Ніколи не погана ідея вказувати на CTAN ( ctan.org ).
dmckee --- кошеня колишнього модератора

20
Однак, як правило, погана ідея стверджувати, що існує "належний" спосіб зробити що-небудь у латексе;).
чеширків

7

Я дуже задоволений пакетом паралістів . Окрім додавання можливості для усунення простору, він також додає й інші приємні речі, такі як компактні версії елемента, перераховують та описують середовища.


1
Зокрема, Фабіан мається на увазі asparaitem, asparaenum і asparadesc та інші речі, такі як compactittem, compactenum і compactdesc. aspara все ж створює новий абзац. Це все ще трохи дратує, якщо ви вкладаєте їх у таблицю без попереднього абзацу, як і я, але я підозрюю, що для вирішення цього питання є менш некрасивий хакер.
Томас Левін

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