【问题标题】:Latex Remove Spaces Between Items in List乳胶删除列表中项目之间的空格
【发布时间】:2010-07-18 13:09:34
【问题描述】:

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

【问题讨论】:

标签: latex


【解决方案1】:

使用 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。

【讨论】:

  • 如果您想为文档中的每个列表全局删除间距,只需在序言中添加 \setlist[itemize]{noitemsep}
  • 这在我的机器上不起作用,可能是软件包版本?
  • @RSFalcon7 :您需要事先指定 enumitem 包:\usepackage{enumitem} \setlist[itemize]{noitemsep} ... 也可以将整个文档的 itemep 设置为某个值,这样可以\setlist[itemize]{itemsep=1cm}
  • @marvin_dpr 谢谢,问题有点老了,但我认为我安装的 texlive 不是最好的。重新安装后,一切都恢复了应有的状态。
  • 我还要补充一点,nolistsep 选项是 now deprecated,它的后继是 nosep,它“消除了所有垂直间距”。
【解决方案2】:

你可以这样做:

\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}

【讨论】:

    【解决方案3】:

    这个问题已经在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}                  } 
    

    应该这样使用:

    \begin{myitemize} 
      \item one 
      \item two 
      \item three 
    \end{myitemize}
    

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

    【讨论】:

      【解决方案4】:

      compactitem 完成这项工作。

      \usepackage{paralist}
      
      ...
      
      \begin{compactitem}[$\bullet$]
          \item Element 1
          \item Element 2
      \end{compactitem}
      \vspace{\baselineskip} % new line after list
      

      【讨论】: