Multicoluna não funciona bem com onslide

Multicoluna não funciona bem com onslide

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 rightpara \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º multicoulmnnã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 beamermanual; 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 \onslidecomando possa ser lido). No entanto, colocar um \pauseou \uncoverno 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.

informação relacionada