Eu tenho o seguinte código que funciona sem erros:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}
\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
\onslide<1->{a & b & c & d}
\onslide<2->{
\\ \hline
\multicolumn{2}{l|}{Line 1}
\\
\multicolumn{2}{l|}{Line 2 left}
& Line 2 right
}
\\ \hline
\end{tabular}
\end{frame}
\end{document}
Porém, mudei Line 2 right
para \multicolumn{2}{l}{Line 2 right}
, ele não compilou mais. Aí removi onslide<2->
, ele compilou novamente, mas sem efeito de sobreposição. Então parece que o 3º multicoulmn
não funciona bem onslide
, alguém sabe como resolver?
...
\onslide<2->{
\\ \hline
\multicolumn{2}{l|}{Line 1}
\\
\multicolumn{2}{l|}{Line 2 left}
& \multicolumn{2}{l}{Line 2 right} \\\hline
}
\onslide<3->{
\multicolumn{2}{l|}{Line 1}
\\
\multicolumn{2}{l|}{Line 2 left}
& \multicolumn{2}{l}{Line 2 right} \\\hline
}
...
Responder1
Adicione \\
(e \hline
) no final da linha dentro de \onslide
:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}
\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
\onslide<1->{a & b & c & d}
\onslide<2->{
\\ \hline
\multicolumn{2}{l|}{Line 1}
\\
\multicolumn{2}{l|}{Line 2 left}
& \multicolumn{2}{l}{Line 2 right} \\\hline
}
\end{tabular}
\end{frame}
\end{document}
No entanto, leia a Seção23.5 Descobrindo uma Tabela Rowwisedo beamer
manual; um pequeno trecho
Quando você deseja descobrir uma tabela linha por linha, você encontrará todos os tipos de problemas se houver linhas verticais e horizontais na tabela. A razão é que a primeira linha vertical na extremidade esquerda é desenhada antes mesmo de a linha ser lida (e, portanto, em particular, antes que qualquer
\onslide
comando possa ser lido). No entanto, colocar um\pause
ou\uncover
no final da linha anterior também não é útil, pois suprimirá a linha horizontal abaixo da última linha descoberta.
(Em seguida vem um exemplo que mostra uma maneira possível de descobrir tabelas.)
Com a nova edição da pergunta original:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[frenchb]{babel}
\begin{document}
\begin{frame}
\begin{tabular}{ll|ll}
\onslide<1->{a & b & c & d}
\onslide<2->{
\\ \hline
\multicolumn{2}{l|}{Line 1}
\\
\multicolumn{2}{l|}{Line 2 left}
& \multicolumn{2}{l}{Line 2 right} \\\hline
}
\onslide<3->{\\[-\normalbaselineskip]
\multicolumn{2}{l|}{Line 1}
\\
\multicolumn{2}{l|}{Line 2 left}
& \multicolumn{2}{l}{Line 2 right} \\\hline
}
\end{tabular}
\end{frame}
\end{document}
O final da segunda linha está dentro \onslide<2>
, então \onslide<3>
não vê na hora; adicione uma nova linha com espaçamento negativo no início da linha, como mostra meu exemplo.