有没有方法可以改变项目间的差距?

有没有方法可以改变项目间的差距?

我想很多人都想知道这个函数,我知道这个问题一定有一个很好的答案。但是,我找不到它,可能是因为我不知道这个问题的合适关键字。

当我使用 beamer 时,我在 \begin{document} 之后立即使用以下代码。

\let\OLDitemize\itemize
\let\OLDenumerate\enumerate
\renewcommand\itemize{\OLDitemize\addtolength{\itemsep}{??\baselineskip}}
\renewcommand\enumerate{\OLDenumerate\addtolength{\itemsep}{???\baselineskip}}

然后,我可以通过将数字代入 ?? 来调整 itemize 环境的项目间间隙。同样,也可以通过将数字代入 ??? 来调整 enumerate 环境之一。

例如,如果我将 2 改为 ?? 并将 4 改为 ???,则 itemize 和 enumerate 环境的整个项目间间隙都会发生变化。

但是,我想根据整个程序中的项目级别调整项目的间隙。也就是说,如果我编写以下代码,

\begin{itemize}
    \item a
    \item b
    \item c
    \begin{itemize}
        \item d
        \item e
        \item f
    \end{itemize}
    \item g
    \item h
    \item i
\end{itemize}

我想要得到的结果如下: 九月

请告诉我如何根据项目的级别更改项目间隙。有时,我会使用 \vspace 命令,例如 \vspace{.7\baselineskip}。这会使代码变得非常脏,无法阅读。

其实label不是我的目的,我想随意设置item的间距,不管是itemize还是enumerate。

答案1

使用该enumitem包,您可以为 的每个级别独立指定间距参数itemize,其中\seteumerate[<level>]{}。下面,我用一个独特的itemsep和来展示它topsep,尽管所有间距参数都可以发挥作用。

\documentclass{article}
\usepackage{enumitem}
\setitemize[1]{itemsep=10pt,topsep=10pt}
\setitemize[2]{itemsep=0pt,topsep=-2pt}
\begin{document}
\begin{itemize}
    \item a
    \item b
    \item c
    \begin{itemize}
        \item d
        \item e
        \item f
    \end{itemize}
    \item g
    \item h
    \item i
\end{itemize}
\end{document}

在此处输入图片描述

PS MWEbeamer也可以在 中使用。但是,Alan Munn 在评论中指出,由于beamer修改了列表环境以使其具有覆盖感知能力,因此它实际上无法与 很好地配合使用enumitem

\documentclass{beamer}
\usepackage{enumitem}
\setitemize[1]{itemsep=10pt,topsep=10pt}
\setitemize[2]{itemsep=0pt,topsep=-2pt}
\begin{document}
\begin{frame}{beamer frame title}
\begin{itemize}
    \item a
    \item b
    \item c
    \begin{itemize}
        \item d
        \item e
        \item f
    \end{itemize}
    \item g
    \item h
    \item i
\end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

答案2

\documentclass{beamer}
\newcommand\nosep{\vspace{-1ex}\setlength\itemsep{-0.75ex}}

\begin{document}
\begin{frame}{foo}{bar}
\begin{itemize}
    \item a
    \item b
    \item c
    \begin{enumerate}\nosep
        \item d
        \item e
        \item f
    \end{enumerate}
    \item g
    \item h
    \item i
\end{itemize}   
\end{frame} 
\end{document}

在此处输入图片描述

相关内容