Latex 在\begin{itemize}之前消除空格

Latex 在\begin{itemize}之前消除空格,latex,Latex,在Latex中,如何消除逐项列出之前插入的空间 \begin{itemize} % produces lots of vertical space \item ... \item ... \end{itemize} 在逐项列出之前,请尝试\vspace{-5mm}。正确的方法是使用允许您指定所需间距的软件包。有几个这样的包,这两个页面链接到它们的列表 TeX常见问题条目 我对这件事很满意。除了添加消除空间的选项外,它还添加了其他一些不错的功能,如itemize、enumerate和Desc

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

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

在逐项列出之前,请尝试
\vspace{-5mm}

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

  • TeX常见问题条目

我对这件事很满意。除了添加消除空间的选项外,它还添加了其他一些不错的功能,如itemize、enumerate和Descripte环境的精简版本。

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

以下是我认为你想要做的事情:

\usepackage{enumitem} \setlist{nolistsep} \usepackage{enumitem} \集合列表{nolistsep} 或

\usepackage{enumitem} \集合列表{nosp}
\begin{itemize}
之前使用
\vspace{-\topsep}

\vspace{-\topsep}
\begin{itemize}
  \setlength{\parskip}{0pt}
  \setlength{\itemsep}{0pt plus 1pt}
  \item ...
  \item ...
\end{itemize}
\vspace{-\topsep}
\begin{itemize}
之后使用
\setlength{\parskip}{0pt}\setlength{\itemsep}{0pt+1pt}

\vspace{-\topsep}
\begin{itemize}
  \setlength{\parskip}{0pt}
  \setlength{\itemsep}{0pt plus 1pt}
  \item ...
  \item ...
\end{itemize}
\vspace{-\topsep}
对于列表后面的空格,在
\end{itemize}
之后使用
\vspace{-\topsep}

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

实现这一点最干净的方法是使用enumitem包()。比如说,

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

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


但是,请注意,此软件包与用于使用Latex进行演示的beamer软件包不能很好地配合使用。

指向CTAN()从来都不是一个坏主意。然而,如果声称使用Latex做任何事情都有一种“正确”的方法,则通常是一个坏主意;)\太空是毁灭之路。你不能对抗乳胶,而是要拥抱它。是的,但有时候对抗太难对付。你的意思是拥抱太难对付了,对抗更容易:-)这应该是\vspace{-3.5mm}。@Jason and all:Paolo下面的答案也很简单,而且更好:\vspace{-\topsep}这减少了列表中的大量空白,但无法删除列表上方和下方的一些空白。这对我不起作用。。。除非代码被放入
\begin{document}
,否则它会抛出一个错误,即使这样做了,它也会在PDF标题页的开头留下一个神秘的
istI
。特别是,Fabian指的是asparaitem、asparaenum和asparadesc以及其他类似CompactItem、compactenum和compactdesc的东西。aspara仍然创建了一个新段落。如果你像我一样把它们放在一张没有前面段落的桌子上,这仍然有点令人讨厌,但我怀疑有一个不那么难看的黑客来修复它。完美。与[Stefano Borini]的答案一样简单,但即使存在嵌套列表,此解决方案也可以工作。谢谢。即使我将选项设置为[topsep=0px,partopsep=0px],列表前的垂直空间仍然存在-因此,我认为这个答案不起作用。@Robert,为什么不使用负数?这对我很有用:
\begin{enumerate}[topsep=-5px,partopsep=0px]…
@Robert:根据enumitem文档,列表前后的垂直空间由
\parsep+\topsep[+\partopsep]
给出,因此,您必须将
\topsep
\partopsep
设置为负数,以补偿
\parsep
的任何正值。您可以全局设置列表参数:
\setlist[itemize]{topsep=-0.2cm}
(请参阅enumitem包文档中的全局设置:)。很好!不幸的是,enumitem与beamer不兼容,所以我喜欢独立于包的方法
topsep
对我来说太激进了,所以我选择了\vspace{-0.5\topsep}`对每个
itemize
这样做是痛苦的……正如其他地方所指出(并更正)的,enumitem的最新版本包括一个[nosep]选项,用于删除列表上方和下方以及项目之间的空间…但如果同时使用parskip包,则不会执行此操作。Herbert Voß在c.t.t.-\setlist{partopsep=-\parskip,parsep=0pt}上发布了一个解决方案。我投票将这个问题作为离题题题结束,因为它更适合于on。中有这个问题的正确答案。(PatrickT共享的链接也很重要)
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\setlist[itemize]{noitemsep, topsep=0pt}