嵌套列表环境中的免费垂直空间具有一定的行长度

嵌套列表环境中的免费垂直空间具有一定的行长度

在以下 MWE 中,简单添加“:”会导致在嵌套enumerate环境之前出现一些额外的垂直间距,尽管添加“:”不会导致文本跨行拆分。知道发生了什么吗?

\documentclass{beamer}
\usetheme{CambridgeUS}

\begin{document}

\begin{frame}{Test}

\begin{itemize}
    \item{Actional verbs appeared in full \emph{be}-passive, full \emph{get}-passive, and active
        \begin{enumerate}[(1)]
            \item{\ldots}
        \end{enumerate}
    }
    \item{Actional verbs appeared in full \emph{be}-passive, full \emph{get}-passive, and active:
        \begin{enumerate}[(1)]
            \item{\ldots}
        \end{enumerate}
    }
\end{itemize}

\end{frame}

\end{document}

在此处输入图片描述

这里的问题是为什么正在发生这种情况。也就是说,我很高兴在正在整理的演示文稿中省略“:” beamer,所以我对“问题”的“解决方案”并不特别感兴趣。我只是好奇为什么会发生这种情况,以及这是否是设计使然beamer

(注:效果取决于此特定主题的使用。尽管如此,如果这从根本上来说是一个问题,那么beamer人们大概可以为其他主题构建类似的案例。虽然,如果这本质上是 (La)TeX 的问题(见更新),人们大概可以在其他beamer主题中构建类似的案例表现出此行为的其他文档类。(尽管如此,请参阅更新 2。))


更新

根据一些评论和@Thruston 的回答,我想我会更新这个问题。

首先,我删除了beamer标签,因为这似乎与无关beamer。鉴于@KevinC 的评论,猜测这与 (La)TeX 中的胶水有关。(见下文。)

其次,我想指出的是,即使把所有内容都放在一行上,这种行为仍然会持续存在没有“:” 后面有任何空格,所以这仍然是一个谜(至少对我来说,鉴于我对水平模式下事物设置方式的简单理解),为什么“:” 后面会有空格,这些空格会被推到下一行。有人能解释一下吗?

\documentclass{beamer}
\usetheme{CambridgeUS}

\begin{document}

\begin{frame}{Test}

\begin{itemize}
    \item{Actional verbs appeared in full \emph{be}-passive, full \emph{get}-passive, and active:\begin{enumerate}[(1)]\item{\ldots}\end{enumerate}}
\end{itemize}

\end{frame}

\end{document}

更新 2

beamer再次添加了标签,因为beamer@Thruston 似乎认为这与宏处理空间的方式有关

答案1

您需要先完成每个顶级项中的段落,然后再开始嵌套枚举列表。整体enumerate被包含在item段落中,这导致输出中出现额外的空间。

尝试像这样编码:

\begin{itemize}
    \item Actional verbs appeared in full \emph{be}-passive, full \emph{get}-passive, and active

        \begin{enumerate}[(1)]
            \item \ldots
            \item \ldots
        \end{enumerate}

    \item Actional verbs appeared in full \emph{be}-passive, full \emph{get}-passive, and active:

        \begin{enumerate}[(1)]
            \item \ldots
        \end{enumerate}

\end{itemize}

请注意,控制序列后没有{括号,并且在环境之前没有空行来结束段落。}\itemenumerate

实际上,括号与这里的问题无关,因为组可以跨越段落,但在这里您仍然不需要它们,所以最好将它们省略。

不在环境之前结束段落enumerate意味着 TeX 以水平模式而不是垂直模式处理它们,这会改变 Beamer 格式处理它们的方式。如果您设置,\tracingmacros=1您将看到大部分处理取决于您所处的模式。要完全回答您的“为什么”问题,您需要解开 Beamer 宏以查看较长行中的额外空间是如何处理的。

相关内容