Latex删除列表中项目之间的空格

Dav*_*ave 91 latex

格式化列表以删除列表项之间的空格的最佳方法是什么.

小智 164

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

例

enumitem包提供了许多功能来自定义项目符号,编号和长度.

paralist包提供了非常紧凑的列表:compactitem,compactenum甚至是inparaenum和inparaitem等段落中的列表.

  • 如果要为文档中的每个列表全局删除间距,只需在序言中添加`\ setlist [itemize] {noitemsep}`. (14认同)
  • @ RSFalcon7:您需要事先指定``enumitem``包:``\ usepackage {enumitem}\setlist [itemize] {noitemsep}``...还要将整个文档的itemsep设置为某个值方式``\ setlist [itemize] {itemsep = 1cm}`` (6认同)
  • 我还想补充一点,“nolistsep”选项[现已弃用](http://ctan.uib.no/macros/latex/contrib/enumitem/enumitem.pdf),它的后继者是“nosep”,这“杀死了所有垂直间距”。 (4认同)

Bar*_*ers 37

你可以这样做:

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


Wal*_*cio 7

这个问题已在https://tex.stackexchange.com/questions/10684/vertical-space-in-lists上提出.最高投票的答案也提到了enumitem包(这里由Stefan回答),但我也喜欢这个,它涉及创建自己的逐项环境而不是加载新包:

\newenvironment{myitemize}
{ \begin{itemize}
    \setlength{\itemsep}{0pt}
    \setlength{\parskip}{0pt}
    \setlength{\parsep}{0pt}     }
{ \end{itemize}                  } 
Run Code Online (Sandbox Code Playgroud)

哪个应该像这样使用:

\begin{myitemize} 
  \item one 
  \item two 
  \item three 
\end{myitemize}
Run Code Online (Sandbox Code Playgroud)

资料来源:https://tex.stackexchange.com/a/136050/12065