Проектор: всегда накладывать первую таблицу на тот же кадр

Проектор: всегда накладывать первую таблицу на тот же кадр

Аналогичный вопросВот этот, но теперь вместо наложения элементов списка я хотел бы иметь возможность накладывать tableплавающие элементы. В то время как это делает трюк для блоков:

\begin{frame}[fragile]

\begin{block}<only@+>{First block}
%stuff
\end{block}

\begin{block}<only@+>{Second block}
%more stuff
\end{block}

\end{frame}

К сожалению, для таблиц это не так:

\begin{frame}[fragile]

\begin{table}[!h]<only@+>
    \begin{tabular}{} %column specs
    %first table
    \end{tabular}
    \caption{} %some caption
\end{table}

\begin{table}[!h]<only@+>
    \begin{tabular}{} %column specs
    %second table
    \end{tabular}
    \caption{} %some caption
\end{table}

\end{frame}

Вывод: обе таблицы на одном слайде с тарабарщиной (¡only@+¿) над ними. Какой синтаксис будет правильным в этом случае? Ура.

P.S. Если есть еще и лучший синтаксис для наложения блоков, чем тот, что придумал я, я весь внимание! :) В идеале я ищу что-то вроде того, \begin{framebody}[<only@+>]чтобы все (блоки, таблицы itemizeили enumerateокружения) внутри фрейма наследовали это поведение.

решение1

Похоже, что следующее позволяет достичь задуманного.

\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{overprint}
\onslide*<1>{
\begin{table}[h]
    \begin{tabular}{cc} %column specs
    f & f%first table
    \end{tabular}
    \caption{1} %some caption
\end{table}
}
%
\onslide*<2>{
\begin{table}[h]
    \begin{tabular}{cc} %column specs
    c & c
    %second table
    \end{tabular}
    \caption{2} %some caption
\end{table}
}
\end{overprint}
\end{frame}
%
\begin{frame}
%
\begin{block}<only@+>{First block}
b
\end{block}
%
\begin{block}<only@+>{Second block}
f
\end{block}
%
\end{frame} 
\end{document}

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