投影仪中嵌套列表之间的长度

投影仪中嵌套列表之间的长度

如何调整嵌套列表之间的长度?例如,在下面,我想调整显示“此处距离”的距离

\begin{itemize}
    \item one
    %% distance here
    \begin{itemize}
         \item
    \end{itemize}
    %% distance here
    \item two
\end{itemize}

更新:我忘了说我在使用beamer,而且看起来传统方法可能会出错beamer,因为frame其对的定义如下itemize

答案1

您不应该使用enumitemwith beamer。这可能会破坏beamer列表的所有设置(例如覆盖、警报等)。使用 simply vspace(用于本地解决方案)或负责的beamer模板。下次展示一个完整的示例而不是代码片段。类是关键信息。

\documentclass{beamer}
\begin{document}
\begin{frame}

\begin{itemize}
        \item one
        %% distance here
        \begin{itemize}
             \item
        \end{itemize}
        %% distance here
        \item two
    \end{itemize}

\end{frame}

\begin{frame}

\begin{itemize}
        \item one
        \vspace{1cm}
        \begin{itemize}
             \item
        \end{itemize}
        \vspace{1cm}
        \item two
    \end{itemize}

\end{frame}


\begin{frame}
\setbeamertemplate{itemize/enumerate subbody begin}{\vspace{1cm}}
\setbeamertemplate{itemize/enumerate subbody end}{\vspace{1cm}}
\begin{itemize}
        \item one
        %% distance here
        \begin{itemize}
             \item
        \end{itemize}
        %% distance here
        \item two
    \end{itemize}

\end{frame}

\end{document}

答案2

您要修改的垂直空间由长度的总和和\topsep给出\parskipenumitem包为您提供了一个简单的机制来控制这些(和一些其他属性)类似列表的环境:

\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{itemize}
        \item one
        \begin{itemize}[topsep=20pt]
             \item
        \end{itemize}
        \item two
    \end{itemize}

\end{document}

如果你想取消列表中的所有垂直间距,你可以这样说

\usepackage{enumitem}
...
\begin{itemize}[nolistsep]
  \item
\end{itemize}

编辑:一个例子beamer

\documentclass{beamer}
\usepackage{enumitem}

\begin{document}

\begin{frame}
Normal spacing
\begin{itemize}
        \item one
        \begin{itemize}
             \item First subitem
             \item Second subitem
        \end{itemize}
        \item two
    \end{itemize}
Increased spacing
\begin{itemize}
        \item one
        \begin{itemize}[topsep=20pt]
             \item First subitem
             \item Second subitem
        \end{itemize}
        \item two
    \end{itemize}
\end{frame}

\end{document}

结果:

但是,enumitem使用beamer不是最佳选择。请参阅 Ulrike 的回答,了解正确的解决方案beamer

答案3

Ulrike 的全球变革解决方案对我来说不起作用。把这些行

\setbeamertemplate{itemize/enumerate subbody begin}{\vspace{1cm}}
\setbeamertemplate{itemize/enumerate subbody end}{\vspace{1cm}}

无论是在 a 内frame还是在序言中都没有做任何事情。(我可以提供有关我的配置、文件等的详细信息,但不确定哪些是相关的。)无论如何,我已经找到了其他(几乎完整的)解决方案,尽管不像...beamerly。

解决方案 1:将其放入序言中:

% space between items:
\newlength{\wideitemsep}
\setlength{\wideitemsep}{\itemsep}\addtolength{\wideitemsep}{3pt}
% reconfigure itemize lists:
\let\olditem\item
\renewcommand{\item}{%
\setlength{\itemsep}{\wideitemsep}%
\olditem}

缺点(或优点):尽管项目之间相距较远,但列表前后的文本行仍然非常接近。(我在http://blog.nguyenvq.com/2011/05/01/spacing-between-items-in-itemize-or-enumerate-environments-lists/

解决方案 2:几乎相同,但这也在列表前添加了空格:

\let\olditem\item
\renewcommand{\item}{%
\olditem\vspace{4pt}}

但是,它不会在列表后添加空格。我想找到一种全局方法来做到这一点。我尝试过使用这种方法的一些其他列表参数,但没有成功,这是有道理的:一般来说,重新定义所能产生的唯一效果\item是针对特定项目的。

相关内容