Beamer:使用 \ 只会改变垂直间距

Beamer:使用 \ 只会改变垂直间距

我的演示幻灯片有 3 个“步骤”,这意味着最初会先写一些内容,然后会出现另一部分,然后再出现另一部分。我正在使用命令\only<>来实现这一点(我itemize \item<>现在不能使用)。

我的问题是,每“一步”行间距都会缩小一点,产生令人讨厌的 2 倍缩小效果。当所有 3 个部分都在幻灯片上时,一切都很合适。我尝试插入各种\vspace{-1em}命令来减少从一开始就,但效果依然存在。

我制作了一个 MWE,我的幻灯片具有相同的结构:

\documentclass[10pt]{beamer}

\usetheme{metropolis}
\usepackage{lipsum}

\begin{document}
\begin{frame}[t]{Title}
\only<1->{
\alert{\textbf{Title text:}}
\begin{enumerate}
  \item  List item $(2^n, 3^n, 4^n, \dots)$
  \begin{itemize}
    \item  \lipsum[1][1] $(2^n, 3^n, \dots)$
    \item[] \lipsum[1][2]: $e^n$ 
    \item  \lipsum[1][3] $(2^n, 3^n, \dots)$
    \item[] \lipsum[1][4] $e^n$ 
  \end{itemize} 
  \item  List item $2^{abc} \bigcup 3^\text{def}$
\end{enumerate}
}
\only<2->{
\alert{\textbf{Title text:}}\\
\lipsum[2][1]
\begin{eqnarray*}
  \tau(n) & \leq & 2^n \\ 
          & \leq & n^{O(\log n)}
\end{eqnarray*}
}
\only<3->{
\lipsum[2][2]: $$a(n) = \sum_i b_i$$
}
\end{frame}
\end{document}

答案1

您只是向框架中添加内容而不是替换文本,因此您可以简单地使用\visible而不是\only

\documentclass[10pt]{beamer}

\usetheme{moloch}% modern fork of the metropolis theme
\usepackage{lipsum}

\begin{document}
\begin{frame}[t]{Title}
\visible<1->{
\alert{\textbf{Title text:}}
\begin{enumerate}
  \item  List item $(2^n, 3^n, 4^n, \dots)$
  \begin{itemize}
    \item  \lipsum[1][1] $(2^n, 3^n, \dots)$
    \item[] \lipsum[1][2]: $e^n$ 
    \item  \lipsum[1][3] $(2^n, 3^n, \dots)$
    \item[] \lipsum[1][4] $e^n$ 
  \end{itemize} 
  \item  List item $2^{abc} \bigcup 3^\text{def}$
\end{enumerate}
}
\visible<2->{
\alert{\textbf{Title text:}}\\
\lipsum[2][1]
\begin{eqnarray*}
  \tau(n) & \leq & 2^n \\ 
          & \leq & n^{O(\log n)}
\end{eqnarray*}
}
\visible<3->{
\lipsum[2][2]: $$a(n) = \sum_i b_i$$
}
\end{frame}
\end{document}

在此处输入图片描述

相关内容