Multicolumna no funciona bien con diapositivas

Multicolumna no funciona bien con diapositivas

Tengo el siguiente código que funciona sin errores:

\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}

Sin embargo, cambié Line 2 righta \multicolumn{2}{l}{Line 2 right}, ya no se compiló. Luego lo eliminé onslide<2->y se compiló nuevamente, pero sin efecto de superposición. Entonces parece que el 3 multicoulmnno funciona bien con onslide, ¿alguien sabe cómo solucionarlo?

...
\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
}

...

Respuesta1

Agregue \\(y \hline) al final de la fila dentro \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}

Sin embargo, lea la Sección23.5 Descubrir una tabla por filasdel beamermanual; un pequeño extracto

Cuando desee descubrir una tabla línea por línea, se encontrará con todo tipo de problemas si hay líneas verticales y horizontales en la tabla. La razón es que la primera línea vertical en el extremo izquierdo se dibuja incluso antes de leer la línea (y por lo tanto, en particular, antes de que \onslidese pueda leer cualquier comando). Sin embargo, colocar un \pauseo \uncoveral final de la línea anterior tampoco es útil ya que suprimirá la línea horizontal debajo de la última línea descubierta.

(Luego viene un ejemplo que muestra una posible forma de descubrir tablas).

Con la nueva edición de la pregunta 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}

El final de la segunda fila está dentro \onslide<2>, por lo que \onslide<3>no lo ve a tiempo; agregue una nueva línea con un espacio negativo al principio de la fila, como muestra mi ejemplo.

información relacionada