У меня есть 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
.