在\ begin {itemize}之前消除空间

Ale*_*dru 95 latex

在Latex中,如何消除逐项列出前插入的空格?

\begin{itemize} % produces lots of vertical space
\item ...
\item ...
\end{itemize}
Run Code Online (Sandbox Code Playgroud)

Wil*_*son 108

解决此类问题的方法是重新定义相关的列表环境.该enumitem包是我最喜欢的方式做这样的事情; 它有许多选项和参数可以改变,可以是所有列表或单独的每个列表.

以下是我认为你想要的事情(如类似):

\usepackage{enumitem}
\setlist{nolistsep}

  • 即使我将选项设置为[topsep = 0px,partopsep = 0px],列表之前的垂直空间仍然存在 - 因此恕我直言这个答案不起作用. (22认同)
  • 完善.就像[Stefano Borini]的答案一样简单,_but_这个解决方案即使有嵌套列表也能正常工作.谢谢. (2认同)
  • @Robert,为什么不使用负数?这对我有用:`\begin{enumerate}[topsep=-5px,partopsep=0px] ...` (2认同)

Ste*_*ini 62

\vspace{-5mm}在逐项列出前尝试.

  • \ vspace是毁灭的道路.你不能与LaTeX战斗,而是拥抱它. (88认同)
  • 你的意思是拥抱太多了,战斗更容易:-) (25认同)
  • 是的,但有时战斗太多了. (22认同)
  • @Jason和所有人:以下Paolo的答案也很简单,更好:*\vspace { - \topsep}* (9认同)
  • 这应该是 **\vspace{-3.5mm}**。 (3认同)

小智 40

\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}
Run Code Online (Sandbox Code Playgroud)

  • 太好了!不幸的是,enumitem与beamer不兼容,所以我喜欢独立于包的方法.`topsep`对我来说太激进了,所以我选择了\ vspace {-0.5\topsep}` (2认同)

Sto*_*bor 13

"正确"的LaTeX方法是使用一个允许您指定所需间距的包.有几个这样的包,这两个页面链接到它们的列表......

  • 然而,声称有一种"适当"的方式在乳胶中做任何事情通常是一个坏主意;). (19认同)
  • 指向CTAN(http://www.ctan.org/)绝不是一个坏主意. (4认同)

use*_*932 13

最简单的方法是使用enumitem包(http://mirror.hmc.edu/ctan/macros/latex/contrib/enumitem/enumitem.pdf).例如,

在此输入图像描述

\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}
Run Code Online (Sandbox Code Playgroud)

此外,如果要在列表中全局使用此设置,则可以使用

\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\setlist[itemize]{noitemsep, topsep=0pt}
Run Code Online (Sandbox Code Playgroud)

但请注意,此软件包与用于在Latex中进行演示的beamer软件包不兼容.


Fab*_*eeg 7

我很满意这个平庸的包裹.除了添加消除空间的选项之外,它还添加了其他好东西,例如itemize的紧凑版本,枚举和描述环境.


Ale*_*tov 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}
Run Code Online (Sandbox Code Playgroud)

  • 这减少了列表周围的大量空白,但无法删除列表本身正上方和下方的一些空白。 (3认同)