乳胶删除列表中的项目之间的空间


Answers:


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程序包提供了许多功能以自定义项目符号,编号和长度。

paralist软件包提供了非常紧凑的列表:compactitem,compactenum甚至inparaenum和inparaitem之类的段落中的列表。


15
如果要全局删除文档中每个列表的间距,只需\setlist[itemize]{noitemsep}在序言中添加。
Fabian Winkler 2013年

这在我的机器上不起作用,可能是软件包版本吗?
RSFalcon7 2013年

7
@ RSFalcon7:您需要enumitem预先指定软件包:\usepackage{enumitem} \setlist[itemize]{noitemsep}...还将整个文档的itemep设置为某个值也可以这样工作\setlist[itemize]{itemsep=1cm}
petermeissner 2013年

@marvin_dpr谢谢,问题有点老了,但是我认为我的texlive安装不是最好的。重新安装后,所有内容均恢复了原来的状态。
RSFalcon7

1
我还要补充一点,该nolistsep选项现在已弃用,其后继选项为nosep,它“杀死了所有垂直间距”。
larsac07 '16

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程序包(Stefan在此处回答),但我也喜欢这个程序包,它涉及创建您自己的项目环境,而不是加载新程序包:

\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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.