\ vspace - это путь к гибели. Вы не должны бороться с LaTeX, а лучше принять его.
Эрик
26
да, но иногда драка становится невыносимой.
Стефано Борини
30
Вы имеете в виду, что объятия слишком тяжелы, и бороться легче :-)
Иоахим Брайтнер
2
Это должно быть \ vspace {-3,5 мм} .
Джейсон
10
@ Джейсон и все остальное: ответ Паоло ниже тоже прост и намного лучше: \ vspace {- \ topsep}
Джос,
114
Способ решить эту проблему - переопределить соответствующую среду списка. enumitemПакет мой любимый способ сделать такого рода вещи; он имеет множество опций и параметров, которые можно изменять как для всех списков, так и для каждого списка в отдельности.
Вот как сделать (что-то вроде) то, что, я думаю, вам нужно:
Отлично. Так же просто, как ответ [Стефано Борини], но это решение работает даже при наличии вложенных списков. Спасибо.
devsnd
27
Даже если я установил параметры на [topsep = 0px, partopsep = 0px], вертикальное пространство перед списком все еще существует - следовательно, IMHO этот ответ не работает.
Роберт
2
@ Роберт, почему бы не использовать отрицательное число? У меня это работает: \begin{enumerate}[topsep=-5px,partopsep=0px] ...
zkurtz
@Robert: Согласно документации enumitem, вертикальное пространство до и после списка задается \parsep + \topsep [+ \partopsep], поэтому вам нужно либо установить, \topsepлибо \partopsepотрицательное число, чтобы компенсировать любое положительное значение \parsep.
балу
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}
Ницца! К сожалению, enumitem несовместим с beamer, поэтому мне нравятся методы, независимые от пакетов. topsepбыл слишком агрессивен для меня, поэтому я выбрал \ vspace {-0.5 \ topsep} `
\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}
Кроме того, если вы хотите использовать этот параметр глобально в списках, вы можете использовать
Как отмечалось (и исправлялось) в другом месте, последние версии enumitem включают параметр [Nosep], который предназначен для удаления пробелов над и под списком, а также между элементами ... но он не делает этого, если вы также используете пакет парскип. Герберт Фосс опубликовал решение этой проблемы на ctt - \ setlist {partopsep = - \ parskip, parsep = 0pt}
Питер Флинн
13
«Правильный» способ сделать это в LaTeX - использовать пакет, который позволяет вам указать желаемый интервал. Таких пакетов несколько, и на этих двух страницах есть ссылки на их списки ...
Однако вообще плохая идея утверждать, что есть "правильный" способ сделать что-либо в латексе;).
cheshirekow
7
Я очень доволен пакетом паралистов . Помимо добавления опции удаления пространства, он также добавляет другие приятные вещи, такие как компактные версии элементов, перечисления и описания сред.
В частности, Fabian имеет в виду asparaitem, asparaenum и asparadesc, а также другие вещи, такие как compactittem, compactenum и compactdesc. aspara все же создает новый абзац. Это все еще немного раздражает, если вы помещаете их в таблицу без предыдущего абзаца, как я, но я подозреваю, что есть менее уродливый способ исправить это.
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}
Ответы:
Попробуйте,
\vspace{-5mm}
прежде чем перечислять.источник
Способ решить эту проблему - переопределить соответствующую среду списка.
enumitem
Пакет мой любимый способ сделать такого рода вещи; он имеет множество опций и параметров, которые можно изменять как для всех списков, так и для каждого списка в отдельности.Вот как сделать (что-то вроде) то, что, я думаю, вам нужно:
или
источник
\begin{enumerate}[topsep=-5px,partopsep=0px] ...
\parsep + \topsep [+ \partopsep]
, поэтому вам нужно либо установить,\topsep
либо\partopsep
отрицательное число, чтобы компенсировать любое положительное значение\parsep
.Использовать
\vspace{-\topsep}
раньше\begin{itemize}
.Используйте
\setlength{\parskip}{0pt} \setlength{\itemsep}{0pt plus 1pt}
после\begin{itemize}
.А для пробела после списка используйте
\vspace{-\topsep}
после\end{itemize}
.источник
topsep
был слишком агрессивен для меня, поэтому я выбрал \ vspace {-0.5 \ topsep} `Самый простой способ сделать это - использовать пакет enumitem ( https://ctan.org/pkg/enumitem ). Например,
Кроме того, если вы хотите использовать этот параметр глобально в списках, вы можете использовать
Однако обратите внимание, что этот пакет плохо работает с пакетом beamer , который используется для создания презентаций в Latex.
источник
«Правильный» способ сделать это в LaTeX - использовать пакет, который позволяет вам указать желаемый интервал. Таких пакетов несколько, и на этих двух страницах есть ссылки на их списки ...
источник
Я очень доволен пакетом паралистов . Помимо добавления опции удаления пространства, он также добавляет другие приятные вещи, такие как компактные версии элементов, перечисления и описания сред.
источник
источник