Зарезервируйте место для дальнейших наложений

Зарезервируйте место для дальнейших наложений

У меня есть 3 части в tabular, я хочу, onslide1-чтобы они всегда отображались. После 1 клика я хочу, чтобы они only2отображались; после другого клика, в позиции only2, я хочу only3-заменить only2навсегда; после другого клика, onslide4-появится. Код выглядит следующим образом:

\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}

\begin{document}

\begin{frame}
  \begin{tabular}{ll|ll}
    \onslide<1->{
      \\\hline onslide1- \\\hline
    }

    \onslide<2->{
    \only<2>{
      \\[-2.8ex]
      only2\\\vspace{3cm}\\only2
      \\\hline
    }%

    \only<3->{
      \\[-2.8ex]
      only3-\\\vspace{3cm}\\only3-
      \\\hline
    }}

    \onslide<4->{
      \\\hline onslide4- \\\hline
    }

  \end{tabular}
\end{frame}

Проблема в том, что когда onslide1-отображается в самом начале, он не оставляет место для only2или only3-которое появится позже. Я пытаюсь добавить \onslide<2->, так как обычно \onslideрезервирует место, но здесь это не работает... Кто-нибудь знает, как это решить?

PS: Я понимаю, что следующий код, который проще предыдущего, имеет ту же проблему:

\begin{frame}
\begin{tabular}{ll|ll}
  \onslide<1->{onslide1\\}
  \only<2>{only2\\}%
  \only<3->{only3-\\}
  \onslide<4->{onslide4-\\} 
\end{tabular}
\end{frame}

Однако в следующем коде этой проблемы нет. Так что, похоже, это из-за позиции \\, но мне нужен \\\hlineисходный код.

\begin{frame}
\begin{tabular}{ll|ll}
  \onslide<1->{onslide1}\\
  \only<2>{only2}%
  \only<3->{only3-}\\
  \onslide<4->{onslide4-}\\ 
\end{tabular}
\end{frame}

решение1

Использовать overlayarea:

\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}

\begin{document}

\begin{frame}
\begin{overlayarea}{7cm}{7cm}
\begin{tabular}{ll|ll}
    \onslide<1->{%
      \\\hline onslide1- \\\hline
    }
    \only<2>{%
      \\[-2.8ex]
      only2\\\vspace{3cm}\\only2
      \\\hline
    }%
    \only<3->{%
      \\[-2.8ex]
      only3-\\\vspace{3cm}\\only3-
      \\\hline
    }
    \onslide<4->{%
      \\\hline onslide4- \\\hline
    }
  \end{tabular}
\end{overlayarea}
\end{frame}

\end{document}

введите описание изображения здесь

решение2

Попробуйте использовать \visibleили \uncoverвместо \onlyи \onslide.

Связанный контент