beamer:叠印环境旁边的内容

beamer:叠印环境旁边的内容

我想在overprint环境(例如,包含列表)旁边放置一些文本(实际上是一个图形)。为此,我已将环境的可选参数设置为使用比整行(默认值)更少的空间。但是,显然环境末尾有一个固定的换行符或类似的东西(?)。有没有简单的解决方法,还是我必须求助于列或表格?编辑:为什么\textwidth在环境前添加 -wide 规则可以“解决”问题!?此外,如何减少环境之间的空间overprint(无需手动干预\vspace{-somelength})?编辑:当涉及列表时,问题会变得更加糟糕:使用\onslide带括号会完全隐藏列表。

\begin{filecontents*}{file.c}
int foo = 42;
\end{filecontents*}

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\begin{document}
\begin{frame}{}
    % \rule{\textwidth}{1pt}
    \begin{overprint}[0.5\textwidth]
      \onslide<1|handout:0>\lstinputlisting[frame=tlrb]{file.c}%
      % \onslide<2|handout:0>{\lstinputlisting[frame=tlrb]{file.c}}% completely lost *and* increasing vspace *shruggle*
      \onslide<3|handout:0>{}
    \end{overprint}\includegraphics[width=0.25\linewidth,keepaspectratio]{example-image}\\
    \rule{\textwidth}{1pt}
  \end{frame}
\end{document}

该图像应与所有 3 张幻灯片上的 1 和 2 位于同一行。

答案1

问题的根源在于缺少{}表示内容的内容\onslide。尤其是最后一个什么都没有的,需要一个空的{}

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\begin{document}
  \begin{frame}{}
    % \rule{\textwidth}{1pt}
    \begin{overprint}[0.5\textwidth]
      \onslide<1|handout:0>{1}%
      \onslide<2|handout:0>{2}%
      \onslide<3|handout:0>{}%
    \end{overprint}bla
    \rule{\textwidth}{1pt}
  \end{frame}
\end{document}

我会选择简单的方法并使用列:

\documentclass{beamer}

\begin{document}
  \begin{frame}{}
    \begin{columns}[onlytextwidth]
            \begin{column}{.45\textwidth}
      \only<1|handout:0>{1}%
      \only<2|handout:0>{2}%
      \only<3|handout:0>{3}%
            \end{column}
            \begin{column}{.45\textwidth}
                \includegraphics[width=\textwidth]{example-image}
            \end{column}            
    \end{columns}
    \rule{\textwidth}{1pt}
  \end{frame}
\end{document}

相关内容