Mehrspaltig funktioniert nicht gut mit Onslide

Mehrspaltig funktioniert nicht gut mit Onslide

Ich habe den folgenden Code, der ohne Fehler funktioniert:

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

Ich habe jedoch Line 2 rightzu geändert \multicolumn{2}{l}{Line 2 right}, es wurde nicht mehr kompiliert. Dann habe ich entfernt onslide<2->, es wurde erneut kompiliert, aber ohne Overlay-Effekt. Es scheint also, dass der 3. multicoulmnnicht gut mit funktioniert onslide. Weiß jemand, wie man das löst?

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

...

Antwort1

Fügen Sie am Ende der Zeile innerhalb von \\(und ) hinzu :\hline\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}

Lesen Sie jedoch Abschnitt23.5 Eine Tabelle zeilenweise aufdeckendes beamerHandbuchs; ein kleiner Auszug

Wenn Sie eine Tabelle zeilenweise aufdecken möchten, treten bei vertikalen und horizontalen Linien in der Tabelle allerhand Probleme auf. Der Grund hierfür ist, dass die erste vertikale Linie am linken Ende gezeichnet wird, bevor die Zeile überhaupt gelesen wird (und damit insbesondere bevor ein \onslideBefehl gelesen werden kann). Allerdings ist es auch nicht hilfreich, am Ende der Zeile davor ein \pauseoder zu setzen \uncover, da dadurch die horizontale Linie unterhalb der letzten aufgedeckten Zeile unterdrückt wird.

(Dann folgt ein Beispiel, das eine mögliche Art und Weise zum Aufdecken von Tabellen zeigt.)

Mit der neuen Bearbeitung der ursprünglichen Frage:

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

Das Ende der zweiten Reihe liegt innerhalb von \onslide<2>, \onslide<3>wird also nicht rechtzeitig gesehen; fügen Sie am Anfang der Reihe eine neue Zeile mit negativem Abstand hinzu, wie mein Beispiel zeigt.

verwandte Informationen