在 beamer 中添加 onslide 命令时,公式和 itemize(使用 enumitem)之间出现空格

在 beamer 中添加 onslide 命令时,公式和 itemize(使用 enumitem)之间出现空格

我遇到了这种情况:当我使用 enumitem 包时,公式后面会添加一个空格,并且 onslide 命令在 itemize 之前结束。有没有人知道如何去除公式后面的空格以及它为什么会出现在那里?我尝试过在有和没有 enumitem 包的情况下添加 %,为 itemize 添加 nosep 选项,但空格仍然存在。

\documentclass{beamer}
\usepackage{enumitem}
\usepackage{blindtext}

\begin{document}

\begin{frame}
\blindtext
\begin{equation*}
    A=A
\end{equation*}
\begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
\end{itemize}
\blindtext

\end{frame}

\begin{frame}
\blindtext
\onslide<2->{
\begin{equation*}
    A=A
\end{equation*}
}
\begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
\end{itemize}
\blindtext

\end{frame}

\end{document}

无滑坡 带滑梯

答案1

使用 \align 代替 \equation 并将 \onslide 放在 align 环境中可以解决问题。但仍然对这种行为的起源感到困惑。

\documentclass{beamer}
\usepackage{enumitem}
\usepackage{blindtext}
\begin{document}

\begin{frame}
\blindtext
\begin{align*}
    \onslide<2->{A=A}
\end{align*}
\begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
\end{itemize}
\blindtext
\end{frame}

\end{document}

答案2

编辑:(更接近您想要的结果) 经过改进,可以很好地处理可以在小页面中添加的所有内容。

\documentclass{beamer} \usepackage{enumitem} \usepackage{blindtext} \usepackage{tikz}

\newsavebox{\mybox} \newcommand{\myonly}[2]{\alt<#1>{\begin{minipage}[inner sep=0,outer sep=0]{\linewidth}#2\end{minipage}}{\savebox\mybox{\vbox{\begin{minipage}[inner sep=0,outer sep=0]{\linewidth}#2\end{minipage}}}\par\rule{0pt}{\dimexpr\ht\mybox+\dp\mybox-\baselineskip}\par}} \begin{document}

\begin{frame} \blindtext[1] \begin{align*}
    A&=A\\
    B&=f(x)\\ \end{align*} \begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \end{itemize} \blindtext[1]

\end{frame}

\begin{frame} \blindtext[1] \myonly{2-}{\begin{align*}
    A&=A\\
    B&=f(x)\\ \end{align*}} \begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \end{itemize} \blindtext[1]

\end{frame}

\end{document}

(旧答案) 不完美但接近完美:

\documentclass{beamer}
\usepackage{enumitem}
\usepackage{blindtext}

\newsavebox{\mybox}
\newcommand{\myonly}[2]{\alt<#1>{#2}{\savebox\mybox{\vbox{#2}}\vspace*{\dimexpr\ht\mybox+\dp\mybox}\par}
}
\begin{document}

\begin{frame}
\blindtext
\begin{equation*}
    A=A
\end{equation*}
\begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
\end{itemize}
\blindtext

\end{frame}

\begin{frame}
\blindtext
\myonly{2-}{\begin{equation*}
    A=A
\end{equation*}}
\begin{itemize}
    \item AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
\end{itemize}
\blindtext

\end{frame}

\end{document}

相关内容